USB-модем Huawei - не загружается нужный драйвер (модуль)
У меня есть USB-модем Huawei E303F. Я установил Ubuntu Studio 16.04.1 LTS "Xenial Xerus". Модем обнаружен администратором сети.
Я могу настроить мобильное широкополосное соединение в Network Manager. Но это не подключение к Интернету. Символ подключения отображается в течение длительного времени, а затем останавливается.
Но он может подключиться, только после подключения к Интернету в Windows, а затем загрузки в Ubuntu путем перезапуска. Если я выключаю систему и затем загружаюсь в Ubuntu (или) Отключите устройство и подключите его снова, это не будет работать. Несмотря на то, что я могу обнаружить его с помощью usb_modeswitch в любое время, соединение не установлено.
Затем снова я должен загрузиться в Windows и перезапустить в Ubuntu.
После подключения к Интернету в Windows и перезапуска в Ubuntu:
usb-devices
: Информация о модеме при подключении
Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 4 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=12d1 ProdID=1506 Rev=01.02
S: Manufacturer=HUAWEI
S: Product=HUAWEI Mobile
C: #Ifs= 7 Cfg#= 1 Atr=80 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=03 Prot=01 Driver=option
I: If#= 1 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
I: If#= 2 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I: If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=03 Prot=03 Driver=option
I: If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=03 Prot=02 Driver=option
I: If#= 5 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
I: If#= 6 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
usb-devices
: Информация о модеме при отсутствии подключения
T: Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 11 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=12d1 ProdID=1506 Rev=01.02
S: Manufacturer=HUAWEI
S: Product=HUAWEI Mobile
C: #Ifs= 6 Cfg#= 1 Atr=80 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=03 Prot=01 Driver=option
I: If#= 1 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=03 Prot=16 Driver=option
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=03 Prot=03 Driver=option
I: If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=03 Prot=02 Driver=option
I: If#= 4 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
I: If#= 5 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
2 ответа
Мой модем работает в Ubuntu Studio 16.04
В Ubuntu Studio 12.10 я установил драйвер huawei, и он работал без каких-либо дополнительных настроек. В Ubuntu Studio 15.10 он работал сразу после того, как я подключил его. Я ничего не делал, чтобы заставить его работать. В Ubuntu Studio 16.04 я сделал простые шаги: usb_modeswitch
а также modprobe
чтобы это сработало. По этому поводу на форумах есть ряд статей и вопросов. Но все же я хочу упомянуть, как я это сделал и очень подробно. Он состоит из трех простых шагов:
Прежде чем попробовать следующие шаги, выясните, есть ли у вас драйвер для вашего устройства, предоставленный производителем. для Huawei драйвер настолько старый, что вы можете выполнить следующие действия.
Шаг 1: Определение того, обнаружено ли ваше устройство
Определите, обнаружен ли ваш USB с помощью lsusb
а также usb-devices
команды,
Если результат показывает ваш модем в списке, посмотрите, сколько интерфейсов (If#
) это имеет в usb-devices
команда, указанная по одной строке для каждого интерфейса, начиная с I:
,
Если он имеет только одну строку интерфейса (IF#), которая имеет спецификацию класса 'Cls=08(stor.)', То она находится в режиме USB-флэш-накопителя. Вы должны переключить его в режим модема, используя следующий шаг.
Если его нет в списке, значит, ваш модем неисправен или имеет некоторые проблемы.
Шаг 2: usb_modeswitch для переключения в режим модема
1) подэтап:
Первое обновление usb-modeswitch
а также usb_modeswitch-data
:
Если вам удастся каким-то образом подключиться к Интернету, для обновления вы можете использовать следующие команды в терминале: sudo apt-get install usb-modewitch usb-modewitch-data
или же
Загрузите с помощью 'Synaptic Package Manager' и установите в автономном режиме:
Вы можете использовать любой другой компьютер с Ubuntu и подключением к Интернету. Откройте менеджер синаптических пакетов и введите usb-modewitch в поле поиска и в результате отметьте оба пакета. И пока вы это делаете, он спросит, нужно ли отмечать связанные пакеты зависимостей. нажмите "Отметить". Затем перейдите в файл и нажмите "Создать сценарий загрузки пакета", выберите каталог, в который вы хотите сохранить сценарий, и дайте сценарию имя, например "deblist", и сохраните. Затем перейдите в каталог скрипта. откройте терминал и введите
bash ./deblist
Это загрузит пакеты в тот же каталог, что и скрипт. Скопируйте каталог на свой компьютер и установите его, открыв терминал в том же каталоге и набрав
sudo dpkg -i package1.deb package2.deb package3.deb
Где package1.deb, package2.deb, package3.deb и т. Д., Должны быть заменены именами загруженных пакетов. Это должно установить пакеты. Приведенные выше шаги являются общими для любого программного обеспечения.
2) подэтап:
Затем создайте файл с именем 12d1:1446 в каталоге /etc/usb_modeswitch.d/ как суперпользователь с touch
команда.
sudo touch /etc/usb_modeswitch.d/12d1:1446
"12d1" - это идентификатор поставщика Huawei, а "1446" - это "некоммутируемый идентификатор продукта" для моего устройства, и это можно получить из приведенного выше. lsusb
или же usb-devices
Команды для вашего устройства.
3) подэтап:
Затем для переключения в режим модема откройте терминал и введите
sudo usb_modeswitch -v 0x12d1 -p 0x1446 -J
Команда usb_modeswitch должна включать метод переключения / сообщение. Здесь метод переключения определяется как -J
и это стандартный метод переключения Huawei. Это зависит от разных производителей устройств. Тип man usb_modeswitch
в терминале для получения дополнительной информации.
Сейчас типа usb-devices
в терминале, и теперь вы должны увидеть новый "идентификатор продукта" и множество интерфейсов (если #) для вашего устройства в списке. Большинство интерфейсов (если #) должны использовать "option" в качестве драйвера. Некоторые из этих интерфейсов используются для подключения к Интернету, и в большинстве случаев для подключения используется другой драйвер, например "huawei_cdc_ncm".
Теперь попробуйте подключиться к Интернету, настроив "Мобильное широкополосное соединение" с помощью "Диспетчера сети" Ubuntu. Если он подключен, то ваша работа выполнена. но если это не так, то вы можете перейти к следующему шагу.
Шаг 3: Загрузка драйвера
Вы можете увидеть, какой драйвер использует ваш модем с переключением модема. usb-devices
команда.
1) подэтап:
Если он показывает 'option' в качестве драйвера для всех интерфейсов (если #), кроме тех, которые используются в качестве usb-хранилища, перейдите к подэтапу 2, указанному ниже (или) Если is показывает 'huawei_cdc_ncm', перейдите в /lib/modules/(uname -r)/kernel/drivers/net/usb/, набрав
sudo thunar /lib/modules/(uname -r)/kernel/drivers/net/usb/
или же
sudo nautilis /lib/modules/(uname -r)/kernel/drivers/net/usb/
и переместите 'huawei_cdc_ncm' методом 'вырезать и вставить' в любой другой каталог, в качестве резервной копии.
Теперь удалите устройство, подключите его снова и введите команду usb_modeswitch. в usb-devices
В результате команды вы должны увидеть 'none' в качестве драйвера для интерфейса (IF#), который используется в качестве модема.
2) подэтап:
Теперь удалите устройство снова и введите команду,
sudo rmmod option
удалить опциональный драйвер из ядра
Теперь подключите устройство и введите команду usb_modeswitch. И все же вы должны видеть "none" в качестве драйвера для модема и "option" в качестве драйвера для других интерфейсов (если #) в usb-devices
командный результат.
Теперь откройте файл /sys/bus/usb-serial/drivers/option1/new_id, используя nano
:
sudo nano /sys/bus/usb-serial/drivers/option1/new_id
тип 12d1 1506
и сохраните его, используя ctrl+o, и выйдите, используя ctrl+x. Здесь 1506 - это "идентификатор продукта в режиме переключения". Теперь, если вы печатаете usb-devices
, вы должны увидеть 'option' в качестве загруженного драйвера для модема.
3) подэтап:
Теперь используйте modprobe usbserial
команда, чтобы заставить устройство работать с загруженным драйвером 'option'.
sudo modprobe usbserial vendor=12d1 product=1506
Теперь попробуйте подключить модем к Интернету. В основном это должно быть связано, но если это не так, то отключите и попробуйте повторить шаг 3 снова. Тем не менее, если он не подключается, иногда процесс автоматизации этих команд может подключить модем к Интернету.
Шаг 4: Автоматизация
Чтобы автоматизировать этот процесс, после завершения подэтапа 2шага 1 скопируйте следующие строки
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1446", RUN+="/usr/sbin/usb_modeswitch -v 12d1 -p 1446 -J"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1446", RUN+="/bin/bash -c 'modprobe option && echo 12d1 1506 > /sys/bus/usb-serial/drivers/option1/new_id'"
в /lib/udev/rules.d/40-usb_modeswitch.rules с помощью команды
sudo mousepad /lib/udev/rules.d/40-usb_modeswitch.rules
или же
sudo gedit /lib/udev/rules.d/40-usb_modeswitch.rules
Не забудьте поменять "идентификатор продукта" в вышеприведенных строках на "не переключенный идентификатор продукта" после копирования. Теперь, если вы отключите устройство и подключите его снова, оно должно быть подключено к Интернету.
Даже если это работает. Иногда он подключается только после того, как я отключаю и снова подключаю его после загрузки системы. Я думаю, что загрузка драйвера 'option' занимает некоторое время.
Я обнаружил, что, хотя в Ubuntu есть драйвер cdc_mbim, он не может генерировать два интерфейса (If#
в usb-devices
команда) из той, что используется для подключения в Ubuntu. Но, похоже, Windows может. Так что при перезапуске интерфейсная информация все еще находится в модеме, я думаю, но при выключении и включении это не так.
Поэтому при загрузке в Ubuntu он обнаруживает эти интерфейсы и выбирает правильный драйвер (cdc_mbim). Но не обязательно два интерфейса необходимы для подключения. Достаточно даже одного интерфейса с правильным драйвером. Это означает, что нет необходимости загружаться в Windows, если нужный модуль / драйвер загружен правильно(option
модуль).