- helsic.de – privat | nichtkommerziell - http://www.helsic.de -

USB 3G/UMTS Huawei E173u-1 unter OpenWrt

Beim Aufräumen fielen mir neulich drei Hardwareteile in die Hände:
 

Es war anscheinend der Zeitpunkt gekommmen, diese drei Hardwareteile zu vereinigen und so einen mobilen Internetzugangspunkt für mehrere Clients zu schaffen.

Der Router war schon auf OpenWrt Backfire 10.03, so daß dieses Projekt schnell umzusetzen sein sollte. Die Anleitung von OpenWrt [1] ist sehr detailliert.
Einziges Problem ist dabei der Huawei-Stick, denn der E173u-1 meldet sich bei “lsusb” als:

"ID 12d1:1446 Huawei Technologies Co., Ltd."

und stellt sein UMTS-Modem so nicht zur Verfügung. Das Paket usb-modeswitch bietet Abhilfe; folgende “/etc/usb-modeswitch.conf” funktioniert bei mir:

# File /etc/usb-modeswitch.conf
# Huawei E173u-1
DefaultVendor= 0x12d1
DefaultProduct= 0x1446
TargetVendor= 0x12d1
TargetProductList= "1408,140c,1432,1506"
CheckSuccess=20
MessageContent="55534243000000000000000000000011060000000100000000000000000000"
# EOF /etc/usb-modeswitch.conf

Anschließend meldet der E173u-1 sich als

"ID 12d1:140c Huawei Technologies Co., Ltd."

und es kann auf das Modem unter “/dev/ttyUSB0” zugegriffen werden:

root@OpenWrt:~# gcom -d /dev/ttyUSB0 info
##### Wireless WAN Modem Configuration #####
Product text:
====

Manufacturer: huawei
Model: E173
Revision: 11.126.16.00.00
IMEI: 860000000000000
+GCAP: +CGSM,+DS,+ES
OK
====
Manufacturer: huawei
IMEI and Serial Number: 860000000000000
Manufacturer's Revision:
11.126.16.00.
Hardware Revision: NOT
Network Locked: 0
Customisation: NOT SUPPORT
Band settings: (NOT)
APN: 1,"IP","internet.eplus.de","0.0.0.0",0,0
##### END #####
root@OpenWrt:~#

Nun müssen nur noch die Netzwerkonfiguration “/etc/config/network” ergänzt und das Chatscript “/etc/chatscripts/3g.chat” angepaßt werden. Hier ist eine Konfiguration für Simyo (eplus):

# File /etc/config/network
(...)
config 'interface' 'wan'
option 'ifname' 'ppp0'
option 'proto' '3g'
option 'service' 'umts'
option 'apn' 'internet.eplus.de'
option 'username' 'simyo'
option 'password' 'simyo'
option 'defaultroute' '1'
option 'device' '/dev/ttyUSB0'
(...)
# EOF /etc/config/network

# File /etc/chatscripts/3g.chat
ABORT BUSY
ABORT 'NO CARRIER'
ABORT ERROR
REPORT CONNECT
TIMEOUT 10
"" "ATZ"
OK "AT+CSQ"
OK 'AT+CGDCONT=1,"IP","$USE_APN"'
SAY "Calling UMTS/GPRS"
TIMEOUT 30
OK "ATD*99#"
CONNECT ' '
# EOF /etc/chatscripts/3g.chat

Die PIN bei der SIM-Card habe ich nicht gesetzt; sollte eine PIN gesetzt sein ist dies zwingend zu berücksichtigen! -> Anleitung von OpenWrt [1]

Einem Test steht nun nichts mehr im Wege. Nach beherzter Eingabe von

root@OpenWrt:~# usb_modeswitch
root@OpenWrt:~# ifup wan

sollte eine UMTS-Einwahl erfolgen. Mit “logread” können die Statusmeldungen nachgelesen werden:

OpenWrt user.info sysinit: SIM ready
OpenWrt user.info sysinit: PIN set successfully
OpenWrt daemon.notice pppd[1238]: pppd 2.4.4 started by root, uid 0
OpenWrt local2.info chat[1252]: abort on (BUSY)
OpenWrt local2.info chat[1252]: abort on (NO CARRIER)
OpenWrt local2.info chat[1252]: abort on (ERROR)
OpenWrt local2.info chat[1252]: report (CONNECT)
OpenWrt local2.info chat[1252]: timeout set to 10 seconds
OpenWrt local2.info chat[1252]: send (ATZ^M)
OpenWrt local2.info chat[1252]: expect (OK)
OpenWrt local2.info chat[1252]: ATZ^M^M
OpenWrt local2.info chat[1252]: OK
OpenWrt local2.info chat[1252]: -- got it
OpenWrt local2.info chat[1252]: send (AT+CSQ^M)
OpenWrt local2.info chat[1252]: expect (OK)
OpenWrt local2.info chat[1252]: ^M
OpenWrt local2.info chat[1252]: AT+CSQ^M^M
OpenWrt local2.info chat[1252]: +CSQ: 5,99^M
OpenWrt local2.info chat[1252]: ^M
OpenWrt local2.info chat[1252]: OK
OpenWrt local2.info chat[1252]: -- got it
OpenWrt local2.info chat[1252]: send (AT+CGDCONT=1,"IP","internet.eplus.de"^M)
OpenWrt local2.info chat[1252]: timeout set to 30 seconds
OpenWrt local2.info chat[1252]: expect (OK)
OpenWrt local2.info chat[1252]: ^M
OpenWrt local2.info chat[1252]: AT+CGDCONT=1,"IP","internet.eplus.de"^M^M
OpenWrt local2.info chat[1252]: OK
OpenWrt local2.info chat[1252]: -- got it
OpenWrt local2.info chat[1252]: send (ATD*99#^M)
OpenWrt local2.info chat[1252]: expect (CONNECT)
OpenWrt local2.info chat[1252]: ^M
OpenWrt local2.info chat[1252]: ATD*99#^M^M
OpenWrt local2.info chat[1252]: CONNECT
OpenWrt local2.info chat[1252]: -- got it
OpenWrt local2.info chat[1252]: send ( ^M)
OpenWrt daemon.info pppd[1238]: Serial connection established.
OpenWrt daemon.info pppd[1238]: Using interface ppp0
OpenWrt daemon.notice pppd[1238]: Connect: ppp0 <--> /dev/ttyUSB0
OpenWrt daemon.info pppd[1238]: CHAP authentication succeeded
OpenWrt daemon.notice pppd[1238]: CHAP authentication succeeded
OpenWrt daemon.warn pppd[1238]: Could not determine remote IP address: defaulting to 10.64.64.64
OpenWrt daemon.info dnsmasq[1160]: reading /tmp/resolv.conf.auto
OpenWrt daemon.info dnsmasq[1160]: using nameserver 212.23.97.2#53
OpenWrt daemon.info dnsmasq[1160]: using nameserver 212.23.115.148#53
OpenWrt daemon.info dnsmasq[1160]: using local addresses only for domain lan
OpenWrt daemon.notice pppd[1238]: replacing old default route to br-lan [192.168.178.1]
OpenWrt daemon.notice pppd[1238]: local IP address 10.212.168.2 6
OpenWrt daemon.notice pppd[1238]: remote IP address 10.64.64.64
OpenWrt daemon.notice pppd[1238]: primary DNS address 212.23.115.148
OpenWrt daemon.notice pppd[1238]: secondary DNS address 212.23.97.2
OpenWrt user.notice root: adding wan (ppp0) to firewall zone wan

Um eine automatische Einwahl nach dem Start des Routers zu haben, sind folgende Zeilen in die Datei “/etc/rc.local” einzutragen:

usb_modeswitch
ifup_wan

Hinweise: