Как я побеждал модем в Ubuntu

Дата: 27.02.2010

Рубрики: *NIX, Разное

Вот они все прелести юзерфрендли линукса. Имеется Ubuntu Netbook Remix 9.10 и CDMA USB-модем AnyDATA ADU-500a. Скажу честно такого количества геммороя я не поимел, когда заводил его под FreeBSD, потому что там никаких юзерфрендли предусмотрено не было. И так, чтобы завести модем под Karmic нужно методично поотламывать все умные автоопределялки и тому подобные вещи.

  1. udev умеет переключать модемы из режима флэшки в режим модема, но имеющийся девайс в число поддерживаемых переключалкой не входит. Сносим /lib/udev/modem-switch;
  2. про options usb-storage option_zero_cd=2, много где написано, добавляем куда-нибудь в /etc/modprobe.d/anydata.conf;
  3. ставим стороннюю переключалку — usb_modeswitch, версия 1.0.7 работает и присутствует в репозитории;
  4. сменные носители по умолчанию автоматически монтируются, это приводит к зависанию модема на хрен. Для этого я в /etc/hal/fdi/policy/preferences.fdi написал

    <merge key="volume.ignore" type="bool">false</merge>

    плюс вынес на всякий случай /lib/udev/rules.d/75-cd-aliases-generator.rules и /etc/udev/rules.d/70-persistent-cd.rules, оптических приводов на нетбуке все равно нет;
  5. networkmanager умеет видеть модемы и соединяться через них, но почему-то считает, что любой CDMA-модем должен поддерживать AT+CMEE. Данный девайс такой команды не знает, поэтому сносим на хрен пакет modemmanager;
  6. Все необходимое снесли :)

Теперь пишем свое правило для udev, дабы модем сам переключался, как -то так:

SUBSYSTEM=="usb", SYSFS{idVendor}=="05c6", SYSFS{idProduct}=="1000", RUN+="/root/bin/cdma.sh"

Ну а в /root/bin/cdma.sh пишем что-то такое

#!/bin/sh
/bin/sleep 3
/usr/sbin/usb_modeswitch --default-vendor 0x05c6 --default-product 0×1000 --message-content 5553424312345678000000000000061b000000020000000000\
000000000000

По желанию можно и подъем соединения здесь же сделать, я не стал.

Ну и собственно, само соединение осталось настроить

/etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
mobile wellstar internet
/etc/ppp/peers/wellstar
/dev/ttyUSB0 230400 crtscts modem
noccp novj
connect «/usr/sbin/chat -e -v -f /etc/chatscripts/pap -T '#777'»
noauth user mobile remotename wellstar
usepeerdns defaultroute
debug updetach
/etc/ppp/chatscripts/pap
ABORT BUSY
ABORT VOICE
ABORT «NO CARRIER»
ABORT «NO DIALTONE»
ABORT «NO DIAL TONE»
"" ATZ
OK ATDTT
CONNECT ""

Все, теперь pon wellstar пустит нас в сеть.

Для сравнения под FreeBSD 8.0 это все делается выполнением одной (!) команды и правкой одного (!) конфига, никаких дополнительных установок. Ну и кто больше юзерфрендли?

Связанные записи

Метки: ,

4 комментария на запись "Как я побеждал модем в Ubuntu"

Sergey
30 марта 2010

А можно поподробнее пункт 2 и 4, а еще про правило для udev? Заранее спасибо

31 марта 2010

А что тут еще подробнее?

Sergey
31 марта 2010

Эмм, спрошу проще. А не могли бы вы выложить куда-нибудь свои файлы:

1)/etc/modprobe.d/anydata.conf

2)/etc/hal/fdi/policy/preferences.fdi

3)файл с правилом для udev

Делал все по инструкции,но модем виснет нахрен — бубунта его все равно пытается автоматически смонтировать + ко всему прочему у меня есть оптический привод и как-то не хотелось его отрубать.

6 апреля 2010

Выше есть содержимое каждого файла.

Как быть с внешним CD — не знаю, т.к. у меня его нет.

Оставить комментарий

Имя:
E-mail:
Сайт:
Вы можете использовать OpenID
или зарегистрироваться.