МТС 3G модем и линукс

Поднимаем Huawei E1550 с татуировкой МТС под линуксом (Ubuntu 8.04 Hardy). Модем использует технологию zeroCD. Это значит, что после подключения он говорит: "Я - привод cdrom и флеш-драйв". На cdrom'е установщик виндоус-драйвера.

[ 8091.626853] scsi 10:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 2
[ 8091.653036] usb-storage: device scan complete
[ 8091.654923] scsi 11:0:0:0: Direct-Access     HUAWEI   MMC Storage      2.31 PQ: 0 ANSI: 2
max@jupiter:~$ lsusb
Bus 005 Device 006: ID 12d1:1446 Huawei Technologies Co., Ltd. 
Если машина управляется Виндоусом, виндоус-драйвер устанавливается с usb привода и/или будучи установленным посылает huawei'ю магическую команду и он становится USB модемом и перестает быть cdrom'ом. Так что первая задача - дать магическую команду. Это можно сделать благодаря товарищу Josua Dietze. Берем программу usb_modeswitch. Собираем по инструкции, предварительно установив заголовки libusb (то есть пакет libusb-dev).
sudo apt-get install libusb-dev
Сборка usb_modeswitch
sudo make intergrated_install
Make ругается, что не может обновить правила udev - игнорируем. В /etc/usb_modeswitch должно быть:
########################################################
# Huawei E1550
# Huawei E1750
#
# Contributor: Anders Blomdell, Ahmed Soliman
DefaultVendor=  0x12d1
DefaultProduct= 0x1446
TargetVendor=   0x12d1
TargetProduct=  0x1001
# only for reference and 0.x versions
# MessageEndpoint=0x01
MessageContent="55534243123456780000000000000011060000000000000000000000000000"
Этот кусок можно найти в дополнительных файлах конфигурации usb_modeswitch. Запускаем usb_modeswitch без параметров рутом и 12d1:1446 Huawei чудесным образом становится модемом
max@jupiter:~$ lsusb
Bus 005 Device 007: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem
Dmesg подтверждает появление трех портов.
[ 9712.079405] option 5-3:1.0: GSM modem (1-port) converter detected
[ 9712.079607] usb 5-3: GSM modem (1-port) converter now attached to ttyUSB0
[ 9712.079733] option 5-3:1.1: GSM modem (1-port) converter detected
[ 9712.079814] usb 5-3: GSM modem (1-port) converter now attached to ttyUSB1
[ 9712.079911] option 5-3:1.2: GSM modem (1-port) converter detected
[ 9712.080817] usb 5-3: GSM modem (1-port) converter now attached to ttyUSB2
Необходимые драйвера, option и usbserial, в современных ядрах присутствуют. Теперь осталось объединить usb_modeswitch, pppd и МТС. Скрипт инициализации модема /etc/ppp/mts_chat:
max@jupiter:~$ cat /etc/ppp/mts_chat 
'' \rATZ
OK 'ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0'
OK 'AT+CGDCONT=1, "IP", "internet.mts.ru"'
OK ATDT*99#
Файл настройки pppd /etc/ppp/peers/mts:
max@jupiter:~$ cat /etc/ppp/peers/mts
## имя порта и скорость
/dev/ttyUSB0 460800
## выключаем сжатие
nobsdcomp
nodeflate
## перед установкой соединения делаем модем модемом
## если он уже модем, то usb_modeswitch ничего не делает
init '/usr/sbin/usb_modeswitch'
## скрипт инициализации модема и дозвона
connect '/usr/sbin/chat -v -f /etc/ppp/mts_chat'
## не аутентифицировать сервер, куда дозваниваемся
noauth
## брать адрес у сервера
noipdefault
## назначить на создаваемый интерфейс маршрут по умолчанию
defaultroute
## отменить имеющийся маршрут по умолчанию
replacedefaultroute
## для отладки
# nodetach
# debug
## подправлять /etc/resolv.conf адресами dns, полученными от сервера
usepeerdns
## имя пользователя для аутентификации, пароль
## (mts) будет браться из /etc/ppp/pap-secrets
user mts
## чтобы не перезванивал при обрыве
nopersist
И... (барабанная дробь)
sudo pon mts
мы в интернете. Тормоза необыкновенные, 3G соскакивает на EDGE, но, конечно, лучше, чем ничего, особенно учитывая, что это безлимит.


Под ubuntu 9.10 karmic вообще все работает сразу из коробки. modeswitch теперь стал частью udev. Отдельно стоящий usb_modeswitch не требуется. NetworkManager предлагает соединиться с мобильным интернетом и знает параметры соединения для МТС. Остается не забыть снять галки в параметрах соединения 'сжатие заголовков', 'сжатие bsd', 'компрессия deflate', иначе не подхватываются dns сервера.


Что-то меняется в этом мире