Skip to content

High Speed UMTS unter Linux: So klappt's!

^ v M ><
Tja, was soll man machen? Man ist Informatiker, sitzt 5-6 Tage pro Woche den ganzen Tag an der Uni, braucht also daheim selten Internet, aber brauchen kann man es eben trotzdem.
Kabelinternet wär zwar günstig. Geht aber nicht, weil die Bude bzw deren TV-Kabelinstallation zu alt ist.
DSL will ich nicht, da mir die Angebote nicht passen. CHF 25.25 für eine Telefonleitung, die ich eh nicht brauche bezahl ich schlicht nicht. Und das Angebot von Monopoly-Spieler Bluwin mit erlassender Grundgebühr ist ein schlechter Witz, wenn ich dafür erstens mein Handy-Abo upgraden und ich mich zweitens noch länger als nötig an die Swisscom binden muss (ich freu mich ja schon auf den Tag, an dem mein Abo ausläuft).
Analogmodem kommt aus Prinzip (Performance) nicht in Frage und braucht auch wieder einen Telefonanschluss.

Lösung? Söönreis (wie's eine BWL-Professorin xmal pro Vorlesung ausgesprochen hat) Mobildatenabo mit UMTS. Klappt auch prima unter Pinguin-OS.

Allerdings bringt die Leitung nach Einstöpseln und konfigurieren des Modems nur mit ca 500kbps, auch wenn eigentlich viel mehr drinliegen müsste. Ein Bisschen suchen im Internet hat mich dann zu dieser Anleitung zum Patchen des usbserial-Moduls geführt. Allerdings ist nur eine Anleitung für Kernel 2.4 dabei, das ist bei aktuellen Distributionen nicht mehr so ganz passend. Deshalb gibt's hier eine kleine Anleitung für Ubuntu 7.10 (durch anpassen der Kernel-Source-Version eigentlich auf jede Distro adaptierbar):

Erst die Kernel-Source installieren:
# aptitude install linux-source ncurses-dev && cd /usr/src && tar -jxf linux-source-2.6.22.tar.bz2 && cp /boot/config-$(uname -r) /usr/src/linux-source-2.6.22/.config && make menuconfig
Nun die Konfiguration wieder beenden (Pfeiltaste nach rechts und Enter). Jetzt geht's ans Eingemachte, den auf der soeben verlinkten Seite erhältlichen Patch einspielen. Der Patch kann z.B. als /root/usbserial.c.patch abgespeichert werden:
# cd /usr/src/linux-source-2.6.22/ && patch -Np0 -i /root/usbserial.c.patch
Nun muss das usbserial-Modul neu kompiliert werden. In der ursprünglichen Anleitung ist ein Bandwurm von gcc-Befehl drin, das klappt bei mir aber nicht. Nun, der Einfachheit halber hab ich einfach alle Module neu übersetzt. Das dauert zwar, ist aber ein zuverlässiger Weg:
# make modules
Als nächstes muss das neue Modul installiert werden (vorher besser das Original noch sichern -> Murphy ist überall):
# mv /lib/modules/$(uname -r)/kernel/drivers/usb/serial/usbserial.ko /root/usbserial.ko.old && cp drivers/usb/serial/usbserial.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ && update-modules
Der Befehl
# modinfo usbserial
sollte nun den neuen Parameter maxSize anzeigen.

Für mein Novatel MC950D muss der Treiber nun wie folgt geladen werden (erst muss das Pseude-CD-Laufwerk mit dem Treiber ausgehängt werden):
# eject /dev/scd1; sleep 3; modprobe usbserial vendor=0x1410 product=0x4400 maxSize=2048

Das Resultat ist beachtlich. Statt mit 500kbps bin ich jetzt mit 2.7mbps unterwegs. Also locker 5x schneller. Einzig an der Latenz hab ich noch was auszusetzen. Ping über 100ms zu den schnellsten Servern ist nicht sooo toll. Insbesondere dass kein DNS-Server in weniger als 300ms zu erreichen ist, verzögert natürlich jeden Verbindungsaufbau. Ich brauch wohl einen lokalen DNS-Cache.

Trackbacks

No Trackbacks

Comments

Display comments as Linear | Threaded

No comments

The author does not allow comments to this entry

Add Comment

Standard emoticons like :-) and ;-) are converted to images.
Form options