Howto: UMTS mit o2 Surf Card unter Linux

Da mein Adminhandy kein HSDPA kann und mein Kollege kürzlich einfach so eine neue PCMCIA-UMTS Karte bestellt hat, stand ich neulich vor der Aufgabe, das Ding unter Linux zum Laufen zu bekommen – was sich als nicht ganz trivial herausstellte.
Zuerst habe ich die Karte einfach in den PCMCIA-Slot meines Laptop geknallt und siehe da: es tat sich sogar etwas! Ein neues Gerät wurde erkannt! Die LED der Karte blinkte freudig! Es wird doch wohl nicht etwa auf Anhieb klappen? Ein neues USB-Storage Device wurde gefunden! Ääääh? Neugierig habe ich die 1. Partition (FAT) gemountet und siehe da, sie ist völlig leer. Nach einiger Recherche bin ich dann zu folgenden Ergebnissen gekommen:
- die Karte wird erstmal als OHCI USB Mass Storage Device erkannt (ja, über PCMCIA, ja, das geht!), der Windows Treiber “switcht” dann um und sie ist plötzlich ein über USB angebundenes Serial Device
- Das Ding wird auch “GlobeTrotter GT MAX 3.6″ geschimpft
So, jetzt wollen wir das Ganze mal zum Laufen bringen.
Falls man die nötigen Module nicht im Kernel hat, geht man per “make menuconfig” in die Kernel Konfiguration. Dort wird dann folgendes aktiviert:
[code language="css"]
-> Device Drivers -> USB support (USB_SUPPORT [=y])
-> USB Serial Converter support (USB_SERIAL [=y])
->USB driver for GSM and CDMA modems (NEW)
[/code]
außerdem noch:
[code language="css"]
-> Device Drivers
-> USB support (USB_SUPPORT [=y])
-> Support for Host-side USB (USB [=y])
[/code]
Nun compiliert man den ggfs. den Kernel neu und rebootet. Dann die Karte hereinstecken und man sieht im dmesg:
[code language="css"]Apr 24 12:47:02 d400 ohci_hcd 0000:02:00.1: OHCI Host Controller
Apr 24 12:47:02 d400 ohci_hcd 0000:02:00.1: new USB bus registered, assigned bus number 6
Apr 24 12:47:02 d400 ohci_hcd 0000:02:00.1: irq 11, io mem 0x38001000
Apr 24 12:47:02 d400 usb usb6: configuration #1 chosen from 1 choice
Apr 24 12:47:02 d400 hub 6-0:1.0: USB hub found
Apr 24 12:47:02 d400 hub 6-0:1.0: 1 port detected
Apr 24 12:47:02 d400 usb usb6: New USB device found, idVendor=1d6b, idProduct=0001
Apr 24 12:47:02 d400 usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1
Apr 24 12:47:02 d400 usb usb6: Product: OHCI Host Controller
Apr 24 12:47:02 d400 usb usb6: Manufacturer: Linux 2.6.24-mm1 ohci_hcd
Apr 24 12:47:02 d400 usb usb6: SerialNumber: 0000:02:00.1
Apr 24 12:47:05 d400 usb 6-1: new full speed USB device using ohci_hcd and address 2
Apr 24 12:47:05 d400 usb 6-1: configuration #1 chosen from 1 choice
Apr 24 12:47:05 d400 usb 6-1: New USB device found, idVendor=05c6, idProduct=1000
Apr 24 12:47:05 d400 usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Apr 24 12:47:05 d400 usb 6-1: Product: USB MMC Storage
Apr 24 12:47:05 d400 usb 6-1: Manufacturer: Qualcomm, Incorporated
Apr 24 12:47:05 d400 usb 6-1: SerialNumber: 000000000002[/code]
Zum “Switchen” der Karte braucht man usb_modeswitch, nehmt die aktuelle Version 0.9.4beta2, die “stabile” Version 0.9.3 hat teils Probleme mit udev und funktioniert bei mir (udev-119, Kernel 2.6.25-r1) nicht! Das Entpacken funktioniert wie üblich, configure ist nicht nötig, zum Compilieren reicht in simples gcc -l usb -o usb_modeswitch usb_modeswitch.c oder man nimmt einfach gleich compile.sh, welches danach noch strip’pt. ![]()
Unter Gentoo gibt es hier ein fertiges ebuild, die Installation funktioniert wie folgend beschrieben:
[code language="css"]mkdir -p /root/OVERLAY/sys-apps/usb_modeswitch/files
wget http://bugs.gentoo.org/attachment.cgi?id=150886 -O \
/root/OVERLAY/sys-apps/usb_modeswitch/usb_modeswitch-0.9.4_beta2.ebuild
wget http://bugs.gentoo.org/attachment.cgi?id=150887 -O \
/root/OVERLAY/sys-apps/usb_modeswitch/files/91-usb_modeswitch.rules.udev-ge-106
wget http://bugs.gentoo.org/attachment.cgi?id=150889 -O \
/root/OVERLAY/sys-apps/usb_modeswitch/files/91-usb_modeswitch.rules.udev-lt-106
PORTAGE_OVERLAY="/root/OVERLAY"
cd /root/OVERLAY/sys-apps/usb_modeswitch
ebuild usb_modeswitch-0.9.4_beta2.ebuild digest merge[/code]
Hoffentlich ist das bald auch in der Portage, man hat ja immer alles gerne aus einem Guss!
Nach dem Ausführen von usb_modeswitch solltet ihr dann so etwas sehen:
[code language="css"]Apr 24 12:49:19 d400 usb 6-1: USB disconnect, address 2
Apr 24 12:49:21 d400 usb 6-1: new full speed USB device using ohci_hcd and address 3
Apr 24 12:49:21 d400 usb 6-1: configuration #1 chosen from 1 choice
Apr 24 12:49:21 d400 usb 6-1: New USB device found, idVendor=0af0, idProduct=6701
Apr 24 12:49:21 d400 usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=4
Apr 24 12:49:21 d400 usb 6-1: Product: Globetrotter HSDPA Modem
Apr 24 12:49:21 d400 usb 6-1: Manufacturer: Option N.V.
Apr 24 12:49:21 d400 usb 6-1: SerialNumber: Serial Number
Apr 24 12:49:21 d400 usbcore: registered new interface driver usbserial
Apr 24 12:49:21 d400 drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
Apr 24 12:49:21 d400 usbcore: registered new interface driver usbserial_generic
Apr 24 12:49:21 d400 drivers/usb/serial/usb-serial.c: USB Serial Driver core
Apr 24 12:49:21 d400 drivers/usb/serial/usb-serial.c: USB Serial support registered for GSM modem (1-port)
Apr 24 12:49:21 d400 option 6-1:1.0: GSM modem (1-port) converter detected
Apr 24 12:49:21 d400 usb 6-1: GSM modem (1-port) converter now attached to ttyUSB0
Apr 24 12:49:21 d400 option 6-1:1.1: GSM modem (1-port) converter detected
Apr 24 12:49:21 d400 usb 6-1: GSM modem (1-port) converter now attached to ttyUSB1
Apr 24 12:49:21 d400 option 6-1:1.2: GSM modem (1-port) converter detected
Apr 24 12:49:21 d400 usb 6-1: GSM modem (1-port) converter now attached to ttyUSB2
Apr 24 12:49:21 d400 usbcore: registered new interface driver option
Apr 24 12:49:21 d400 drivers/usb/serial/option.c: USB Driver for GSM modems: v0.7.1[/code]
Nun kann man die Karte über /dev/ttyUSB0 wie ein normales AT-Modem benutzen und seine ppp-chat-Scripte damit laufen lassen, ihr findet eins z.B. im Gentoo-Wiki. Man sollte diese ggfs. nach seinen eigenen Bedürfnissen erweitern/abändern. Ich benutze:
[code language="css"]# /etc/ppp/peers/umtscard
/dev/ttyUSB0
connect '/usr/sbin/chat -v -f /etc/ppp/peers/umtscard-chatscript-connect'
disconnect '/usr/sbin/chat -v -f /etc/ppp/peers/umts-chatscript-disconnect'
defaultroute
noipdefault
460800
usepeerdns
nopcomp
local[/code]
[code language="css"]# /etc/ppp/peers/umtscard-chatscript-connect
TIMEOUT 10
ECHO ON
ABORT '\nBUSY\r'
ABORT '\nERROR\r'
ABORT '\nNO ANSWER\r'
ABORT '\nNO CARRIER\r'
ABORT '\nNO DIALTONE\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
'' \rAT
TIMEOUT 30
OK ATZ
OK AT&F
OK AT+CPIN="XXXX"
OK AT_OPSYS=3,2
TIMEOUT 60
OK 'AT+cgdcont=1,"IP","surfo2"'
OK ATD*99***1#
CONNECT[/code]
[code language="css"]# /etc/ppp/peers/umts-chatscript-disconnect
ABORT "BUSY"
ABORT "ERROR"
ABORT "NO DIALTONE"
SAY "\nSending break to the modem\n"
"" "\K"
"" "\K"
"" "\K"
"" "+++ATH"
"" "+++ATH"
"" "+++ATH"[/code]
Mit pon umtscard gehts dann in die Weiten des Internets!
Wer mag, kann das “Umswitchen” der Karte auch automatisch beim Einstecken durch udev vornehmen lassen, wie das geht, schaut ihr am Besten direkt auf der Homepage von usb_modeswitch nach.
Eine Warnung zum Schluss: Seid mit den APNs vorsichtig und kontrolliert sie genaustens – ihr könnt euch sonst eine echt horrende Rechnung bescheren!



rowi
Da lob ick mir doch Sony Ericsson. Mein K610 hat mir letztes Jahr in einer ReHa das Überleben gesichert. Einfach per USB-Kabel angeschlossen und ich war “drin”. Das dürfte bei neueren Geräten noch immer so sein, da finde ich das G502 interessant, das kann auch HSDPA.
Stefan
Das k610 kann auch Bluetooth, ist ganz nett, wenn man BT im Laptop integriert hat.
Aber es sollte ja auch nur eine Karte sein, KEIN weiteres Handy.
Stefan
Das G502 sieht durchaus ganz nett aus und soll wohl nur 199€ kosten! Sony Ericsson allgemein finde ich aber ganz gut, da “fluppt” es einfach besser, die Menüs sind nicht so hakelig etc.
Im Sommer ist ein neues Handy fällig, also mal schauen!
Jörn Eisenkrätzer
Inzwischen gibt’s keine PC-Card-UMTS-Karten mehr im Handel.
O² bietet USB-Surf-Sticks des Herstellers HUAWEI an, welche sich problemlos unter Linux – ab Kernel 2.6.20 – einrichten lassen.
20 bzw. 25/Monat EUR Flatrate
Einwahlsoftware: wvdial
Vorgehen: Zuerst legen wir die Karte in ein Handy und schalten die PIN-Abfrage aus.
Dann wird die Karte in den Stick eingelegt und an den PC angesteckt.
Nach Einstecken des Stiftes gab es u.A. die Kernelmeldung:
linux-sbcx kernel: usb 3-1: Product: HUAWEI Mobile
linux-sbcx kernel: usb 3-1: Manufacturer: �������������������
linux-sbcx kernel: usb 3-1: SerialNumber: �������������������
sowie die Meldung, dass ein gsm-Modem und ein USB-Storrage-Device gefunden wurde. Auf einen als ISO9660-formtierten Speicherplatz liegen Windows-Treiber …
… die wir aber nicht brauchen
Wie öffnen jetzt eine Konsole, melden uns als root an und lassen das Programm wvdialconf durchlaufen. Der Stick wird ausgelesen und die /etc/wvdial wird vorkonfiguriert.
Anschliessend ergänzen wir die /etc/wvdial.conf um die werte Phone, Password, Username
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem = /dev/ttyUSB0
Phone = *99#
Idle Seconds = 300
Modem Type = Analog Modem
Stupid Mode = 1
Compuserve = 0
# Baud = 155000
Auto DNS = 1
Dial Command = ATDT
Ask Password = 0
ISDN = 0
Password = ppp
Username = ppp
Happy surfing
Gruß Jörn
Stefan
Danke für die Ergänzung!
Unter Gentoo ist das Paket nun auch als sys-apps/usb_modeswitch im (unstable)Tree enthalten, sodass man es leichter installieren kann.