Temat: Tryb NDIS w Huawei E3131
W nowszych wersjach kernela pojawił się sterownik huawej-cdc-ncm przeznaczony m.in dla modemu E3131. Cała historia tego modemu opisana jest na listach dyskusyjnych związanych z linux-usb, okazało się że modem nie reaguje na zwykłe polecenia AT przeznaczone do łączenia jeżeli nie zostały one wysłane specjalnym kanałem komunikacyjnym. Ten sterownik to robi; dzięki temu możliwe jest uruchomienie trybu NDIS dla tego modemu.
Ponieważ pojawiło się kilka różnych łat, włączyłem je do moich źródeł BB dzięki czemu mógł zaistnieć ten sterownik w postaci pakietu kmod-usb-net-huawei-cdc-ncm. Po zainstalowaniu tworzy się nowe urządzenie o nazwie /dev/cdc-wdm0. przez niego możemy "czystym" tekstem rozmawiać z modemem.
Aby zainicjalizować podłączenie wystarczy wysłać polecenie:
# echo -e 'AT^NDISDUP=1,1,"APN"\r' > /dev/cdc-wdm0
a później pobrać przez dhcp adres na interfejsie wwan0.
Aby zakończyć połączenie:
# echo -e 'AT^NDISDUP=1,0\r' > /dev/cdc-wdm0
Połączenie można wykonać ręcznie, ale przygotowałem także odpowiednie pakiety aby można było automatycznie zestawić połączenie. Pakiety dostępne są tylko w moim repozytorium i nie stanowią części oficjalnego wydania BB (są częścią obecnego trunka)
Instalacja:
# opkg update
# opkg install comgt-ncm kmod-usb-net-huawei-cdc-ncm
Konfiguracja: sekcja wan w pliku /etc/config/network
config interface 'wan'
option proto 'ncm'
option apn 'internet'
option device '/dev/cdc-wdm0'
I to wszytko. Po ifup wan lub restarcie routera powinien się połączyć.
Przykładowe informacje z mojego modemu (Huawei E3131s-2):
root@OpenWrt:/# ifconfig wwan0
wwan0 Link encap:Ethernet HWaddr 58:2C:80:13:92:63
inet addr:109.243.136.37 Bcast:109.243.136.39 Mask:255.255.255.252
inet6 addr: fe80::5a2c:80ff:fe13:9263/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1308 errors:0 dropped:0 overruns:0 frame:0
TX packets:1653 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:538840 (526.2 KiB) TX bytes:11600423 (11.0 MiB)
root@OpenWrt:/# 3ginfo
Status: Połączony
Czas polaczenia: 0d, 00:05:33
Przeslano danych: 570.0 KiB / 13.5 MiB
Operator: Play
Tryb pracy: HSPA+
Sila sygnalu: 87%
Urzadzenie: huawei E3131
MCC MNC: 260 06
LAC: 0070 (112)
LCID: - (-)
RNC: - (-)
eNB: - (-)
CID: 2DA8 (11688)
CSQ: 27
RSSI: -59 dBm
UWAGI:
- czasami sterownik się wiesza. Objawia się to przyznaniem adresów ip ale brakiem całkowitego ruchu - ani pingi ani inna transmisja nie przechodzi. Wtedy jedynym rozwiązaniem jest restart modemu/routera
- źle naliczane są liczniki transmisji (do widać po danych np. przy ifconfig czy 3ginfo). To znany problem na styku kernela/sterownika cdc/huawei i nie zostanie rozwiązany aż do momentu pojawienia się nowego kernela z przepisanym podsystemem cdc.
Dla porównania: normalna konfiguracja RAS dla modemu E3131:
config interface 'wan'
option proto '3g'
option apn 'internet'
option device '/dev/ttyUSB0'