Wsparcie dla modemów GSM w OpenWrt
Instalacja i uruchomienie modemów GSM USB
Ostatnia zmiana: 2013-05-06 20:54

1. NDIS
2. Modemy LTE
3. Modemy CDMA
 3.1. AnyDATA ADU635WA
 3.2. AnyDATA ADU890-W
 3.3. DGT CT-680
4. Modemy GSM
 4.1. Alcatel X221S
 4.2. D-Link DWM-156 A1
 4.3. D-Link DWM-156 A3
 4.4. Huawei E173s-2 (12d1:1c0b)
 4.5. Huawei E3131s-2 HiLink
 4.6. Huawei E353s-2 HSPA+
 4.7. iPlus Commander 2
 4.8. Nokia 21M-02
 4.9. Novatel Ovation MC990D
 4.10. Option Icon 225
 4.11. Samsung GT-Y3100
 4.12. Sierra Wireless C855, C889
 4.13. Sierra Wireless - direct IP modems
 4.14. Vodafone K3760 (Option iCON 411)
 4.15. Vodafone K3805-Z
 4.16. ZTE MF195
 4.17. ZTE MF668
 4.18. ZTE MF669


Opisane wskazówki po ich zastosowaniu umożliwiają pracę danego modemu w systemie OpenWrt. Wszystkie ustawienia zostały przetestowane na OpenWrt Backfire oraz Attitude Adjustment z kernelami z serii 2.6 i 3.3.

Interfejs określony jako "diagnostyczny" może być wykorzystany do projektu 3ginfo.

Większość modemów powinna działać poprawnie po instalacji sterowników kmod-usb-serial-option. Interfejsem komunikacyjnym jest wtedy /dev/ttyUSB0, interfejsem diagnostycznym - ostatni z dostępnych. np: /dev/ttyUSB2 lub /dev/ttyUSB4. Dotyczy to większości popularnych modemów Huawei - E159, E169, E170, E220, a także telefonów komórkowych.

Jeżeli modem zawiera w sobie wbudowane sterowniki dla systemu Windows, należy także zainstalować pakiety odpowiedzialne za przełączenie urządzenia w tryb modemu.

    # opkg install usb-modeswitch usb-modeswitch-data

Poniżej przedstawiono listę modemów specyficznych, wymagających specjalnych ustawień i instalacji dodatkowych pakietów. Opcje pincode, apn, username oraz password należy oczywiście podać specyficzne dla danej karty SIM i operatora. Szczegóły dostępne są w dokumencie Router 3g. Inne modemy powinny działać od razu (lub nie zostały jeszcze zgłoszone jako niedziałające...).
Spis modemów działających pod OpenWrt tworzony przez użytkowników zawarty jest w tym wątku. Jeżeli masz działający modem - dopisz się do danych!

NDIS
Huawei E173 - kmod-usb-net-cdc-ether
Huawei E398, ZTE MF821D - kmod-usb-net-qmi-wwan
Huawei E3276 - kmod-usb-net-ncm

Gargoyle od wersji 1.5.9.3 zawiera obsługę E3276. W gui należy wybrać DHCP (przewodowo). Następnie zalogować się przez ssh do routera a następnie wpisać

    # uci set modem.e3276.enabled=1
    # uci set modem.e3276.apn=internet
    # uci set modem.e3276.pincode=0000 (można pominąć jak nie ma pinu)
    # uci commit modem
    # reboot

Bieżące skrypty pozwalają na dowolne ustawienia w gui, pod warunkiem że po jakiejkolwiek zmianie w zakładce konfiguracji wykonamy ponowny restart systemu. System sam odpowiednio ustawi interfejs wan i wykona połączenie, więc od użytkownika nie są wymagane żadne więcej działania.
Powrót do normalnego typu działania odbywa się przez polecenie:

    # uci set modem.e3276.enabled=0
    # uci set network.wan.auto=1
    # uci commit
    # reboot

oraz przez ponowne wybranie odpowiedniego typu połączenia w gui i zapisanie zmian.

Huawei E372 i K4505(E182E) - kmod-huawei-hw-cdc

Modemy LTE
Osobna strona

Modemy CDMA

AnyDATA ADU635WA
Jest to modem HSDPA/CDMA. Praca w jednym lub w drugim trybie wymaga odpowiedniej inicjacji modemu i innej konfiguracji połączenia. Wymaga instalacji sterowników kmod-usb-serial-option.

    # opkg install kmod-usb-serial-option

Interfejsy
  • /dev/ttyUSB0 - praca w trybie CDMA
  • /dev/ttyUSB2 - interfejs diagnostyczny
  • /dev/ttyUSB3 - praca w trybie HSDPA
Praca w trybie HSDPA

    config 'interface' 'wan'
        option 'proto' '3g'
        option 'device' '/dev/ttyUSB3'
        option 'pincode' '0000'
        option 'apn' 'internet'
        option 'username' ''
        option 'password' ''

Praca w trybie CDMA
Do poprawnej pracy wymagane jest przełączenie modemu w tryb CDMA. Aby to wykonać należy w pliku /etc/rc.local umieścić następującą sekwencję poleceń:

    echo -ne "\xD7\x03\x00\xAE\xEF\x7E" > /dev/ttyUSB2
    sleep 4
    echo -ne "\xCF\x0D\x00\x00\x81\x8A\x7E" > /dev/ttyUSB2
    sleep 5

Sekcja konfiguracyjna wygląda następująco:

    config 'interface' 'wan'
        option 'proto' '3g'
        option 'service' 'cdma'
        option 'device' '/dev/ttyUSB0'
        option 'pincode' '0000'
        option 'username' 'cdma@orange'
        option 'password' 'orange'

(przykładowa konfiguracja dla CDMA Orange)

Źródło informacji: http://eko.one.pl/forum/viewtopic.php?id=889
AnyDATA ADU890-W
Moje wersje Gargoyle od wersji 1.9.5.3 zawiera pełne wsparcie dla tego modemu, ale pin na karcie musi być jednym z wymienionych: 0000,1111,2222,3333,4444,5555,6666,7777,8888,9999,1234,00000,11111
praca w trybie HSPA+
  • /dev/ttyACM0 - praca w trybie HSPA+
praca w trybie CDMA
Wymagany jest odpowiedni skrypt do podania pinu (patrz link na forum)
  • /dev/ttyACM0 - praca w trybie CDMA
UWAGA: aby się połączyć w CDMA modem w windows musi być ustawiony jako CDMA a nie "Automatyczny wybór sieci". Jeżeli będzie wybrany automat to możliwe będzie uzyskanie połączenia tylko na tym protokole który wybrał modem. Nie znamy jeszcze kodów do przełączenia pomiędzy CDMA a UMTS.

Źródło informacji: http://eko.one.pl/forum/viewtopic.php?pid=50545#p50545 oraz http://eko.one.pl/forum/viewtopic.php?pid=62754#p62754
DGT CT-680
Modem CDMA m.in z usługi iPlus CDMA: http://eko.one.pl/forum/viewtopic.php?pid=42895#p42895

Modemy GSM

Alcatel X221S
Identyfikator urządzenia po przełączeniu: 1bbb:0017. Wymaga sterowników kmod-usb-serial-option, interfejsem komunikacyjnym jest /dev/ttyUSB4

Źródło informacji: http://openrouter.info/forum/viewtopic.php?t=1543&p=15132#p15132
D-Link DWM-156 A1
Identyfikator modemu przed przełączeniem: 07d1:a800, po przełączeniu: 07d1:3e02. Modem przedstawia się (ATI) jako:

Manufacturer: QUALCOMM INCORPORATED
Model: 29
Revision: 100303_GKDNIL_M0.23  1  [compilation=Mar 02 2010 20:57:56][Release=Mar 03 2010 06:00:00]
IMEI: xxxxxxxxxxxxxxx
+GCAP: +CGSM,+FCLASS,+DS

Wymaga instalacji sterowników kmod-usb-serial-option.

    # opkg install kmod-usb-serial-option

Interfejsy
  • /dev/ttyUSB0 - praca w trybie HSPA
  • /dev/ttyUSB2 lub /dev/ttyUSB3 - interfejs diagnostyczny
Źródło informacji: informacja własna
D-Link DWM-156 A3
Identyfikator modemu po przełączeniu: 07d1:7e11.
http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?p=5566#5566
Huawei E173s-2 (12d1:1c0b)
UWAGA Modem E173u-2 (dostępny np. w promocji Play Online) posiada inny PID i jest normalnie obsługiwany przez OpenWrt.
UWAGA wsparcie dla tego modemu zostało dodane w ostatnich moich wydaniach, więc nie trzeba robić nic kompletnie - powinien zostać wykryty automatycznie.

Wymaga instalacji sterowników kmod-usb-serial-option.

    # opkg install kmod-usb-serial-option

Interfejsy
  • /dev/ttyUSB0 - praca w trybie HSPA
  • /dev/ttyUSB2 - interfejs diagnostyczny
Niezbędne jest utworzenie pliku /etc/usb_modeswitch.d/12d1:1c0b o zawartości:

DefaultVendor= 0x12d1
DefaultProduct=0x1c0b

TargetVendor=  0x12d1
TargetProductList="1c05,1c08"

MessageContent="55534243123456780000000000000011062000000100000000000000000000"

CheckSuccess=20

oraz wpisanie linii:

echo "12d1 1c05" > /sys/bus/usb-serial/drivers/option1/new_id
sleep 2

jako pierwsze pozycje w pliku /etc/rc.local.

Źródło informacji: http://eko.one.pl/forum/viewtopic.php?id=1738
Huawei E3131s-2 HiLink
Jest to inna wersja modemu E3131s-2 niż ta sprzedawana przez Play. Nie ma żadnych dodatkowych oznaczeń na obudowie. Po podłączeniu modem przedstawia się identyfikatorem 12d1:14db oraz nazwą Huawei HiLink. W przeciwieństwie do zwykłego modemu ten przedstawia się jako karta sieciowa - cała obsługa APN, SMS, połączeń odbywa się w samym modemie konfigurowane przez przeglądarkę internetową. Modem ma adres domyślny 192.168.1.1, więc należy zmienić adres routera.
1. Zmieniamy adres routera:

    # uci set network.lan.ipaddr=192.168.2.1 
    # uci commit network

2. Instalujemy sterowniki CDC:

    # opkg install kmod-usb-net-cdc-ether

3. wykonujemy polecenie

    # logread | grep CDC

powinna wyświetlić się informacja typu:

Jan  1 01:00:55 Gargoyle user.info kernel: eth2: register 'cdc_ether' at usb-ar71xx-ehci-1, CDC Ethernet Device, 58:2c:80:13:92:63

Interfejs nazywa się w tym przypadku eth2, więc należy taki ustawić na wan i wznowić połączenie:

    # uci set network.wan.ifname=eth2
    # uci set network.wan.proto=dhcp
    # uci commit network
    # ifup wan

Interfejs wan powinien dostać adres 192.168.1.100. Do konfiguracji modemu można się dostać wpisując w przeglądarkę www adres http://192.168.1.1

Źródło informacji: informacja własna.
Huawei E353s-2 HSPA+
UWAGA wsparcie dla tego modemu zostało dodane w ostatnich moich wydaniach, więc nie trzeba robić nic kompletnie - powinien zostać wykryty automatycznie.
Identyfikator modemu przed przełączeniem: 12d1:14fe, po przełączeniu: 12d1:1506
Wymaga instalacji sterowników kmod-usb-serial-option.

    # opkg install kmod-usb-serial-option

Interfejsy
  • /dev/ttyUSB0 - praca w trybie HSPA+
  • /dev/ttyUSB4 - interfejs diagnostyczny
W celu poprawnego wykrycia modemy należy dodać

echo "12d1 1506" > /sys/bus/usb-serial/drivers/option1/new_id
sleep 2

jako pierwsze linie w /etc/rc.local.
Źródło informacji: http://eko.one.pl/forum/viewtopic.php?id=1923 oraz informacja własna.
iPlus Commander 2
Identyfikator modemu: 10c4:822b, obsługiwany przez sterownik cp210x

    # opkg install kmod-usb-serial-cp210x

Interfejsy
  • /dev/ttyUSB0
Do poprawnego działania skrypty muszą porozumiewać się z modemem z prędkością 460800, należy więc w pliku /lib/network/3g.sh odszukać linię zawierającą napis 115200 i zamienić go na 460800

    # sed -i -e 's/115200/460800/' /lib/network/3g.sh


Źródło informacji: użytkownicy forum eko.one.pl
Nokia 21M-02
1. Wymaga instalacji sterowników CDC ACM

    # opkg install kmod-usb-acm

2. Modem wymaga specjalnego przełączenia (są dwa sposoby)
- wykonuje się to "wysuwając" wirtualny modem. Najpierw należy zainstalować niezbędny program sdparm

    # opkg install sdparm kmod-scsi-generic

a następnie "wysunąć" modem poleceniem

    # sdparm --command=eject /dev/sg0

- lub należy utworzyć plik /etc/usb_modeswitch.d/0421:0637 o zawartości

TargetVendor=  0x0421
TargetProduct= 0x0638

MessageContent="5553424312345678000000000000061b000000020000000000000000000000"


Jeżeli mamy zainstalowany program usb-modeswitch, przełączenie modemu nastąpi automatycznie po starcie lub podłączeniu urządzenia.
3. Wymaga także usunięcia 2 opcji z 2 plików
- /etc/ppp/options

    noaccomp
    nopcomp

- /lib/network/3g.sh (dla backfire) lub /lib/netifd/proto/3g.sh (dla trunka z netifd)

    noaccomp \
    nopcomp \

Wyżej wymienione linie należy odszukać we wskazanych plikach i je usunąć.

Interfejsy
  • /dev/ttyACM0 - interfejs do połączenia
  • /dev/ttyACM1 lub /dev/ttyACM2 - interfejs diagnostyczny
Źródło informacji: https://forum.openwrt.org/viewtopic.php?id=34813 i informacja własna (http://eko.one.pl/forum/viewtopic.php?pid=36851#p36851)
Novatel Ovation MC990D
Modem wymaga przełączenia przed uruchomieniem. Wykonuje się to "wysuwając" wirtualny modem. Najpierw należy zainstalować niezbędny program sdparm

    # opkg install sdparm kmod-scsi-generic

a następnie "wysunąć" modem poleceniem

    # sdparm --command=eject /dev/sg0

Od tego momentu modem powinien normalnie działać.
Interfejsy
  • /dev/ttyUSB0 - praca w trybie HSDPA
  • /dev/ttyUSB3 - interfejs diagnostyczny
Praca w trybie HSDPA

    config 'interface' 'wan'
        option 'proto' '3g'
        option 'device' '/dev/ttyUSB0'
        option 'pincode' '0000'
        option 'apn' 'internet'
        option 'username' ''
        option 'password' ''


Źródło informacji: informacja własna
Option Icon 225
(UWAGA: skrypty w pakiecie hso działają poprawnie tylko w wydaniu Backfire, dla Attitude Adjustment nie zostały one jeszcze przepisane).
Wymagana jest instalacja sterowników HSO oraz specjalnych skryptów do nawiązania połączenia:

    # opkg install kmod-usb-net-hso
    # opkg install http://eko.one.pl/openwrt/hso_1-1_all.ipk

Może zdarzyć się sytuacja, że modem będzie niewidoczny po restarcie routera, należy więc w takich przypadkach dodać do pliku /etc/rc.local następujące polecenia:

    rmmod hso
    sleep 1
    insmod hso

Interfejsy
  • /dev/ttyHS1 - interfejs diagnostyczny
  • /dev/ttyHS2 - praca w trybie HSDPA
Praca w trybie HSDPA

    config 'interface' 'wan'
        option 'ifname' 'hso0'
        option 'proto' 'hso'
        option 'device' '/dev/ttyHS2'
        option 'pincode' '0000'
        option 'apn' 'internet'
        option 'username' ''
        option 'password' ''


Źródło informacji: http://eko.one.pl/forum/viewtopic.php?id=865
Samsung GT-Y3100
Wymagana instalacja sterownika ACM CDC

    # opkg install kmod-usb-acm

Interfejsy
  • /dev/ttyACM0 - tylko jeden do pracy w trybie HSDPA lub diagnostyczny
Źródło informacji: informacja własna
Sierra Wireless C855, C889
Wymagana jest instalacja sterowników kmod-usb-serial-sierrawireless

    # opkg install kmod-usb-serial-sierrawireless

Interfejsy
  • /dev/ttyUSB3 - praca w trybie HSDPA
  • /dev/ttyUSB4 - ograniczony interfejs diagnostyczny
Źródło informacji: http://eko.one.pl/forum/viewtopic.php?id=911 oraz własna (C889)
Sierra Wireless - direct IP modems
Lista wspieranych modemów
Wymagana instalacja specjalnego sterownika kmod-usb-sierrawireless-directip dostępne w moim repozytorium
Skrypt startowy (do umieszczenia w /etc/rc.local)

    ifdown wan
    PINCODE=1234 gcom -d /dev/ttyUSB3 -s /etc/gcom/setpin.gcom
    MODE="AT+CGDCONT=1,\"IP\",\"www.plusgsm.pl\"" gcom -d /dev/ttyUSB3 -s /etc/gcom/setmode.gcom
    MODE="AT$QCPDPP=1,1,\"internet\",\"internet\"" gcom -d /dev/ttyUSB3 -s /etc/gcom/setmode.gcom
    MODE="AT!SCACT=1,1" gcom -d /dev/ttyUSB3 -s /etc/gcom/setmode.gcom
    sleep 2
    ifup wan
    exit 0

Sekcja wan w /etc/config/network

    config 'interface' 'wan'
        option 'proto' 'dhcp'
        option 'ifname' 'usb0'

Vodafone K3760 (Option iCON 411)
Wymagana jest instalacja sterowników HSO oraz specjalnych skryptów do nawiązania połączenia:

    # opkg install kmod-usb-net-hso
    # opkg install http://eko.one.pl/openwrt/hso_1-1_all.ipk

Może zdarzyć się sytuacja, że modem będzie niewidoczny po restarcie routera, należy więc w takich przypadkach dodać do pliku /etc/rc.local następujące polecenia:

    rmmod hso
    sleep 1
    insmod hso

Interfejsy
  • /dev/ttyHS2 - praca w trybie HSDPA
  • /dev/ttyHS3 - interfejs diagnostyczny
Praca w trybie HSDPA

    config 'interface' 'wan'
        option 'ifname' 'hso0'
        option 'proto' 'hso'
        option 'device' '/dev/ttyHS2'
        option 'pincode' '0000'
        option 'apn' 'internet'
        option 'username' ''
        option 'password' ''


Źródło informacji: informacja własna
Vodafone K3805-Z
http://eko.one.pl/forum/viewtopic.php?pid=32963#p32963
ZTE MF195
Identyfikator USB przed przełączeniem: 19d2:1514, po przełączeniu: 19d2:1515, Modem przedstawia się (ATI) jako

MF195-2.0.0

Prawdopodobnie jest na chipsie Icera.
Wymaga instalacji sterowników kmod-usb-acm.

    # opkg install kmod-usb-acm

Interfejsy
  • /dev/ttyACM0 - interfejs komunikacyjny/diagnostyczny
  • /dev/ttyACM1 - interfejs komunikacyjny/diagnostyczny
Modem można przełączyć na stałe (odłączyć wbudowany wirtualny CDROM) poleceniem AT%USBMODEM=0 (to polecenie modemu, nie systemu OpenWrt!)

W niektórych przypadkach może okazać się koniecznie usunięcie kilku opcji z ppp:
- w pliku /etc/ppp/options usunąć linie z

    noaccomp
    nopcomp

- w pliku /lib/netifd/proto/3g.sh (dla Attitude Adjustment lub trunka) usunąć linie

    noaccomp \
    nopcomp \


Można to wykonać poleceniami

    # sed -i '/noaccomp/d' /etc/ppp/options
    # sed -i '/nopcomp/d' /etc/ppp/options
    # sed -i '/noaccomp/d' /lib/netifd/proto/3g.sh
    # sed -i '/nopcomp/d' /lib/netifd/proto/3g.sh


Źródło informacji: informacja własna
ZTE MF668
Wymaga instalacji sterowników kmod-usb-serial-option.

    # opkg install kmod-usb-serial-option

Interfejsy
  • /dev/ttyUSB1 - interfejs diagnostyczny
  • /dev/ttyUSB2 - praca w trybie HSPA+
Praca w trybie HSPA+

    config 'interface' 'wan'
        option 'proto' '3g'
        option 'service' 'umts'
        option 'device' '/dev/ttyUSB2'
        option 'apn' 'multi.internet'

(przykładowa konfiguracja dla Cyfrowego Polsatu)

Źródło informacji: informacja własna
ZTE MF669
Identyfikator USB przed przełączeniem: 19d2:0154, po przełączeniu: 19d2:0017. Aby przełączyć poprawnie wymagane jest utworzenie nowego skryptu dla usb_modeswitch - należy utworzyć (o ile go nie ma) plik /etc/usb_modeswitch.d/19d2:0154 o następującej zawartości:

DefaultVendor= 0x19d2
DefaultProduct=0x0154

TargetVendor=  0x19d2
TargetProduct= 0x0117

MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"

NeedResponse=1

lub wykonać po prostu polecenie

    # usb_modeswitch -v 19d2 -p 0154 -M "5553424312345678000000000000061b000000020000000000000000000000"

Wymaga instalacji sterowników kmod-usb-serial-option.

    # opkg install kmod-usb-serial-option

Interfejsy
  • /dev/ttyUSB1 - interfejs komunikacyjny/diagnostyczny
  • /dev/ttyUSB2 - interfejs komunikacyjny/diagnostyczny
Źródło informacji: informacja własna