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