Huawei E220 UMTS/GPRS Modem mit Linux (Ubuntu)



Ende April 2007 habe ich die Situation nicht mehr ausgehalten, immer irgendwo hin fahren zu müssen, um Internet Zugang zu haben,
deshalb habe ich mir einen A1 Breitband Zugang mit 1,5GB Datenguthaben um EUR 25.- monatlich besorgt.
(Mittlerweile habe ich ein Update gemacht und dafür bezahlt, jetzt nur mehr weniger bezahlen zu müssen :) - 22€ für 3GB - .... und ja, ich weiss, das ist inzwischen auch wieder zuviel ;) - es gibt Anbieter wie Sand am Meer)
Unter Windows funktioniert das Teil anstandslos - wie in der Werbung - unter Linux muss man etwas basteln,
zumindest, wenn man einen Kernel älter als Version 2.6.20 hat :(
Wie man es (von mir in Ubuntu gestestet) zustande bekommt, hoffe ich mit dieser Anleitung ein wenig erklären zu können.

Ohne fremde Hilfe hätte ich es selbst nicht geschafft, deshalb zitiere ich hier meine Quellen. Zu Beginn war das Albrecht Gebhards Seite, zu finden hier: Diskutiert wird über dieses Thema natürlich auch im ubuntuusers.de-Forum, und zwar hier: Grundsätzlich ist diese Seite vermutlich für Benutzer von Ubuntu 6.06 (Dapper Drake) oder 6.10 (Edgy Eft) interessant.
Nutzer von Ubuntu 7.04, 7.10, 8.04 oder neueren Versionen werden wahrscheinlich gnome-ppp aus den Ubuntu Quellen,
oder aber auch den inzwischen ausgereiften umtsmon bevorzugen.

Nachtrag 27.07.07: Nachdem es jetzt schon einige Literatur zu diesem Thema gibt, versuche ich, diese Anleitung ein wenig aufzusplitten.
Es gibt inzwischen verschiedene Möglichkeiten, das Modem zu verwenden.
Zwei Skriptversionen, gnome-ppp, umtsmon , .... Jeder verwende, was ihm besser gefällt. ;)

Nachtrag 23.10.08: Seit Ubuntu 8.10 - Intrepid Ibex - wird der Network-Manager 0.7 verwendet, der von sich aus mit den meisten USB-Modems zurechtkommt. Dadurch spart man sich die Skripte komplett. Lange hats gedauert, ich hoffe trotzdem, dass die Anleitung für Manche noch hilfreich ist. Wer jetzt nur mehr die Zugangsdaten braucht, die findet man hier.

Nachtrag 01.11.09: Seit dem Upgrade auf Ubuntu 9.10 - Karmic Koala - gibt es Probleme mit den E220er Modems. Die Kernel 2.6.31-11 bis -14 verzeihen ein Problem in der Firmware unserer Modems nicht. Das ist recht fatal, weil dadurch oft DIE einzige Internetverbindung kommentarlos gekappt wird.
Ein Firmwareupdate unter Win hilft hier im Moment aus, dieses bekommt man über die Betreiberseiten z.B. software.a1.net.

Wer damit nichtweiterkommt, der kann versuchen, sein Modem direkt beim Starten des Rechners angeschlossen zu haben, das hilft manchmal.
Die letzte Variante ist, in der Konsole (nach Anschliessen des Modems) zuerst sudo rmmod usb-storage auszuführen, um den "Datenträger"
auszuhängen und danach sudo modprobe usbserial vendor=0x12d1 product=0x1003 um das Modem anzumelden.
vendor und produkt-ID passe bitte wie weiter unten beschrieben an.
Bei mir reichte es manchmal einfach usbserial ohne IDs zu laden, also sudo modprobe usbserial. Danach kann man (wenn man die proposed-Quellen aktiviert hat) den neuen (gepatchten) Kernel einspielen. Viel Erfolg!


  Aus aktuellem Anlass: Verlinkungen auf anderen Seiten auf diese Anleitung sind ausdrücklich erwünscht, auch spricht nichts gegen die Verwendung der von mir (und Anderen) gesammelten Daten. Weniger gefällt mir aber das direkte Kopieren meiner kompletten Anleitung ohne Hinweis auf den Autor. Ich bitte dies zu berücksichtigen. Über ein kurzes Mail diesbezüglich freue ich mich immer!

Nun zum Thema:

Das Modem selbst hat zwei "Modi". Wenn man es das Erste Mal anschliesst, dann meldet es sich als CDROM Laufwerk im System an, auf welchem die Windows-Treiber enthalten sind.
Diesen Modus muss man bei Kernelversionen ≤ 2.6.20 unterbinden, da er völlig nutzlos ist, der Kernel das aber noch nichts selbst macht.
Dieses Unterbinden hat allerdings keinerlei Auswirkungen auf das Gerät selbst, wenn man es an einen Windows-PC anschliesst, wird es funktionieren wie gehabt.
Wir aber brauchen das Gerät als UMTS/GPRS Modem, das ist der zweite Modus, den wir auch weiter verfolgen werden.

Wer nun noch einen Kernel in Version 2.6.19 oder früher hat, der möge bitte den nächsten Schritt mitmachen,
alle Anderen springen ohne Umwege zur Verbindungskonfiguration.
(Wie finde ich meine Kernelversion heraus? - Konsole öffnen, uname -a eingeben, ablesen, fertig.)


Vorbereitung: lsusb gibt uns als USB Vendor/Device ID (beim E220) 12d1:1003 aus, was wir uns merken sollten :)
(Die vendorID und die productID wechseln bei verschiedenen Modellen und/oder Revisionsnummern. Hier gibt es eine Liste.)

Um unser Modem in den richtigen Modus zu bringen, gibt es ein Programm von Miroslav Bobovsky,
welches man auf seiner Seite (oder von hier: huaweiAktBbo.c) downloaden kann.
Um es zu kompilieren muss libusb-dev auf dem System installiert sein.

Kompiliere das Programm nun mit: cc huaweiAktBbo.c -lusb -o huaweiAktBbo, kopiere es danach nach /sbin/huaweiAktBbo und rufe es mit root-Rechten auf.

Wenn sich unser Gerät dann im Modem-Status befindet, sollten drei serielle USB-Geräte aktiv sein:
/dev/ttyUSB0, /dev/ttyUSB1, /dev/ttyUSB2  (tail -f /var/log/messages gibt uns Auskunft darüber, ob alle USB-Geräte da sind ;))

Um das Modem nun nutzen zu können, müssen wir noch das usbserial-Modul laden, dabei übergeben wir die vendor-ID (vendor=0x12d1) und die product-ID (product=0x1003).

modprobe usbserial vendor=0x12d1 product=0x1003

Um diesen Vorgang zu vereinfachen, können wir das Modul via udev auch automatisch laden. Und zwar so:

Erstelle ein udev Script namens /etc/udev/rules.d/50-huawei-e220.rules mit folgendem Inhalt:

SUBSYSTEM=="usb", SYSFS{idProduct}=="1003", SYSFS{idVendor}=="12d1", RUN+="/sbin/huaweiAktBbo"
SUBSYSTEM=="usb", SYSFS{idProduct}=="1003", SYSFS{idVendor}=="12d1", RUN+="/bin/sleep 5"
SUBSYSTEM=="usb", SYSFS{idProduct}=="1003", SYSFS{idVendor}=="12d1", RUN+="/sbin/modprobe usbserial vendor=0x12d1 product=0x1003"
		

Wichtig! Mit diesem udev Script sparen wir uns den Eintrag in /etc/modprobe.d/... oder /etc/modules!
Sobald man das Modem mit einem USB-Anschluss verbindet, wird das Modul geladen und das Gerät eingebunden.
Es ist (bei mir) nach rund 10 Sekunden betriebsbereit.

WICHTIG: wenn man nicht allzuviel Wert auf Sicherheit legt, dann kann man die PIN-Abfrage für die SIMKarte ausschalten,
um verschiedene Vorgänge unter Linux zu erleichtern. Das funktioniert entweder über die mitgelieferte Software, direkt über ein Handy oder inzwischen auch über umtsmon.
(Vor allem für gnome-PPP wichtig, da man dort keinen PIN eingeben kann und somit immer ein Skript für den ersten Aufbau braucht.)


Produkt IDs (vendorID und die productID)

Ich liste im folgenden einfach einmal ein paar IDs von Geräten auf, die ich selbst besitze oder besessen habe.

Huawei E160 vendor=0x12d1 product=0x1003
Huawei E169 vendor=0x12d1 product=0x1001
Huawei E172 vendor=0x12d1 product=0x1003
Huawei E220 vendor=0x12d1 product=0x1003
Huawei E270 vendor=0x12d1 product=0x1003
Huawei E510 vendor=0x12d1 product=0x1003

ZTE MF628     vendor=0x19d2 product=0x0015
Das ZTE Modem gibt es seit neuestem in Österreich beim Hofer zu den Yesss!-Karten. Es wird (auch unter Ubuntu 8.10)
nicht automatisch erkannt, um es zu aktivieren m/uuml;ssen wir die IDs übergeben und danach das erkannte CD-ROM Laufwerk aushängen. Also, Modem anschliessen, sudo modprobe usbserial vendor=0x19d2 product=0x0015 in eine Konsole tippen und los geht's.


PPP Verbindungskonfiguration

Es gibt inzwischen, wie gesagt, zwei Skriptversionen, die alten Skripte von Albrecht Gebhard findet man hier.
Die neue Version ist von airwin, kommt mit zwei Einträgen aus, und ist wesentlich einfacher aufgebaut. Zu bevorzugen ist also diese Version!

Bevor wir hier loslegen, nur zur Information: ich habe versucht, die Dateien neutral zu benennen, jeder kann diese natürlich
nach Lust und Laune umbenennen, aber bitte nicht auf die Verweise innerhalb der Skripte vergessen!

Noch etwas Wichtiges, die Zugangsdaten findet man hier.
Diese sind dann, je nach Anbieter, anstelle der rot markierten Stellen einzufügen!

Ich füge hier gleich den Init-String mit ein, um Probleme zu vermeiden.
Mit APN ist die letzte Folge des Init-Strings gemeint, bei A1 zum Beispiel ist es: a1.net.
PIN ist der vierstellige PIN-Code Deiner SIM-Karte, für TEL muss die in den Daten genannte
Einwahlnummer angegeben werden, meistens ist das *99#!


Erstellen der chat-scripts


Beide Dateien müssen mit einem Editor mit root-Rechten erstellt werden!

1) /etc/ppp/peers/ppp:

hide-password
noauth
connect "/usr/sbin/chat -f /etc/chatscripts/ppp"
debug
/dev/ttyUSB0
460800
defaultroute
noipdefault
noccp
nobsdcomp
user "USER"
password "PASS"
usepeerdns
connect-delay 10000
		
2) /etc/chatscripts/ppp
	
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
# modeminit
'' 'ATZ'
TIMEOUT 5
OK AT+CPIN?
'READY-AT+CPIN=PIN-' ''
TIMEOUT 20
'OK' 'AT+cgdcont=1,"IP","APN"'
'OK' 'ATDTTEL'
CONNECT \d\c
# end of pppconfig stuff 
		

Fertig! Nun können wir testen, ob alles funktioniert!
Die Verbindung startet man nun entweder mit
pon ppp

oder um zu debuggen mit
pppd call ppp nodetach
Beendet wird die Verbindung am Besten aus dem Terminal mit poff ppp.


 

 

Zugangsdaten der verschiedenen Betreiber

Aufgrund der Menge der Zugangsdaten habe ich diese jetzt hier ausgelagert. -> ./Huawei_E220_Daten.html
Natürlich werde ich auch weiterhin Daten einfügen, die mir geschickt werden. Also, nur zu!!

 

Einrichtung diverser grafischer Benutzeroberflächen und anderer Erleichterungen

Auf der folgenden Seite findet man einige Anleitungen zu den wichtigsten Programmen. Ich pflege hier auch immer wieder Updates ein
wenn du also etwas herausfindest, was hier noch nicht aufscheint, bitte gib mir Bescheid!

Einrichten von gnome-ppp - LINK
Einrichten von umtsmon - LINK

Einrichten von ivman zum Autostart von gnome-ppp, umtsmon oder anderer Programme beim Anschließen der Hardware. - LINK

 


Bekannte Probleme:

1.) Gemeldet von singy, im altbekannten Thema auf ubuntuusers.de

Von mir noch nicht verifiziert, jedoch: Wenn man eine USB-HDD hat, dann muss man, damit das Modem reagiert, das Modul für USB Mass Storage entfernen rmmod usb-storage Wenn die Verbindung steht, kann es wieder geladen werden.
Nachtrag: Diese Problem wurde noch nicht verifiziert, bitte melden, wenn es auftritt, damit ich hier Hinweise geben kann.

2.) Das schon genannte Problem mit der nicht zugewiesenen IP.

Dabei bekommt man eine IP im Bereich 84.xx.xx.xx zugewiesen, als DNS-Server bekommt man 10.11.12.13 und 10.11.12.14
Die Verbindung steht zwar, es werden aber natürlich keine Daten gesendet und empfangen.
Vermutlich liegt das am timing, oder aber auch am Empfang, da ich beobachten konnte, dass es wesentlich häufiger auftritt,
wenn ich in der Provinz unterwegs bin. :)
Bis jetzt ist mir dazu noch keine Lösung bekannt, ich verbinde dann einfach ein paarmal neu.
(Einen Workaround gibts hierzu allerdings: man trägt einfach die offiziellen Nameserver von seinem Anbieter in die /etc/resolv.conf ein
und verbietet pppd diese zu ändern. Allerdings funktioniert das nur, wenn man ausschliesslich diese Verbindung nutzt!)



Updates:

08.06.2007:
Im Moment warte ich gespannt auf eine Antwort des Entwicklers von umtsmon!
Dieses Programm soll das Irgendwas-Connect-Teil mit SMS-Funktion, Transfervolumenanzeige, ... für Win ersetzen.
Den Screenshots nach schafft es das schon ganz gut, leider funktioniert es noch nicht mit dem E220,
ich habe dem Entwickler aber meine Hilfe angeboten. Vielleicht kann ich ihm ja Infos zukommen lassen, die er benötigt :)
(Oder jemand anders kanns, nur keine Hemmungen! :))

05.07.2007
Danke an Udo R., der mir geschrieben hat, dass die Anleitungen auch für das "Huawei E270" (mit HSUPA) funktionieren!

09.07.2007
Inzwischen habe ich Kontakt mit dem Entwickler von umtsmon (Klaas van Gend),
der auf der Webseite auch auch die korrekte Funktion von unserer E220 eingetragen hat. Ich versteh nur nicht, woher er seine Information hat
bei mir funktioniert das Programm nämlich noch nicht :(

14.07.2007
oozie hat ein cooles Programm geschrieben, welches die Verbindungsdaten des E220 ausliest.
Auf seiner Seite gibt es auch genauere Informationen über das Modem und die Einrichtung bei Kernels < 2.6.19 [auf englisch]

12.08.2007
Danke an Thomas K. für die Information, dass auch die Expresscard "Huawei E800" mit den Scripten und der huaweiAktBbo funktioniert!

11.09.2007:
Vorgestern wurde eine neue Version des umtsmon herausgegeben, Version 0.6.9
Unter Ubuntu 7.04 habe ich es noch nicht zum Laufen bekommen, weil da die Hardwareerkennung nicht funktioniert,
unter Gutsy funktionierts schon einwandfrei.

14.09.2007:
Bitte testen!! Aus welchen Gründen auch immer läuft umtsmon jetzt auch unter Feisty
Über weiteres Feedback würde ich mich freuen, vorallem von Leuten, die eine E270 oder E800 einsetzen!

13.10.2007:
0.7 von umtsmon wurde released!
Ohne viel Kommentar, bei mir gibt es jetzt weder unter Feisty noch unter Gutsy Probleme damit. Ausprobieren!

19.10.2007:
Daniel B. hat mir dankenswerterweise die Config-Datei für KPPP zur Verfügung gestellt, welche man nun hier herunterladen kann!
Ich nutze selbst kein KDE, deswegen kann ichs nicht nachvollziehen, bitte um Feedback an untengenannte Adresse!
Die Daten in der Konfiguration sind für Eplus/Base und müssen logischerweise an die des eigenen Anbieters angepasst werden.

12.12.2007:
Da die Datentabelle nun schon recht umfangreich geworden ist, splitte ich dieses How-To jetzt in mehrere Seiten.
Ich hoffe, die Neustrukturierung bringt ein wenig mehr Übersicht, bitte um Anregungen!

18.01.2008:
Eigentlich gibt es die Software schon lange, gefunden wurde sie von uns aber erst im Dezember, und jetzt, mit dem Release 1.99.17
wird sie auch hier verlinkt: der vodafone-mobile-connect-card-driver-for-linux.
Tollerweise funktioniert das Ding nicht nur für Vodafone Kunden, sondern für viele, die ein UMTS-Modem benutzen.
Unter Anderem natürlich auch uns, die wir das E220 besitzen! :)

01.02.2008:
Thomas H. hat mir einen Link zukommen lassen, in dem beschrieben wird, wie man das E220 mit einem Asus Router
zum mobilen Verteilen überreden kann.Die Anleitung findet man hier: http://wl500g.info/showthread.php?p=78842

22.03.2008:
Wolfgang L. hat meine Skripte adaptiert und einen Workaround für SuSE10.3x64 geschrieben. Danke dafür!
http://www.pinguin-systeme.net/faq/linux_installation_configuration/mobile_internet

06.05.2008:
Im Oktober schon bekam ich von Daniel die Anleitung zum Einsatz von ivman, jetzt erst habe ich sie umgesetzt.
Hier werde ich mehr darüber schreiben, wie man das Ding einrichtet.

20.09.2008:
Johannes St. hat dankenswerterweise die Skripte durchgesehen und optimiert.
Diese sind jetzt aktualisiert und schneller! :)

23.10.2008:
Der Network-Manager 0.7 erkennt nun selbständig die meisten Modems. Dadurch ist diese Anleitung nur mehr für Nutzer älterer Systeme
interessant. Danke für die großartige Hilfe von allen Seiten!
Sollten noch Verbesserungen notwendig sein, bitte mir diese zu schicken, ich werde hier selbstverständlich weiter aktualisieren.

19.01.2009:
Vielen Dank an Ferdinand H. für die Zugangsdaten zu AON-Flex. Danke auch für die Bestätigung der Funktion eines Huawei E180
unter Ubuntu 8.10. (Intrepid Ibex)



Ich hoffe, damit kann ich jemandem helfen, für Fragen stehe ich natürlich gerne im ubuntuusers.de Forum zu Verfügung.
Gefundene Fehler, Verbesserungen, Vorschläge, bitte ich per Mail an die Adresse ubuntu [bei] frankenberger.at zu senden!
Verwendet wurden und werden die Skripte von mir auf einem "FSC Amilo Xi1526", einem "FSC Amilo Si1520", einem IBM T40
und auf einem "FSC Lifebook S6120D" mit Ubuntu 6.06, 6.10, 7.04, 7.10, 8.04, 8.10 & 9.04.

mbg, FraGezeichen, 2k9


 

 





... gelistet auf: http://tuxmobil.org/linux_on_laptops_with_umts_cards.html @ TuxMobil - Linux on Laptops, Notebooks, PDAs and Mobile Phones