GSM Modemy USB
Z openSUSE wiki
Sposób konfiguracji Modemów GSM na złączu USB, np. Huawei, ZTE, na przykładzie openSUSE 11.2, Gnome, Network Manager i Era Blueconnect
Spis treści |
Wymagania do działania:
- openSUSE 11.2
- Jądro systemu !!! Linux sea-star 2.6.31.5-0.1-desktop #1 SMP PREEMPT 2009-10-26 15:49:03 +0100 i686 i686 i386 GNU/Linux
- modem oparty o USB, np. Huawei E160G, karta SIM, znajomość kodu PIN
- wolne złącze USB w komputerze
- NetworkManager
Kilka słów ogólnego wyjaśnienia. Generalnie większość tych modemów jest obsługiwana przez jądro linuksa bez większych problemów. Nie musimy nic robić w tym celu, domyślnie zainstalowany openSUSE 11.2 radzi sobie wspaniale. Jedyne, co konieczne, to odpowiednie skonfigurowanie połączenia GSM w NetworkManager.
Test pod Windows
Nie będę się tu rozpisywał, tylko pokażę, że pod Windows działa i z jaką prędkością.
-
Jak skonfigurować połączenie w Network Manager ?
Najpierw w odpowiedniej sekcji Network Managera (Komórkowe) dodajemy połączenie GSM i wpisujemy tam nr do wydzwonienia przez modem oraz PIN. Uwaga! Nr do wydzwonienia dla Ery: *99***1#
Efektem będzie zdefiniowane połączenie.
Włączamy urządzenie do USB, co się dzieje?
System wykrywa je automatycznie, a NetworkManager samodzielnie zaczyna je obsługiwać. W logach Netork Manager'a możemy przeczytać (choć nie musimy ...)
Feb 6 18:05:54 sea-star NetworkManager: <info> Found new GSM modem device 'ttyUSB0' (driver: 'option1'). Feb 6 18:05:54 sea-star NetworkManager: <info> (ttyUSB0): exported as /org/freedesktop/ModemManager/Modems/0 Feb 6 18:05:58 sea-star NetworkManager: <info> (ttyUSB0): device state change: 1 -> 2 (reason 2) Feb 6 18:05:58 sea-star NetworkManager: <info> (ttyUSB0): deactivating device (reason: 2). Feb 6 18:05:58 sea-star NetworkManager: nm_system_device_flush_ip4_routes_with_iface: assertion `iface_idx >= 0' failed Feb 6 18:05:58 sea-star NetworkManager: nm_system_device_flush_ip4_addresses_with_iface: assertion `iface_idx >= 0' failed Feb 6 18:05:58 sea-star NetworkManager: <info> (ttyUSB0): device state change: 2 -> 3 (reason 0) Feb 6 18:05:58 sea-star NetworkManager: <info> Activation (ttyUSB0) starting connection 'BlueConnect' Feb 6 18:05:58 sea-star NetworkManager: <info> (ttyUSB0): device state change: 3 -> 4 (reason 0) Feb 6 18:05:58 sea-star NetworkManager: <info> Activation (ttyUSB0) Stage 1 of 5 (Device Prepare) scheduled... Feb 6 18:05:58 sea-star NetworkManager: <info> Activation (ttyUSB0) Stage 1 of 5 (Device Prepare) started... Feb 6 18:05:58 sea-star NetworkManager: <info> Activation (ttyUSB0) Stage 1 of 5 (Device Prepare) complete. Feb 6 18:05:58 sea-star NetworkManager: <info> (ttyUSB0): device state change: 4 -> 6 (reason 0) Feb 6 18:05:58 sea-star NetworkManager: <info> Activation (ttyUSB0) Stage 1 of 5 (Device Prepare) scheduled... Feb 6 18:05:58 sea-star NetworkManager: <info> Activation (ttyUSB0) Stage 1 of 5 (Device Prepare) started... Feb 6 18:05:58 sea-star NetworkManager: <info> (ttyUSB0): device state change: 6 -> 4 (reason 0) Feb 6 18:05:58 sea-star NetworkManager: <info> Activation (ttyUSB0) Stage 1 of 5 (Device Prepare) complete. Feb 6 18:06:07 sea-star NetworkManager: <info> Activation (ttyUSB0) Stage 2 of 5 (Device Configure) scheduled... Feb 6 18:06:07 sea-star NetworkManager: <info> Activation (ttyUSB0) Stage 2 of 5 (Device Configure) starting... Feb 6 18:06:07 sea-star NetworkManager: <info> (ttyUSB0): device state change: 4 -> 5 (reason 0) Feb 6 18:06:07 sea-star NetworkManager: <info> Starting pppd connection Feb 6 18:06:07 sea-star NetworkManager: <debug> [1265475967.205820] nm_ppp_manager_start(): Command line: /usr/sbin/pppd nodetach lock nodefaultroute ttyUSB0 noipdefault noauth usepeerdns lcp-echo-failure 0 lcp-echo-interval 0 ipparam /org/freedesktop/NetworkManager/PPP/0 plugin /usr/lib/pppd/2.4.4/nm-pppd-plugin.so Feb 6 18:06:07 sea-star NetworkManager: <debug> [1265475967.229596] nm_ppp_manager_start(): ppp started with pid 5087 Feb 6 18:06:07 sea-star NetworkManager: <info> Activation (ttyUSB0) Stage 2 of 5 (Device Configure) complete. Feb 6 18:06:07 sea-star NetworkManager: <info> (ttyUSB0): device state change: 5 -> 6 (reason 0) Feb 6 18:06:07 sea-star NetworkManager: <info> (ttyUSB0): device state change: 6 -> 7 (reason 0) Feb 6 18:06:14 sea-star NetworkManager: <info> PPP manager(IP Config Get) reply received. Feb 6 18:06:14 sea-star NetworkManager: <info> Activation (ttyUSB0) Stage 4 of 5 (IP Configure Get) scheduled... Feb 6 18:06:14 sea-star NetworkManager: <info> Activation (ttyUSB0) Stage 4 of 5 (IP Configure Get) started... Feb 6 18:06:14 sea-star NetworkManager: <info> Activation (ttyUSB0) Stage 5 of 5 (IP Configure Commit) scheduled... Feb 6 18:06:14 sea-star NetworkManager: <info> Activation (ttyUSB0) Stage 4 of 5 (IP Configure Get) complete. Feb 6 18:06:14 sea-star NetworkManager: <info> Activation (ttyUSB0) Stage 5 of 5 (IP Configure Commit) started... Feb 6 18:06:15 sea-star NetworkManager: <info> (ttyUSB0): device state change: 7 -> 8 (reason 0) Feb 6 18:06:15 sea-star NetworkManager: <debug> [1265475975.214276] run_netconfig(): Spawning '/sbin/netconfig modify --service NetworkManager' Feb 6 18:06:15 sea-star NetworkManager: <debug> [1265475975.224476] write_to_netconfig(): Writing to netconfig: DNSSERVERS='213.158.199.1 213.158.199.5'#012 Feb 6 18:06:15 sea-star NetworkManager: <info> Clearing nscd hosts cache. Feb 6 18:06:15 sea-star NetworkManager: <info> Policy set 'BlueConnect' (ppp0) as default for routing and DNS. Feb 6 18:06:15 sea-star NetworkManager: <info> Activation (ttyUSB0) successful, device activated. Feb 6 18:06:15 sea-star NetworkManager: <info> Activation (ttyUSB0) Stage 5 of 5 (IP Configure Commit) complete.
System samodzielnie zestawił połączenie, a w NetorkManager możemy zobaczyć:
W tym momencie mamy internet.
Jak szybko działa pod Linuksem?
Dużo szybciej niż pod Windows...
Połączenie jest, a Internet nie działa
Czyli mimo, że wszystko jest poprawnie, to strony WWW jakoś nie działają.... Zdarza się czasami, że modem mimo poprawnego połączenia nie otrzyma od operatora serwerów DNS, które są odpowiedzialne za tłumaczenie nazw na IP. Rozwiązanie jak na razie znam tylko jedyne:
W pliku /etc/sysconfig/network/config należy znaleźć odpowiednią linijkę i wpisać na sztywno serwery openDNS.
NETCONFIG_DNS_STATIC_SERVERS="208.67.220.220 208.67.222.222"
To spowoduje, że jeśli operator nie odda odpowiednich serwerów DNS, to system będzie używał openDNS. Może będzie troszkę wolniej, ale będzie działać.
Ciekawe dyskusje na Forum
Jeśli chcecie poczytać, co doprowadziło do powstania tej strony, to proszę.... Forum 1 Forum 2
Adam



