Поднимаем 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_installMake ругается, что не может обновить правила 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 ModemDmesg подтверждает появление трех портов.
[ 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 сервера.
Что-то меняется в этом мире