Linux UMTS

Aus C3MAWiki
Version vom 2. Februar 2007, 02:09 Uhr von Yorn (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Dieses Projekt ist erfolgreich abgeschlossen und wird hier dokumentiert. Falls du weitere Fragen dazu hast, wende dich an Yorn.

UMTS unter linux debian

Ich hatte jetzt mal für 6 Wochen testweise eine UMTS Karte von vodafone und zwar eine Novatel Wireless HSDPA, genauer gesagt die Merlin XU870 PCIExpress Card. Endlich mal ne Karte die ich in diesen, meiner Meinung nach unnötigen, Express Card Slot rammen kann...

Ein offizielles How-To vom Hersteller gibts hier: http://www.novatelwireless.com/support/merlin-xu870-linux.html

Leider fand ich das erstmal eher verwirrend, darum schreib ich mir hier mal auf wie ichs gemacht hab. Vodafone weiss übrigens natürlich nichts davon, dass man ihre Karte auch ohne die dolle M$-Einwahlsoftware unter Linux betreiben kann. Auf mein Nachfragen hiess es: "Ja, es gab da mal einen Kunden, der hat das wohl geschafft, allerdings mit Software die irgendwie 600 Euro gekostet hat, hahaha, wissen Sie, da sag ich Ihnen ganz ehrlich, neee, also 600 Euro... nee!"

Wie auch immer... kostet ungefähr 15 Minuten Zeit und 0 Euro, dann läufts auch so:

  • 1. USB sollte laufen, pppd / wvdial sollte installiert sein und benutzbar sein
  • 2. 2.6.19er kernel oder vergleichbares mit den Modulen usbserial und airprime (nebst den anderen obligatorischen Sachen wie USB natürlich)
  • 3. Karte einstecken (bei mir im PCI Express Slot)
  • 4. rmmod -f airprime ; rmmod -f usbserial
  • 5. modprobe usbserial vendor=0X1410 product=0x1430
  • 6. modprobe airprime
  • 7. Output von /var/log/messages sollte dann in etwa so aussehen:

kernel: usbcore: registered new interface driver usbserial
kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
kernel: usbcore: registered new interface driver usbserial_generic
kernel: drivers/usb/serial/usb-serial.c: USB Serial Driver core
kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for airprime
kernel: usbcore: registered new interface driver airprime
kernel: usb 5-1: new full speed USB device using uhci_hcd and address 4
kernel: usb 5-1: configuration #1 chosen from 1 choice
kernel: usbserial_generic 5-1:1.0: generic converter detected
kernel: usb 5-1: generic converter now attached to ttyUSB0
kernel: usbserial_generic 5-1:1.1: generic converter detected
kernel: usb 5-1: generic converter now attached to ttyUSB1

... Wenn das nicht der Fall ist und der output so aussieht: kernel: usb 5-1: new full speed USB device using uhci_hcd and address 3 kernel: usb 5-1: configuration #1 chosen from 1 choice ... Unbedingt darauf achten, dass usbserial geladen wurde wie unter 5. beschrieben! Die Karte muss sozusagen mit dem ttyUSB0 verknüpft werden, damit wir es als Modem benutzen können.

  • 8. Die PIN auf die Karte schreiben mit diesem Script:

  1. !/usr/bin/env perl (-)

use strict; use warnings;

my $modem = "/dev/ttyUSB0";

  1. Substitute xxxx with your PIN.
  2. You should probably put your PIN somewhere else, e.g. on a USB stick,
  3. an encrypted file system or something else, and read it from there...
  4. You have been warned!

my $pin = "1234";

$SIG{ALRM} = sub {

       die("timeout: no response from modem $modem\n");

};

open(MODEM, "+<", $modem) or die("can't open modem $modem"); alarm(10); print(MODEM "AT+CPIN=\"$pin\"\n\r"); while (<MODEM>) {

       if (m/OK/) {
               close(MODEM);
               print("PIN accepted\n");
               exit(0);
       }
       if (m/ERROR/) {
               close(MODEM);
               print("PIN rejected\n");
               exit(1);
       }

} ... welches ich von HIER abgerippt hab. Dort findet sich übrigens auch nochmal eine Anleitung unter ubuntu!

  • 9. Jetzt sollte die UMTS Karte erst grün und dann blau blinken. Das bedeutet das wir GPRS (grün) oder UMTS (blau) Empfang haben.
  • 10. Als nächstes die Karte einwählen lassen. Dazu benutze ich wvdial, gibts über apt-get oder von hier! wvdial benötigt eine config, die in /etc/wvdial.conf liegt. Meine sieht so aus:

[Dialer Defaults] Modem = /dev/ttyUSB0 Baud = 460800 SetVolume = 0 Dial Command = ATDT FlowControl = NOFLOW Init1 = ATZ Init2 = ATM0

[Dialer umts] Modem = /dev/ttyUSB0 Baud = 460800 Username = ppp Password = ppp Phone = *99***1# Stupid Mode = 1 Init1 = AT+CGDCONT=1,"IP","web.vodafone.de" Dial Attempts = 3

  • 11. Wenn ich jetzt wvdial umts eingeb, dann connectet sich wvdial über pppd mit dem UMTS Netz und ich kann einwandfrei surfen. Checken kann man dies, indem man in /var/log/messages oder syslog schaut.
  • 12. Man kann det janze auch mit kppp, gnome-ppp und pppd direkt machen. Wie es einem beliebt, bei mir hat wvdial als erstes geklappt, also nehm ich das! :-)

--Yorn 02:37, 31. Jan. 2007 (CET)

Erfahrungsbericht

Also ich fahre jetzt die Strecke Bonn - Mannheim in nem IC und hab 1 Disconnect gehabt (3 Minuten). Wenn UMTS nicht verfügbar war, hat die Karte schön auf GPRS geswitched. Das war ca. 20 Minuten lang der Fall, paar Minuten nach Koblenz. Ich bin bis auf den einen Disconnect jetzt also 2 Stunden online und voll zufrieden! Ich hör gerade 96k Webradio und schreib hier im wiki rum. Ping Zeiten sind unter umts bei ~120, bei gprs fallback um die 400. Ich bin gerade noch per ssh auf meiner box und hab kaum lag.

Was besseres kann mir persönlich für ne Bahnfahrt nicht passieren, muss ich sagen. Jetzt mach ich noch DVB-T an und guck Nachrichten! :-D

--Yorn 15:14, 31. Jan. 2007 (CET)