Uruchomienie połączenia GSM w trybie NDIS
Ostatnia zmiana: 2013-11-26 18:43
Modemy USB (np. Huawei) mogą zwykle pracować w dwóch trybach pracy:
- RAS, przez interfejs szeregowy, najczęściej wykorzystywany. Połączenie nawiązuje się przy pomocy odpowiedniego programu i demona ppp.
- NDIS, w tym trybie działa i zachowuje się jak zwykła karta sieciowa.
Zaletą trybu NDIS jest zwykle możliwość uzyskania większej prędkości połączenia. Opisane rozwiązane prezentuje możliwość nawiązania połączenia NDIS przy wykorzystaniu popularnego modemu Huawei E173u-2 (+ karta Aero2).
Sprawdzenie modemu
Nie wszystkie modele obsługują ten tryb. Jeżeli uruchomimy polecenie:
# cat /proc/bus/usb/devices
to zostaną wyświetlone informacje szczegółowe na temat urządzeń USB. Wśród nich znajduje się informacja o modemie:
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=12d1 ProdID=1436 Rev= 0.00
S: Manufacturer=HUAWEI Technology
S: Product=HUAWEI Mobile
C:* #Ifs= 7 Cfg#= 1 Atr=e0 MxPwr=500mA
A: FirstIf#= 1 IfCount= 2 Cls=02(comm.) Sub=00 Prot=00
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=5ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=06 Prot=ff Driver=(none)
E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=5ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=(none)
E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=85(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=86(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=87(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=05(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 6 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=06(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=88(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
Występują tam dwie sekcje bez sterownika (none). Najczęściej jest to właśnie miejsce na sterownik trybu NDIS nazwany w linuksie CDC Ether. W takim przypadku można spróbować uruchomić ten tryb.
Instalacja
Niezbędne jest zainstalowanie odpowiedniego sterownika. Niestety, te spotykane w OpenWrt nie wspierają modemów USB, dlatego należy skorzystać z moich obrazów i zainstalować sterownik pochodzący ode mnie:
# opkg update
# opkg install kmod-usb-net-cdc-ether
Po instalacji modułu wraz z zależnościami należy sprawdzić czy nasz modem jest przez niego obsługiwany (
cat /proc/bus/usb/devices):
I:* If#= 1 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=06 Prot=ff Driver=cdc_ether
E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=5ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
Jeżeli tak jest - to połowa sukcesu.
Konfiguracja
Zmieniamy sekcję wan w pliku
/etc/config/network na następującą:
config 'interface' 'wan'
option 'auto' '0'
option 'proto' 'dhcp'
option ifname usb0
option macaddr 00:01:02:03:04:05
Opcja
macaddr jest ważna i należy ją zostawić w takiej postaci. Interfejs sieciowy będzie nazywał się usb0; adres IP będzie uzyskany z dhcp.
Nawiązanie połączenia
Wystarczy wydać polecenie
do modemu aby połączenie zostało nawiązane. Jednym z argumentów jest nazwa APN (dla Aero2 jest to właśnie "darmowy" - patrz także poradnik
Router 3G).
Polecenie można wydać ręcznie np. przy pomocy programu
picocom, choć oczywiście najprościej to zautomatyzować. Jeżeli używany jest mój obraz można to zrobić dodając do pliku
/etc/rc.local następujące polecenia:
sleep 5
MODE="AT^NDISDUP=1,1,\"darmowy\"" gcom -d /dev/ttyUSB2 -s /etc/gcom/setmode.gcom
ifup wan
Rozłączenie połączenia następuje po wydaniu polecenia
# MODE="AT^NDISDUP=1,0" gcom -d /dev/ttyUSB2 -s /etc/gcom/setmode.gcom
Dla modemów Sierra Wireless patrz:
http://eko.one.pl/?p=openwrt-modemygsm#sierrawirelessdirectipmodems . Nie wszystkie modemy HUAWEI obsługują polecenie AT^NDISDUP, być może w niektórych przypadkach będzie trzeba użyć innych poleceń.