Недавно пришли два USB модема Huawei K-3765 из матушки-Германии. Ларчик открывается просто.
1. Отвязал (у нас в Русссссо-русссии нет водафона, видимо из-за московии) модем, перешив в в винде в Proximitys.
2. Необходим 3g драйвер, он у меня в ядре:
1 |
device u3g # USB-based 3G modems (Option, Huawei, Sierra) |
Ну или грузить тогда в /boot/loader.conf: u3g_load=YES или вообще наживую: kldload u3g.
3. Подсоединяю модем и смотрю на устройства. у меня вырос /dev/cuaU0.0 (ошибочно полагать, что cuaU0.2 или 0.3, т.к. это алиасы этой usb-палки).
4. конфиг mpd:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
default: load umts_mts umts_mts: log ipcp ipcp2 create bundle static B3 set iface up-script /usr/local/etc/mpd5/up_inet_3g.sh set iface down-script /usr/local/etc/mpd5/down_inet.sh set ipcp ranges 0.0.0.0/0 1.1.1.1/0 set ipcp disable vjcomp create link static L3 modem set modem device /dev/cuaU0.0 set modem speed 921600 set modem script umts_mts_dial set modem watch -cd set modem watch -dsr set modem var $APN "internet.mts.by" set link action bundle B3 set link max-redial 0 set link keep-alive 10 60 set auth authname "mts" set auth password "mts" open |
Скрипт управления модемом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
umts_mts_dial: set $ConnectionSpeed "" if $ConnectTimeout == "" set $ConnectTimeout 45 print "AT+CGDCONT=1,\"ip\",\"" print $APN print "\"\r\n" match "ERR" InitERR match "OK" InitOK wait 5 log "Timeout setting for the APNs." failure InitERR: log "APN could not be set." failure InitOK: print "ATD*99***1#\r\n" match "NO CARRIER" DialAbortNoCar match "NO DIAL" DialAbortNoDial match "BUSY" DialAbortBusy regex "CONNECT *([0-9]*).*$" DialConnect match "ERR" DialErrorInit wait $ConnectTimeout log "No response from the modem after dialing." failure DialAbortNoCar: log "The remote modem did not answer." failure DialAbortNoDial: if $noDialToneSubr != "" goto $noDialToneSubr log "No dialtone. Is the modem plugged in?" failure DialError: if ${ModTelephone} != "" goto DialErrorInit log "Invalid empty telephone number." failure DialErrorInit: if $dialErrorSubr != "" goto $dialErrorSubr log "Invalid dial init string." failure DialAbortBusy: log "The line was busy." failure DialConnect: set $ConnectionSpeed $matchedString1 set $dialResult "OK" success |
И скрипты старта:
1 2 3 4 |
#!/bin/sh /sbin/route delete default /sbin/route add default 1.1.1.1 |
и остановки для шлюза:
1 2 3 4 5 |
#!/bin/sh /usr/local/etc/mpd5/down_ipv6.sh /sbin/route delete default /sbin/route add default 192.168.30.1 |
Теперь пояснения. Параметр set ipcp ranges 0.0.0.0/0 1.1.1.1/0 указан, т.к. терминатор МТС не отдаёт конкретно этому модему корректно шлюз для интернета. Поэтому он создаётся с ip 1.1.1.1 и именно поэтому я скриптом ставлю 1.1.1.1 шлюзом после поднятия интернета. Директива disable vjcomp запрещает сжатие IP-заголовков, как и просит меня страница о настройках сайта МТС.
Если у Вас ничего не вышло – ищите свой модем: cu -l /dev/cuaUx.x -s 960000 и там уже команду ATI (должен явиться глазу Huawei). Напоминаю выход из cu – ~. (тильда и точка). Не стоит так же надеяться, что шлюз будет выдан автоматически (нужно помнить об 1.1.1.1).
Мной USB-девайс Huawei K-3765 был выбран за возможность перепрошивки, стабильность, скорость и раннюю реализацию в ядре.
Так же можно почитать у меня в блоге: mts.by + mpd + gprs с телефона и Прагляд балансу МТС з кансолі.