Teaser
The more I see, the more I know
The more I know, the less I understand
clear

T-Mobile UMTS Karte Web'n'Walk unter Linux

1) Einleitung

T-Mobile bietet unter der Bezeichnung T-Mobile web`n`walk Card WLAN eine kombinierte UMTS/WLan Karte an - natürlich ohne Treiber für Linux. Diese T-Mobile Karte verhält sich dabei jedoch nicht wie andere UMTS Karten, die als USB Device eingebunden werden und für die eine Vielzahl von Howtos gibt. Daher im folgenden eine kurze Zusammenfassung, wie man die Karte einrichtet.

2) Einrichten des Kernel

Folgende Kernel Optionen sind notwendig (ggf. habe ich zuviele):

 

<*> PCCard (PCMCIA/CardBus) support

[ ] Enable PCCARD debugging

<*> 16-bit PCMCIA support

[*] Load CIS updates from userspace (EXPERIMENTAL)

[*] PCMCIA control ioctl (obsolete)

--- 32-bit CardBus support

--- PC-card bridges

<*> CardBus yenta-compatible bridge support

< > Cirrus PD6729 compatible bridge support

< > i82092 compatible bridge support

< > i82365 compatible bridge support

< > Databook TCIC host bridge support

 

Device Drivers --> Network Driver -->

<*> PPP (point-to-point protocol) support

[ ] PPP multilink support (EXPERIMENTAL)

[*] PPP filtering

<M> PPP support for async serial ports

<M> PPP support for sync tty ports

<M> PPP Deflate compression

<M> PPP BSD-Compress compression

<M> PPP MPPE compression (encryption) (EXPERIMENTAL)

< > PPP over Ethernet (EXPERIMENTAL)

 

Character Devices --> Serial Drivers -->

<*> 8250/16550 and compatible serial support

[ ] Console on 8250/16550 and compatible serial port

<*> 8250/16550 PCMCIA device support

[ ] 8250/16550 device discovery via ACPI namespace

(4) Maximum number of 8250/16550 serial ports

(4) Number of 8250/16550 serial ports to register at runtime

[ ] Extended 8250/16550 serial driver options

--- Non-8250 serial port support

< > Digi International NEO PCI Support

 

Die in den anderen UMTS Howtos (mit USB Device) benötigten Module (wie z.B. cs_serial) werden nicht benötigt.

 

Nun Kernel kompilieren, speichern, installieren, neu booten..

3) Einrichten der Karte

Die Karte wird nach dem Einstecken als PCI erkannt. lspci (ab Version 2.2.1) erkennt die Karte wie folgt:

 

umts1 ~ # lspci -v

02:00.0 Network controller: Option N.V. Qualcomm MSM6275 UMTS chip

Flags: medium devsel, IRQ 11

Memory at 12000000 (32-bit, non-prefetchable) [disabled] [size=2K]

 

 

andere UMTS Karten hingegen melden sich als USB Gerät an und können dann mehr oder minder sofort angesprochen werden. Für diese Karte ist jedoch ein Treiber notwendig, der auf der Webseite www.pharscape.org zu erhalten ist. 

Achtung ! Bei Verwendung von Kernel 2.6.16 und nozomi_060209 (es liegen bereits neuerere Versionen vor) ist ein kleiner Patch notwendig: Die Datei nozomi.c muss bei Zeile 966 umgeändert werden:

 

alt:

if (tty->flip.count >= TTY_FLIPBUF_SIZE) {

tty_flip_buffer_push(tty);

}

 

neu:

if (tty_buffer_request_room(tty, i) < i) {

tty_flip_buffer_push(tty);

}

 

anschliessend "make" ausführen und wird die Datei nozomi.ko erstellt. Diese in das "Modules" Verzeichnis kopieren, ich habe es in /lib/modules/KERNEL_VERSION/misc (ggf. das misc erstellen) kopiert. Anschliessend muss dem System durch starten von "modules-update" (Gentoo) oder "depmode -A" über das neue Modul informiert werden.

 

Nun kann mit "modprobe nozomi" das Modul eingebunden werden. Klappt es (man erhält keine Ausgabe), dann werden vier neue Devices erstellt (/dev/noz0 .. /dev/noz3). Jetzt sollte man das Modul in die "/etc/modules.autoload/kernel-2.6" Datei eingetragen werden, damit es beim booten automatisch installiert wird.

 

 

4) Betrieb

IM AUFBAU !!

Man kann die UMTS Karte entweder durch wvdial oder direkt per ppp ansprechen. Per Minicom ist es mir nicht gelungen.

 

a) wvdial

da das config Tool von wvdial die Devices ttyS0..S3 durchsucht, kann man am besten kurz einen symbolischen Link von /dev/noz0 auf /dev/ttyS3 setzen (ln -sf /dev/noz0 /dev/ttyS3). Dann wvdial-config aufrufen. Nun die erzeugte Config Datei anpassen (/etc/wvdial/...) und das Device auf /dev/noz0 setzen. Username, Password ist egal, als Telefonnummer "*99#" eintragen und zusätzlich die Option "carrier check=no" hinzufügen. Dann wird durch Aufruf von wvdial eine Verbindung aufgebaut.

 

b) ppp

Zumindest unter Gentoo gibt es eine einfache Lösung, daß Linux die Verbindung bei Bedarf aufbaut. Da heute UMTS Flatrates nicht mehr sonderlich teuer sind, habe ich mich für diesen Weg entschieden.

 

die /etc/conf.d/net.ppp anpassen. Hier mein Beispiel:

PEER="MyPeer" # Define peer (aka ISP)

DEBUG="no" # Turn on debugging

PERSIST="yes" # Redial after being dropped

ONDEMAND="no" # Only bring the interface up on demand?

MODEMPORT="/dev/noz0" # TTY device modem is connected to

LINESPEED="460800" # Speed pppd should try to connect at

INITSTRING="ATZ" # Extra init string for the modem

DEFROUTE="yes" # Must pppd set the default route?

HARDFLOWCTL="yes" # Use hardware flow control?

ESCAPECHARS="yes" # Use escape caracters ?

PPPOPTIONS="" # Extra options for pppd

USERNAME="egal" # The PAP/CHAP username

PASSWORD="egal" # Your password/secret. Ugly I know, but i

# will work on something more secure later

# on. 700 permission on /etc/init.d/net.ppp0

# should be enouth for now.

NUMBER="*99#" # The telephone number of your ISP

# leave blank for leased-line operation.

REMIP="" # The ip of the remote box if it should be set

NETMASK="" # Netmask

IPADDR="" # Our IP if we have a static one

MRU="1492" # Sets the MRU

MTU="1492" # Sets the MTU

RETRYTIMEOUT="60" # Retry timeout for when ONDEMAND="yes" #PERSIST="yes"

IDLETIMEOUT="600" # Idle timeout for when ONDEMAND="yes"

PEERDNS="no" # Should pppd set the peer dns?

 

Nun kann ich durch start von /etc/init.d/net.ppp0 die Verbindung aufbauen, bzw. gleich das Init Script beim booten ausführen. In meinem Beispiel wählt sich der Rechner sofort nach dem Starten ins Netz ein.

 

 

5) Anmerkung

<typolist>Damit ich die PIN Abfrage umgehe, habe ich die Karte kurz in ein Windows Notebook eingesetzt und mittels der T-Mobile Software die Abfrage deaktiviert. Es gibt auch Anleitungen [1], [2] wie man das unter Linux macht, aber ich scheine mit Minicom auf Kriegsfuss zu stehen.

</typolist>