1 (edytowany przez Cezary 2015-02-07 22:01:47)

Temat: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

UWAGA: Podane skrypty praktycznie nie mają już zastosowania - były dla wersji Attitude Adjustment. Obecnie OpenWrt używa swoich  rozwiązań które są w standardowo w repozytorium, patrz poradnik OpenWrt jako router 3G/4G.

HSO
Skrypt przeznaczony dla modemów korzystających ze sterownika HSO, głównie Option
- Option Icon 225: wymagany jest sterownik HSO (pakiet kmod-usb-net-hso z zależnościami)

0. Instalacja skryptu

 # cd /
 # wget http://dl.eko.one.pl/projekty/hso.tgz
 # tar zxvf hso.tgz
 # rm hso.tgz

1. Zainstalować wymagane pakiety

 # opkg install chat  comgt kmod-usb-net-hso kmod-rfkill kmod-input-core

2. Skonfigurować połączenie wan
- dla czystego OpenWrt (konsola)

 # uci del network.wan
 # uci set network.wan=interface
 # uci set network.wan.proto=dhcp
 # uci set network.wan.ifname=hso0
 # uci commit network

- dla Gargoyle PL: w gui, zakładka Konfiguracja/Podstawowa wybrać "Urządzenie pracuje jako: Brama sieciowa", Połączony przez: DHCP (przewodowo), Interfejs WAN: hso0
3. Ustawić parametry połączenia

 # uci set network.wan.apn=internet
 # uci set network.wan.password=internet
 # uci set network.wan.username=internet
 # uci set network.wan.pincode=0000
 # uci commit network

(apn konieczny, reszta wg potrzeby)
4. Nawiązanie połączenia z internetem

 # hso.sh

5. Zakończenie połączenia z internetem

 # hso.sh stop

NDIS

Skrypt przeznaczony dla modemów które potrafią pracować w trybie NDIS, np.
- Huawei E173: wymagany jest sterownik CDC Ether (pakiet kmod-usb-net-cdc-ether z zależnościami)
- Huawei E3276: wymagany jest sterownik CDC NCM (pakiet kmod-usb-net-cdc-ncm z zależnościami)

Dla gargoyle połączenie konfiguruje się z gui, nie trzeba dodawać żadnych skryptów.

Skrypt wymaga zainstalowania pakietów chat i comgt.

0. Instalacja skryptu:

 # cd /sbin
 # wget http://dl.eko.one.pl/projekty/ndis.sh
 # chmod 755 /sbin/ndis.sh

1. Zainstalować wymagane pakiety: kmod-usb-net-cdc-ether lub kmod-usb-net-cdc-ncm wraz z zależnościami
2. Podłączyć modem, poczekać na jego przełączenie, wykonać polecenie

 # ifconfig -a

Powinna pojawić się lista interfejsów. Do połączenia zostanie wykorzystany ten o nazwie wwan0 lub usb0 (zależy od modemu i sterownika)
3. Skonfigurować połączenie wan
- dla czystego OpenWrt (konsola)

 # uci del network.wan
 # uci set network.wan=interface
 # uci set network.wan.proto=dhcp
 # uci set network.wan.ifname=wwan0
 # uci commit network

- dla Gargoyle PL: w gui, zakładka Konfiguracja/Podstawowa wybrać "Urządzenie pracuje jako: Brama sieciowa", Połączony przez: DHCP (przewodowo), Interfejs WAN: wwan0 (lub usb0 stosowanie do posiadanego modemu).
4. Ustawić parametry połączenia

 # touch /etc/config/modem
 # uci set modem.global=interface
 # uci set modem.global.enabled=1
 # uci set modem.global.apn=internet
 # uci set modem.global.pincode=0000 (można pominąć jak nie ma pinu)
 # uci commit modem

5. Nawiązanie połączenia z internetem

 # ndis.sh

6. Zakończenie połączenia z internetem

 # ndis.sh stop

PS. W większości przypadków dla modemu E3276 ten skrypt nie jest potrzebny. Wystarczy ustawić tylko odpowiednio interfejs w wan i nawiązać połączenie przez

MODE="AT^NDISDUP=1,1,\"internet\"" gcom -d $PORT -s /etc/gcom/setmode.gcom
ifup wan

QMI
v1 z wykorzystaniem skryptów LUA

Dla gargoyle połączenie konfiguruje się z gui, nie trzeba dodawać żadnych skryptów.

Skrypt przeznaczony dla modemów które potrafią pracować w trybie QMI, np.
- Huawei E372: wymagany jest sterownik QMI (pakiet kmod-usb-net-qmi-wwan z zależnościami)
- Huawei E398: wymagany jest sterownik QMI (pakiet kmod-usb-net-qmi-wwan z zależnościami)
- ZTE MF821: wymagany jest sterownik QMI (pakiet kmod-usb-net-qmi-wwan z zależnościami)

0. Instalacja skryptu

 # cd /
 # wget http://dl.eko.one.pl/projekty/qmi.tgz
 # tar zxvf qmi.tgz
 # rm qmi.tgz

Skrypt wymaga dodatkowo zainstalowania pakietu lua

 # opkg install lua

Skrypt do inicjalizacji połączenia qmi pochodzi z projektu Of Modems and Men
1. Zainstalować wymagane pakiety: kmod-usb-net-qmi-wwan wraz z zależnościami
2. Skonfigurować połączenie wan
- dla czystego OpenWrt (konsola)

 # uci del network.wan
 # uci set network.wan=interface
 # uci set network.wan.proto=dhcp
 # uci set network.wan.ifname=wwan0
 # uci commit network

- dla Gargoyle PL: w gui, zakładka Konfiguracja/Podstawowa wybrać "Urządzenie pracuje jako: Brama sieciowa", Połączony przez: DHCP (przewodowo), Interfejs WAN: wwan0
3. Ustawić parametry połączenia

 # touch /etc/config/modem
 # uci set modem.global.enabled=1
 # uci set modem.global.apn=internet
 # uci set modem.global.username=internet
 # uci set modem.global.password=internet
 # uci set modem.global.pincode=0000 (można pominąć jak nie ma pinu)
 # uci commit modem

4. Nawiązanie połączenia z internetem

 # qmi.sh

5. Zakończenie połączenia z internetem

 # qmi.sh stop

QMI
v2 z wykorzystaniem uqmi

Dla gargoyle połączenie konfiguruje się z gui, nie trzeba dodawać żadnych skryptów.

Skrypt przeznaczony dla modemów które potrafią pracować w trybie QMI, np.
- Huawei E372: wymagany jest sterownik QMI (pakiet kmod-usb-net-qmi-wwan z zależnościami)
- Huawei E398: wymagany jest sterownik QMI (pakiet kmod-usb-net-qmi-wwan z zależnościami)
- ZTE MF821: wymagany jest sterownik QMI (pakiet kmod-usb-net-qmi-wwan z zależnościami)

0. Instalacja skryptu

 # cd /usr/sbin
 # wget http://dl.eko.one.pl/projekty/uqmi.sh
 # chmod 755 /usr/sbin/uqmi.sh

Skrypt wymaga dodatkowo zainstalowania pakietu uqmi (dostępny u mnie w repozytorium)

 # opkg install uqmi 

1. Zainstalować wymagane pakiety: kmod-usb-net-qmi-wwan wraz z zależnościami
2. Skonfigurować połączenie wan
- dla czystego OpenWrt (konsola)

 # uci del network.wan
 # uci set network.wan=interface
 # uci set network.wan.proto=dhcp
 # uci set network.wan.ifname=wwan0
 # uci commit network

- dla Gargoyle PL: w gui, zakładka Konfiguracja/Podstawowa wybrać "Urządzenie pracuje jako: Brama sieciowa", Połączony przez: DHCP (przewodowo), Interfejs WAN: wwan0
3. Ustawić parametry połączenia

 # touch /etc/config/modem
 # uci set modem.global=interface
 # uci set modem.global.enabled=1
 # uci set modem.global.apn=internet
 # uci set modem.global.username=internet
 # uci set modem.global.password=internet
 # uci set modem.global.pincode=0000 (można pominąć jak nie ma pinu)
 # uci commit modem

4. Nawiązanie połączenia z internetem

 # uqmi.sh

Przydatne polecenia do sprawdzenia stanu sieci i modemu:

uqmi -d /dev/cdc-wdm0 --get-data-status
uqmi -d /dev/cdc-wdm0 --get-pin-status
uqmi -d /dev/cdc-wdm0 --network-scan

Uwagi końcowe

Jeżeli chodzi o pracę w NDIS, w niektórych przypadkach:
- modemy odmawiały połączenia, pomagało tylko wyjęcie i ponowne podłączenie modemu.
- modem dostawiał adres z klasy 10.*, brak było wtedy transmisji. Pomagało ponowne wymuszenie połączania.
- nie wszystkie modemy mogą chcieć pracować w tym trybie. Np. Huawei E173 z niektórymi wersjami firmware.
- polecenie nawiązania połączenia można umieścić  w skryptach startowych lub np. w "Monitorze połączenia" w Gargoyle.

AKTUALIZACJA:
wydanie Barrier Breaker (BB) zawiera obsługę QMI. Wystarczy tylko zainstalować odpowiednie pakiety i skonfigurować poprawnie:

 # opkg update
 # opkg install uqmi kmod-usb-net-qmi-wwan

Konfiguracja:

  # uci del network.wan
  # uci set network.wan=interface
  # uci set network.wan.proto=qmi
  # uci set network.wan.device=/dev/cdc-wdm0
  # uci set network.wan.ifname=wwan0
  # uci set network.wan.apn=internet

ew:

  # uci set network.wan.pincode=1234
  # uci set network.wan.modes='all,lte'
  # uci set network.wan.delay=30 <- może być wymagane dla niektórych modemów np. ZTE
 
  # uci commit network
  # ifup wan
Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

2

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Co daje ta wersja dla modemu E3276 w porownaniu do tego co jest w gargoyle w /sbin/e3276 ?

3

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Po za tym ze samodzielnie nie ustawia wanu tylko bazuje na tym co jest przez użytkownika ustawione to jest to to samo.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

4

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Cezary: Nie chciałeś użyć uqmi zamiast skryptu w bash'u (qmihelp) do połączeń QMI?
Gotowca można znaleźć tutaj: http://code.google.com/p/openwrt-on-dir … static/src.

5

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Z nim tez eksperymentuję. Choć skrypt w lua mogę bardziej na bieżąco poprawiać, ale pewnie docelowo na uqmi będzie to zrobione, chociaż by w powodu wielkości.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

6

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Cezary napisał/a:

NDIS
- dla Gargoyle PL: w gui, zakładka Konfiguracja/Podstawowa wybrać "Urządzenie pracuje jako: Brama sieciowa", Połączony przez: DHCP (przewodowo), Interfejs WAN: wwan0
3. Wstawić parametry połączenia

 # touch /etc/config/modem
 # uci set modem.global.enabled=1
 # uci set modem.global.apn=internet
 # uci set modem.global.username=internet
 # uci set modem.global.username=internet
 # uci set modem.global.pincode=0000 (można pominąć jak nie ma pinu)
 # uci commit modem

4. Nawiązanie połączenia z internetem

 # qmi.sh

Jako że w nowej wersji Gargoyle zostało wbudowane wsparcie dla modemów 3-4G QMI, wrzuciłem obraz w airrouter i wykonałem ww zalecenia do zestawienia połączenia. Niestety po próbie wydania polecenia z konsoli ssh dostaje

 qmi.sh
-ash: qmi.sh: not found 

-co robię nie tak? Lub czego brakuje w systemie?Modem to E398 karta sim BDI.

7

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Działa idealnie, dziękuję.
Wrzuciłem poprostu ndis.sh w monitor połączenia, generalnie po ilu sek ustawić od startu? Jak "czas od startu" ma się do uruchomienia rc.local?

8

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Rzeczywiście działa-nie po instalowałem wszystkich zależności

 0. Instalacja skryptu
 # cd /
 # wget http://ecco.selfip.net/projekty/qmi.tgz
 # tar zxvf qmi.tgz
 # rm qmi.tgz
Skrypt wymaga dodatkowo zainstalowania pakietu lua
 # opkg install lua
NDIS
- dla Gargoyle PL: w gui, zakładka Konfiguracja/Podstawowa wybrać "Urządzenie pracuje jako: Brama sieciowa", Połączony przez: DHCP (przewodowo), Interfejs WAN: wwan0
3. Wstawić parametry połączenia
 # touch /etc/config/modem
 # uci set modem.global.enabled=1
 # uci set modem.global.apn=internet
 # uci set modem.global.username=internet
 # uci set modem.global.username=internet
 # uci set modem.global.pincode=0000 (można pominąć jak nie ma pinu)
 # uci commit modem
4. Nawiązanie połączenia z internetem
 # qmi.sh 

  Super smile , robię beta testy jak się zachowa przy wznowieniu połączenia (jak będzie wszystko ok, to wrócę z open+luci na gargoyle-ze względu na statystyki i spójne gui).

9

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Nie wbudowałem jeszcze w gargoyle (sterownik tak, skrypty nie). Bawię sie z tym jeszcze, więc na razie trzeba ręcznie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

10

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Eneen napisał/a:

generalnie po ilu sek ustawić od startu? Jak "czas od startu" ma się do uruchomienia rc.local?

Ja ustawiłem etc/rc.local

 sleep 30
qmi.sh 

i po wymuszonym reboot wznowiło połączenie. smile

11 (edytowany przez jarek7714 2013-06-13 20:29:45)

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Po 5 dniach testów wznawiania połączenia QMI-NDIS E398 z kartą Aero2 (wyśmienicie się do tego nadaje bo jest auto-reset połączenia od strony operatora) z wynikiem bezbłędnym zrobiłem update sprzętu, firmware do połączenia iPlus-E367 (router wr-703n dzięki wsparciu technicznemu @pepe2k zwiększył pojemność flesh x4 i RAM x2). Co ciekawe odłączając DIR-825 miałem taki status połączenia :

wwan0    Typ: dhcp
Adres: 87.251...
Maska sieci: 255.255.255.252
Brama: 87.251...
DNS 1: 212.2.96.52
DNS 2: 212.2.96.51
Połączony: 27d 11h 7m 8s 

mimo chwilowej przerwy w sterowaniu (zasilanie dostawał z HUB-a USB), nawiązał połączenie pod tym samym adresem IP:

 Gargoyle
Wersja Gargoyle:1.5.10.2 (r36817), by obsy
Model:TP-LINK TL-WR703N v1
Konfiguracja urządzenia:Brama sieciowa
Zajętość pamięci RAM:15.4MB / 60.1MB (25.7%)
Połączenia:39/4096
Średnie obciążenie CPU:0.00 / 0.01 / 0.05  (1/5/15 min.)
Czas pracy:0 dni 1 godz. 10 min.
Bieżąca data i czas:2013-06-13 21:20 CEST
Adres IP LAN:192.168.2.1
Maska podsieci LAN:255.255.255.0
Adres MAC LAN:
Adres IP WAN:87.251...
Maska podsieci WAN:255.255.255.252
Adres MAC WAN:02:50:F3:00:00:00
Adres bramy WAN:87.251...

. Samo połączenie zostało zestawione szybko i automatycznie. smile @Cezary uznanie za przygotowane firmware. Dzięki! smile

12 (edytowany przez krowka 2013-06-16 16:39:16)

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Coś jest nie tak w przekazywaniu kodu PIN podczas łączenia poprzez qmi.sh. Gdy pin był wcześniej "wbity", np: at+cpin=XXXX, to połączenie ładnie wstaje.
Modem Huawei E398.

Przy podanym wcześniej pinie:

wwan0: ===Starting QMI script===
wwan0: Will use /dev/cdc-wdm0 as management port
wwan0: Qmi Revision: M9200B-SCAQDBZD-3.0.350045T  1  [Oct 19 2011 04:00:00]
wwan0: Script Command : start
wwan0: Attempt to Start Network
wwan0:   Checking Pin Status
wwan0:      PIN1 status is : enabled, verified
wwan0:      PIN1 # verify left: 3
wwan0:      PIN1 # unblock left: 10
wwan0:   Attempting to Connect ....
wwan0:   Connected to Network
wwan0:   Connection Status is : connected
wwan0: Cleaning Up Script
wwan0: ===End of QMI Script===

W przeciwnym przypadku:

wwan0: ===Starting QMI script===
wwan0: Will use /dev/cdc-wdm0 as management port
wwan0: Qmi Revision: M9200B-SCAQDBZD-3.0.350045T  1  [Oct 19 2011 04:00:00]
wwan0: Script Command : start
wwan0: Attempt to Start Network
wwan0:   Checking Pin Status
wwan0:      PIN1 status is : enabled, not verified
wwan0:      PIN1 # verify left: 3
wwan0:      PIN1 # unblock left: 10
wwan0:      PIN1 verification failed
wwan0:   ***Cannot Connect without PIN verification
wwan0: Cleaning Up Script
wwan0: ===End of QMI Script===

Plik konfiguracyjny /etc/config/modem wygląda następująco:

config modem global
        option enabled 1
        option apn internet
        option username ''
        option password ''
        option pincode XXXX

Wygląda to tak, jakby PIN z pliku konfiguracyjnego nie był wykorzystywany.

13

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Dodaj sobie w /etc/qmihelp w linii 509

printf("pin to: %s\n", pincode)

I zobacz czy jest taki jak w konfigu przekazywany.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

14

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

printf wyświetla taki sam PIN jak w konfigu.

15

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Więc problem jest gdzieś na poziomie samego sterownika qmi.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

16

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Cezary, czy jest możliwość monitorowania połączenia modemu, ale nie za pomocą pinga tylko komunikując się bezpośrednio z modemem? Można by znacząco przyspieszyć wznawianie połączenia...

17

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Ale co to da? Bo często spotykam się z sytuacją że modem wykazuje połączenie, adresy ma, ledy palą się jak trzeba za fizycznej transmisji jest zero. Więc odpytanie samego modemu o stan połączenia może nie spełnić założeń.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

18

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

A czy modem przypadkiem nie dostaje jakiegoś zdarzenia typu "disconnected", jeżeli to sieć wymusza rozłączenie (Aero2)? Jeżeli tak, to dla Aero2 byłoby to rewelacyjne rozwiązanie - sieć rozłącza a router natychmiast łączy.

Wally

19

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Tak dostaje. Ale nie pisałem o takim przypadku.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

20

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Można dać wybór: pingowanie, reakcja na zdarzenie lub jedno i drugie.

Wally

21 (edytowany przez Eneen 2013-07-03 22:55:07)

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Albo kolejno...

22

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Mam Attitude Adjustment od Cezarego, zrobiłem opkg update ale nie mam pakietu gcom. Skąd go bierzecie?

23

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

comgt on się nazywa.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

24

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Dzięki. Cezary popraw w pierwszym poście i wywal te posty na końcu co by nie zamulać tematu smile

25

Odp: Nowe wersje skryptów HSO, NDIS i QMI dla modemów 3G/LTE

Nie rozumiesz. Pakiet nazywa się comgt, ale binarka też jest gcom smile

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.