UMTS/HSDPA Stick XS Stick P14 unter Fedora 16 betreiben
Da mir das Tethering meines Netbooks mittels Samsung Galaxy Tab auf Dauer lästig geworden ist, habe ich mir einen UMTS/HSDPA zugelegt. Meine bisherige Erfahrung mit solchen Sticks an Linux ist durchweg positiv, umso erstaunter war ich, als es nicht auf Anhieb unter Fedora 16 funktioniert hat. Hier schreibe ich, wie ich es gelöst habe.
USB-UMTS-Sticks werden unter Linux vom Kernel-Modul usbserial (CONFIG_USB_SERIAL) angebetrieben. Normalerweise geht das Modul in Betrieb, wenn Gerät mit einer bekannten Hersteller- (vendor) und Produkt-ID (product) angesteckt wird.
Die IDs jedes angeschlossenen Geräts bekommt man mit dem Befehl lsusb:
Zwischen den beiden roten Linien stehen die erwähnten Nummern, getrennt durch den Doppelpunkt. Das linke Segment ist die Hersteller-ID, das Rechte entsprechend die Produkt-ID.
In meinem Fall ist der letzte Eintrag der USB-Stick. Woher ich das weiß? Ziehe ich den Stick ab, verschwindet der Eintrag, stecke ich ihn dann wieder in das Netbook kommt er wieder.
Der Hersteller hat also die ID 1c9e und das Produkt 9605. Bei anderen Sticks (In meinem Fall ist es ein XS Stick P14), werden diese IDs abweichen, was aber nicht schlimm ist.
Wie gesagt erfolgt die Zuordnung von Hardware zum Treiber über diese IDs. Nun kennt aber der in Fedora 16 enthaltene Treiber scheinbar diese IDs noch nicht (Es ist bei lsusb auch die einzige Zeile ohne einen beschreibenden String). Das ist nicht weiter schlimm, weil der Treiber usbserial zwei Optionen kennt, vendor und product. Mit diesen Optionen könenn dem Treiber beim Laden bisher unbekannte Geräte zugeordnet werden, ein entsprechender Aufruf wäre also
<td>
<div class="bash codecolorer">
modprobe usbserial <span class="re2">vendor</span>=0x1c9e <span class="re2">product</span>=0x9605
</div>
</td>
</tr>
Die Schreibweise mit der 0x vor der ID ist nichts weiter als die Textdarstellung einer Hexadezimalzahl im Linux-Kernel und muss ohne Nachdenken übernommen werden.
Leider funktioniert das aber unter Fedora 16 nicht, da hier der Treiber fest in den Kernel eingebunden ist, also nicht als (ent)ladbares Modul zur Verfügung steht. Warum das so ist (bei Fedora 15 war es m.E. noch anders) habe ich noch nicht rausgefunden. Ich vermute es geht um die sehr frühe Unterstützung einer seriellen Konsole über USB, aber das ist wie gesagt nur eine Vermutung und ich freue mich über Kommentare zu dem Thema.
Jedenfalls kann man dem Treibermodul nicht wie oben beschrieben weitere Informationen auf die Reise geben, was das rumprobieren etwas nervig macht. Ganz machtlos ist man aber nicht, denn über die Kernel-Kommandozeile kann man auch an fest eingebundene Module Parameter übergeben, und zwar im Format modul.parameter=Wert, also in diesem Fall
usbserial.vendor=0x1c9e usbserial.product=0x9605
Nur wohin damit? Fedora 16 läuft standardmäßig mit grub2 und das speichert seine Konfiguration unter /boot/grub2/grub.cfg. Da kann man es an die Einträge für die Kernel anfügen. Aber Halt! Was passiert wenn ein Kernel geupdated wird? Dann werden diese Einträge entfernt, da die Datei von einem Programm namens grub2-mkconfig überschrieben wird. Also machen wir es wie die ErfinderIn ersonnen hat und tragen die Parameter in die Datei /etc/default/grub ein.
Nun muss noch die Konfigurationsdatei von grub2 neu geniert werden:
<td>
<div class="bash codecolorer">
<span class="kw2">sudo</span> <span class="sy0">/</span>sbin<span class="sy0">/</span>grub2-mkconfig <span class="re5">-o</span> <span class="sy0">/</span>boot<span class="sy0">/</span>grub2<span class="sy0">/</span>grub.cfg
</div>
</td>
</tr>
Nach einem beherzten Neustart des Rechners konnte ich dann den Stick im NetworkManager verwenden.
Ein Hinweis noch: Ich habe einen Vertrag mit Debitel Vodafone. Der Networkmanager enthält die Settings für den Zugang „web.vodafone.de“ bereits. Allerdings musste ich die Felder für Benutzername und Passwort leer machen, damit es funktioniert.
Der Eintrag wurde per im Zug verfasst und mittels des Sticks hochgeladen. 🙂