3G USB modem HUAWEI E173 и Сentos 6.x. Танцы с бубном. | Выделенный сервер своими руками

3G USB modem HUAWEI E173 и Сentos 6.x. Танцы с бубном.

huawei-e.jpg
Недавно возникла задача по подключению 3G модема Huawei E173 к системе с CentOS 6.4.
Почитал немного мануалы. По идее, все легко должно делаться с помощью NetworkManager.
Но это по мануалам... На самом деле возникли некоторые сложности, которыми я решил поделиться в этой заметке.

Для функционирования 3G USB модемов в Linux необходимо наличие следующих пакетов:

usb_modeswitch
usb_modeswitch-data
В CentOs 6.4 в репозитарии пакетов их нет.
Зато они есть у rpmforge .
Заходим по ссылке, скачиваем и устанавливаем необходимый нам репозитарий. В моем случае команда выглядела так:

# rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm

после чего устанавливаем необходимые для работы 3G USB модемов пакеты с помощью yum:
# yum install usb_modeswitch
# yum install usb_modeswitch-data

Далее проверяем видится ли наш модем в системе вообще.
Для этого используем команду:
# lsusb

и видим примерно следующее:
# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 12d1:1446 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem

Строка:

Bus 001 Device 002: ID 12d1:1446 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem

указывает, что наш USB модем видится системой и имеет Vendor ID (идентификатор производителя) 12d1 и Product ID 1446 (идентификатор конкретного продукта)
Скажу сразу, что запустить модем с таким Product ID у меня не получилось.
Дело в том, что модем Huawei E173 является составным оборудованием и на самом деле состоит из 3-х устройств. А именно из:
- собственно 3G-модема;
- флэш-памяти, на которой находятся драйверы и дистрибутив оператора сотовой связи (обычно под Windows);
- устройства чтения/записи карт microSD.
Соответственно под Linux никаких дистрибутивов и драйверов там нет. Кроме того Product ID 1446 на самом деле совсем не модем.
Одним из вариантов решения этой проблемы является переключения составного устройства в режим только модем. Без всяких кард ридеров и эмуляции CD диска.

Для этого нам нужно будет подключить его к Windows машине, подождать пока установится программное обеспечение и драйвера. Затем в настройках системы в свойствах модема выясняем номер виртуального COM порта.
Потом берем наш любимый терминальный клиент для Windows, а именно Putty, выбираем тип подключения Serial, указываем определенный ранее номер COM порта и соединяемся с модемом.
1371629579-clip-12kb.png

Далее вводим команду
AT^U2DIAG=0
для перевода модема в режим «только модем» и нажимаем Enter:
На этом все. Извлекаем наш модем и вставляем его в CentOS 6.4
После выполнения команды

# lsusb

и видим такую картину следующее:
# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem

У нас сменился Product ID. И это именно тот ID, который указывает, что это, именно, модем.

Далее, с помощью NetworkManager создаем подключение, соединяемся и наслаждаемся нормальной работой 3G модема под linux.

Данный метод переключения составного USB устройства в режим только модем может использоваться для большинства современных USB модемов.
Надеюсь моя заметка поможет вам сэкономить немного времени.

У меня все получилось, но что

У меня все получилось, но что делать дальше - непонятно.
/dev/ttyUSB* не появляется, а без этого не загружается модуль chan_dongle.
Что делать?

# lsusb
Bus 001 Device 004: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Bus 001 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000

Душевное спасибо за мануал.

Душевное спасибо за мануал. Сделал всё, как описано, но есть вопрос. А именно, у меня HUAWEI не E173 , а K3765-HV . После проведения всех манипуляций и исполнения команды AT^U2DIAG=0 в PUTTY, модем определился как у Вас. Т.е., как E169/E620/E800 HSDPA Modem, а не как K3765-HV.

Может дело в самой команде AT^U2DIAG=0 , а может в чём-то другом. Возможно, это ни на что и не повлияет - я не знаю. Внизу то, что происходило в терминале. Т.е., сначала определялся, как K3765 HSPA, а потом как E169/E620/E800 HSDPA Modem.

Можете прокомментировать? Заранее признателен.

root@pbx:~ $ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 046d:c016 Logitech, Inc. Optical Wheel Mouse
Bus 001 Device 004: ID 12d1:1520 Huawei Technologies Co., Ltd. K3765 HSPA

root@pbx:~ $ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 046d:c016 Logitech, Inc. Optical Wheel Mouse
Bus 001 Device 005: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem

root@pbx:~ $ dmesg | tail
usbserial: USB Serial Driver core
USB Serial support registered for GSM modem (1-port)
option 1-2:1.0: GSM modem (1-port) converter detected
usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0
option 1-2:1.1: GSM modem (1-port) converter detected
usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1
option 1-2:1.2: GSM modem (1-port) converter detected
usb 1-2: GSM modem (1-port) converter now attached to ttyUSB2
usbcore: registered new interface driver option
option: v0.7.2:USB Driver for GSM modems
root@pbx:~ $

Ну и неправильно вы всё

Ну и неправильно вы всё сделали.
Основное предназначение usb_modeswich - как раз переключать модем из режима составного устройства в режим модема.
Вам нужно было просто добавить ид 12d1:1446 в хуавеевский файл настроек этого пакета - и всё бы завертелось.

Может написали бы, как

Может написали бы, как правильно? Развёрнуто - с командами и пр. Прогрессивная общественность в моём лице была бы благодарна. :)

Все верно вы написали.

Все верно вы написали. usb_modeswich именно для этого и предназначен. Но. менял я настройки в настроечных файлах, добавлял ID и так далее.
Не работало.
А при такой доработке напильником, все работает совершенно точно.