Montag, 21. April 2008

3DataModem E220 und Linux

Einige werden bei der Bezeichnung E220 an einen Lebensmittelzusatzstoff denken (E220 ist Schwefeldioxid),
doch hier geht es um ein Modem und wie dieses Modem unter Fedora Core 8 zum Funktionieren gebracht werden kann.

Getestet wurde dieses Modem auf einer Fedora8 Maschine, alle zur Zeit (April 2008) aktuellen Updates waren eingespielt.

Bei der dabei verwendeten Kernelversion handelt es sich daher schon
um die Version 2.6.24.4-64.fc8.

(natives Fedora8 verwendet einen 2.6.23.1-42.fc8 Kernel, doch sollte das E220 auch auf dieser Kernelversion problemslos funktioniern!).

Was ich so Nachlesen konnte gibt es Probleme bei Kernel der Version 2.6.20 und älter, daher wird diese Anleitung nicht ohne weiteres auf ältere Fedoraversionen übernommen werden können.

Zur Sicherheit kann man die gebootete Kernelversion mit dem Kommando:
$ uname -r
ermitteln.

Folgende Softwarepakete sollten installiert sein:

Das Paket ppp. Mit dem Kommando:
$ rpm -q ppp
kann man dies überprüfen.
Auf der Testmaschine ist das Paket ppp-2.4.4-2 installiert.

Das Paket wvdial.
Mit dem Kommando:
$rpm -q wvdial
kann man dies überprüfen.
Auf meiner Fedora8 Maschine ist das Paket wvdial-1.60-3.fc8 installiert.

Beim Anstecken des E220 an einen USB-Port bemerkt man ein blinkendes, grünes Licht.

Es dauert fallweise sehr lange bis das E220 erkannt wird und in der Ausgabe des Kommandos lsusb folgendes erscheint:

# lsusb
Bus 001 Device 001: ID 0000:0000
Bus 002 Device 004: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem
Bus 002 Device 001: ID 0000:0000


Um nun das Modem in Betrieb zu nehmen sind folgende Schritte notwendig:

Zuerst die Datei /etc/wvdial.conf erstellen mit folgendem Inhalt:


#############
[Dialer defaults]
Modem = /dev/ttyUSB0

[Dialer drei]
Modem = /dev/ttyUSB0
Baud = 115200
Init2 = AT+CGDCONT=1,"IP","drei.at"
Phone = *99#
Password = *
Username = *
New PPPD = yes
Auto DNS = 1
Stupid Mode = 1

[Dialer pin]
Modem = /dev/ttyUSB0
Baud = 115200
Init1 = AT+CPIN=
xxxx
############


Achtung: Anstelle der vier roten x muss man seinen PinCode für die SIM-Karte einfügen.


Anschließend wird die Datei /etc/ppp/ip-up.local erstellt
mit folgendem Inhalt:



i
f [ -n "$USEPEERDNS" -a -f /etc/ppp/resolv.conf ]; then
rm -f /etc/ppp/resolv.prev
if [ -f /etc/resolv.conf ]; then
cp /etc/resolv.conf /etc/ppp/resolv.prev
grep domain /etc/ppp/resolv.prev > /etc/resolv.conf
grep search /etc/ppp/resolv.prev >> /etc/resolv.conf
#cat /var/run/ppp/resolv.conf >> /etc/resolv.conf
grep nameserver /etc/ppp/resolv.conf >> /etc/resolv.conf
else
cp /etc/ppp/resolv.conf /etc
fi
fi


(Diese Script muss nicht abgetippt werden -
ein Beispielscript finden Sie unter:
/usr/share/doc/ppp-2.4.4/scripts/ip-up.local.add.change_resolv_conf

Dieses Script muss dann nur leicht modifiziert werden.)



In die Datei /etc/modprobe.d/blacklist folgende Zeile einfügen:
blacklist option


Damit wird zukünftig das Modul option nicht mehr geladen.


Nun gibt man folgende Kommandos ein:

# rmmod usb_storage

# rmmod option

# rmmod usbserial


Das Modul usbserial wird neu geladen:

# modprobe usbserial vendor=0x12d1 product=0x100


Nach einer kleineren Wartepause sollten im Verzeichnis /dev nun
folgende drei Gerätedateien erscheinen:

/dev/ttyUSB0

/dev/ttyUSB1

/dev/ttyUSB2


Nun wird der [Dialer pin]-Abschnitt in der Datei /etc/wvdial.conf
abgearbeitet -
dies schaltet die SIM-Karte frei:
# wvdial pin

Nun sollte die Led am E220 violett blinken und eine Bildschirmausgabe wie folgt erscheinen:


[root@walter ~]# wvdial pin

--> WvDial: Internet dialer version 1.60

--> Cannot get information for serial port.

--> Initializing modem.

--> Sending: AT+CPIN=xxxx AT+CPIN=xxxx OK

--> Modem initialized.

--> Configuration does not specify a valid phone number.
--> Configuration does not specify a valid login name.
--> Configuration does not specify a valid password.



Nun wird die Modemverbindung zum Providernetz von drei hergestellt -
d.h. der
Abschnitt [Dialer drei] in der Datei
/etc/wvdial.conf wird abgearbeitet:

# wvdial drei


Eine Bildschirmausgabe ähnlich folgender sollte erscheinen:

[root@walter ~]# wvdial drei

--> WvDial: Internet dialer version 1.60

--> Cannot get information for serial port.

--> Initializing modem.

--> Sending: ATZ ATZ OK

--> Sending: AT+CGDCONT=1,"IP","drei.at"AT+CGDCONT=1,"IP","drei.at" OK

--> Modem initialized.

--> Sending: ATDT*99#

--> Waiting for carrier. ATDT*99# CONNECT

--> Carrier detected. Starting PPP immediately.

--> Starting pppd at Tue Apr 15 16:18:29 2008

--> Pid of pppd: 2985

--> Using interface ppp0

--> local IP address 77.116.161.112

--> remote IP address 10.64.64.64

--> primary DNS address 213.94.78.16


Nun können Sie mit den Kommandos ifconfig -a, route -n
und ping auf einer anderen Konsole überprüfen ob
alles geklappt hat.

127.0.0.1