3G и FreeBSD 7.2-STABLE

Опубликовано

Купленный не так давно CDMA-модем запланировано использовать в качестве обратного канала при использовании спутникового интернета (кстати посылка с TT-budget S1401 наконец-то пришла, получить только осталось). В качестве роутера, раздающего интернет в локалку, включающую в себя домашний компьютер, ноут и КПК, будет использоваться компьютер с установленной FreeBSD. Соответственно под данной осью

нужно завести модем.Задача как оказалось не сложная, по первому же запросу в Google нашелся готовый конфиг для ppp.conf, вот такой:

evdo:set speed 460800set timeout 160enable dnsset device /dev/cuaU0set phone \#777set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" "AT+CRM=1;&C2" OK \\dATDT\\T TIMEOUT 40 CONNECT"set loginset authname mobileset authkey internetset ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0add default HISADDR

Патч для модуля ubsa.ko, устраняющий kernel-panic на высоких скоростях и инструкция по переключению модема в режим модема.Последнее это такая особенность этих девайсов, даже продернутая на bash.org.ru

FreeBSD: нукась, что тут нам воткнули...момед: Я сидюкFreeBSD: а похмомед: Я сидюк с драйверамиFreeBSD: а похмомед: Я сидюк с драйверами под всякие разные операционкиFreeBSD: а похмомед: под много операционокFreeBSD: а похмомед: (cмущенно) ну вааще-то я еще и модемFreeBSD: да ну?момед: честно-честноFreeBSD: ну так жужжи со штатным ubsa и не выпендривайся.момед: жжжжжжжжжжж

В общем модем представляет собой составное устройство, два в одном (три в одном если уж совсем точным быть) модем и диск с драйверами. В винде видятся оба за раз, FreeBSD так не умеет, отсюда и необходимость переключать модем в режим модема :) .Для реализации переключения качаем специальную тулзу - usb_modeswitch

fetch http://www.draisberghof.de/usb_modeswitch/usb_modeswitch-0.9.7.tar.bz2

Ставим libusb из портов

make -C /usr/ports/devel/libusb install clean

Собираем usb_modeswitch и распихиваем файлики по местам

cc -L /usr/local/lib -I/usr/local/include -lusb -o usb_modeswitch usb_modeswitch.ccp usb_modeswitch.conf /etc/cp usb_modeswitch /root/bin/

В /etc/usb_modeswitch.conf нужно снять комментарии со строчек, описывающих наш модем.Теперь если подключить модем мы увидим в dmesg:

ugen1: <AnyDATA Corporation USB MMC Storage, class 0/0, rev 1.10/0.00, addr 2> on uhub4

А после выполнения /root/bin/usb_modeswitch

ucom0: <AnyDATA Corporation AnyDATA CDMA Products, class 0/0, rev 1.10/0.00, addr 2> on uhub4

В ядре при этом не должно быть umass и cd, но на роутере это думаю не самое необходимое.Все теперь уже можно использовать вышеприведенный конфиг. Связь устанавливается, в интернет ходится, скорость такая же как и в винде, но есть одна неприятность. При завершении связи допустим по killall ppp или если со стороны оператора произойдет отключение установить соединение повторно уже не получится, т.к. модем при этом остается в подвисшем состоянии и вылечить его можно только перетыканием кабеля. Уверен, что способ с перетыканием кабеля не единственный, но другие пока не известны, веду поиски в этом направлении.Пара интересных фактов:

  • Название "блог бомжа" помоему нужно уже считать визиткой сеошников, вот сегодня блог о заработке в интернет, как думете называется? SEO бомж, ну уже если честно неоригинально.
  • Когда ломается сложная электроника это плохо, а если ломается орудие труда, например ноутбук это плохо вдвойне. Однако есть фирмы, которые быстро и качественно выполнят даже ремонт Apple Macbook Air. Я всегда считал, что ноуты ремонту не подлежат, оказывается ошибался.