DataLife Engine > Настройка > USB 3G модем и FreeBSD

USB 3G модем и FreeBSD


03-02-2012. Разместил: synergix Не так давно я стал "счастливым" обладателем 3G USB модема от синей компании smile Сабж вполне сносно работал под оффтопиком, ибо в описании гарантировалась работа под МакОсью и Виндой. Немного поразмыслив, решил, что это неправильно и модем просто обязан работать под самой правильной осью.
Итак, что у нас в наличии:
1. Ясная голова и кружка кофе.
2. Компьютер с установленной FreeBSD 8.0
3. Собственно сам 3G USB Modem.
USB 3G модем и FreeBSD

Вот немного его технических характеристик.
Спецификация модема MF627.
Стандарт HSDPA/UMTS 2100 MHz; EDGE/GPRS/GSM 850/900/1800/1900MHz
Передача данных UMTS 384Kbps UL; HSDPA 3.6Mbps DL
Чипсет Qualcomm MSM6246
Антенна Внутренняя
USB USB2.0
Операционная Система Windows 2000, Windows XP, Vista, MAC

Принимая во внимание, что синий оператор успешно покрыл сетью 3G практически все крупные города, скорость даже в пределах 1 Mbps вполне меня устраивает.
Немного погуглив, было найдена страничка с драйверами для данного вида модемов, которая говорила что поддержка данного типа модемов уже имеется в FreeBSD 7-ой и 8-ой ветки и носит название u3g.
Поначалу решено было загружаться с ядром GENERIC, так как на текущем ядре я отключил USB за ненадобностью, но как видимо зря, а пересобирать ядро было лень ввиду слабого процессора.
Загрузившись, ничтоже сумняшеся, подгружаем драйвера модема.

#kldload u3g


и смотрим, загрузилось ли оно

#kldstat


Собравшись с духом, втыкаем модем в свободный USB порт и смотрим, определился ли он.

В выводе usbconfig модем определяется так:

ugen1.3: <ZTE cdma="" technologies="" msm="" incorporated="" /> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON


Далее возможны варианты. Если после подключения модема появилось новое устройство вида /dev/cd0, значит, модем представляется CD-приводом, содержащим драйвера для Windows и прочих. Выводится модем из этого режима следующим образом:

usbconfig -d 1.3 add_quirk UQ_MSC_EJECT_ZTESTOR
camcontrol eject pass0


Цифры 1.3 скопированы из вывода usbconfig, а 0 - из названия /dev/cd0, у вас могут быть другие значения.

Если же вам понадобится вернуть автозагрузку CD-ROM и картридера, то достаточно сконнектится на порт модема телнетом и дать команду

AT+ZCDRUN=8 - возвращает загрузку CD-ROM и картридера
AT+ZCDRUN=E - включить режим модема
AT+ZCDRUN=F - режим модем+картридер



После этого пропадает /dev/cd0 и появляются /dev/cuaU0.0, /dev/cuaU0.1 и /dev/cuaU0.2. Опять же, конкретные цифры у вас могут быть другими при наличии в системе других устройств /dev/cuaUx.

Необходимо добиться появления /dev/cuaUx.x, без этого к следующим шагам переходить рано.

Настройка подключения
Открываем файл /etc/ppp/ppp.conf и пишем туда следующее:

itc:
ident user-ppp VERSION (built COMPILATIONDATE)
set log PHase Chat LCP IPCP CCP tun command
set device /dev/cuaU0.0
set phone "*999#"
set dial "ABORT BUSY ABORT NOsCARRIER TIMEOUT 5 "" AT OK-AT-OK ATE1Q0s7=60 OK dATDT TIMEOUT 40 CONNECT"
set login
set authname ""
set authkey ""
add default HISADDR


ВНИМАНИЕ! ВСЕ СТРОКИ, КРОМЕ ПЕРВОЙ (itc:) ДОЛЖНЫ НАЧИНАТЬСЯ С ОТСТУПА

Иногда могут потребоваться такие строки:

set speed 1920000
set ifaddr 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0


Теперь осталось добавить строки запуска демона в /etc/rc.conf:

ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="itc"
ppp_user="root"


После этого запускаем подключение:
#/etc/rc.d/ppp start

Теперь можно посмотреть в файл /var/log/ppp.log и если там нет ошибок и сообщений вида «hangup», значит всё работает и можно проверить, получили ли мы адрес и добавился ли шлюз по умолчанию:

#ifconfig tun0
tun0: flags=8051 metric 0 mtu 1500
options=80000
inet 95.111.XX.XX --> 195.128.XX.XX netmask 0xffffffff
Opened by PID 483

#netstat -rn | grep default
default 195.128.XX.XX UGS 0 22785 tun0


Собственно, всё.
Вернуться назад