Der Universal Serial Bus, kurz USB, hat sich zum Standard für den Anschluss von Peripherie entwickelt - ob Maus, Tastatur, Joystick, Scanner, Drucker, Brenner oder gar Festplatte, alles findet am USB-Anschluss Platz. Der Preis ist eine niedrige Datentransferrate. Ob nun eine CD gebrannt wird oder die MP3-Sammlung mit auf Reisen genommen werden soll, mit gerade einmal vierfacher Brenn-Geschwindigkeit oder 800 KByte pro Sekunde lief alles sehr gemächlich ab.
Der Firewire-Bus wurde ursprünglich für die im Video-Bereich erforderlichen hohen Datentransferraten und lange Kabelwege vom "Institute of Electrical and Electronics Engineers", kurz "I-Triple-E" (IEEE, http://www.ieee.org) entworfen. Der als Standard 1394 verabschiedete Bus (IEEE-1394) mit dem Spitznamen "Firewire" verwendet einen vier- oder sechspoligen Stecker und ermöglicht Datenraten von bis zu 50 MB pro Sekunde (400 MBit/s) bei sechs Metern Kabel zwischen zwei Geräten.
Anders als USB ist der Einsatz von Firewire nicht auf den PC beschränkt, IEEE-1394 findet man bei Apple-Computern, neueren Camcordern, digitalen Videorekordern, Schnittpulten, Festplatten, CD- und DVD-Laufwerken.
Im vergangenen Jahr verabschiedete das USB-Konsortium (http://www.usb.org) den Standard USB 2.0, der dem Flaschenhals von USB 1.1 ein Ende bereiten soll und die Geschwindigkeitskrone wieder zurück erobert. Statt den bisher theoretisch möglichen 12 MBit/s (1,5 MB/s) von USB 1.1 und 400 MBit/s bei IEEE-1394 schafft USB 2.0 maximal 480 MBit/s (60 MB/s). Der Clou von USB 2.0 ist sowohl die höhere Geschwindigkeit wie auch die Auf- und Abwärtskompatibilität - jedes USB-2-Gerät kann an einem alten USB-1.1-Anschluss betrieben werden, und jedes alte USB-1.1-Gerät passt an einen USB-2-Anschluss. Selbst die alten Kabel können weiter benutzt werden.
Auch wenn es auf den ersten Blick so aussieht, mit einem reinen Software-Update ist es bei der Umstellung vom verbreiteten USB 1.1 auf Version 2.0 nicht getan. Mit "Version 2.0" ist der zweite, erweiterte USB-Standard gemeint und nicht etwa die Versionsnummer eines Treibers. Eine Umstellung der USB-Anschlüsse auf Mainboards oder Erweiterungskarten ist nicht möglich, Sie müssen eine neue USB-2.0-Karte kaufen - für die Sie natürlich entsprechende Treiber benötigen.
Auch ein neuer USB-Hub wird fällig, wenn Sie USB-2-Geräte mit hoher Datenrate nicht nur direkt am Rechner betreiben wollen. Wird der Hub nur zum Anschluss älterer Geräte wie Tastatur, Maus oder Drucker benutzt, brauchen Sie ihn nicht auszutauschen - schließen Sie USB-2-Geräte an, schalten diese in den langsamen USB-1.1-Modus zurück, funktionieren aber sonst wie gewohnt.
Während Firewire bereits seit Kernel-Version 2.4.0 unterstützt wird (die Module sind momentan noch als experimentell gekennzeichnet), wird USB 2.0 erst ab Version 2.4.19 zum Standard-Kernel gehören. Bei Redaktionsschluss war Kernel 2.4.18 aktuell, dort muss der USB-2.0-Treiber per Patch eingebaut werden. Die Kernel-Quellen nebst Patch finden Sie auf der Heft-CD unter LinuxUser/usb-2.0/kernel-2.4.18.tar.gz und LinuxUser/usb-2.0/patch-2.4.19-pre8.gz.
Benutzer des Standard-Kernels der SuSE 8.0 haben es leicht, dort ist das für USB 2.0 zuständige Modul ehci-hcd bereits einkompiliert. Selbst während der Installation werden externe USB-2-Festplatten problemlos erkannt und können eingebunden werden. Anders Firewire: Wie auch alle anderen großen Distributoren sucht SuSE derzeit nicht nach Firewire-Peripherie, Handarbeit ist angesagt.
Der Standard-Kernel der SuSE 8.0, den Sie ebenfalls auf der Heft-CD finden, eignet sich auch ohne Weiteres als Update für die SuSE 7.3. Dazu führen Sie die folgenden Befehle aus:
rpm -Uhv /cdrom/LinuxUser/usb-2.0/k_deflt-2.4.18-58.i386.rpm mk_initrd lilo
Das Patchen und Neuübersetzen eines experimentellen Kernels ist für Einsteiger nicht leicht zu bewältigen, im schlimmsten Fall startet Ihr Rechner mit dem neuen Kernel nicht mehr. Es ist also Vorsicht geboten, im Zweifelsfall sollten Sie bis zur Fertigstellung von Kernel 2.4.19 warten.
Vor dem Auspacken von Kernel 2.4.18 wechseln Sie in das Verzeichnis /usr/src und benennen ein eventuell vorhandenes Verzeichnis linux oder einen symbolischen Link um. Anschließend entpacken Sie das Kernel-Paket am besten auf der Kommandozeile:
mv /usr/src/linux /usr/src/linux.old tar xzf /cdrom/LinuxUser/usb-2.0/linux-2.4.18.tar.gz
Grund für diese Vorsichtsmaßnahme ist, dass der neue Kernel als Verzeichnis linux entpackt wird - gibt es /usr/src/linux bereits, entsteht ein Mischmasch aus alten und neuen Kernel-Dateien. Nach dem Entpacken wechseln Sie nach /usr/src/linux.
Als Nächstes wird der Kernel auf Version 2.4.19-pre8 gepatcht. Dazu muss das Programm patch installiert sein. Der folgende Befehl baut den Patch ein:
zcat /cdrom/LinuxUser/usb-2.0/patch-2.4.19-pre8.gz | patch -p 1
Das Update bietet die Chance, den Kernel an Ihr System anzupassen. Sie können dafür die Konfiguration des Standard-Kernels Ihrer Distribution als Vorlage benutzen. Bei SuSE-Systemen kopieren Sie dazu die Datei /etc/vmlinuz.config nach /usr/src/linux/.config. Nach Eingabe von make xconfig startet die grafische Kernel-Konfiguration, derzeit leider nur in Englisch.
Zur Aktivierung von USB 2.0 müssen Sie unter USB-Support das Modul EHCI HCD (USB 2.0) support auswählen. Mittels Main Menu schließen Sie das Fenster mit den USB-Optionen; im Menü der Firewire-Unterstützung müssen Sie dann den Treiber für die entsprechende Firewire-Karte auswählen - meist OHCI-1394 - sowie das Modul SBP-2 für Festplattenunterstützung und Raw IEEE1394 für Debugging-Zwecke. Zumindest SBP-2 sollten Sie unbedingt als Modul übersetzen und nicht fest in den Kernel integrieren, doch dazu später mehr. Schließlich verlassen Sie die Kernel-Konfiguration über Save and Exit.
Bei Verwendung der Standardkonfiguration des SuSE-7.3-Kernels müssen einige Optionen abgeschaltet werden, da der Kernel ansonsten nicht übersetzt werden kann.
Das pcilynx-Modul für Firewire-Unterstützung scheint sich in der Vorabversion von Kernel 2.4.19 nicht mit einigen anderen Modulen zu vertragen, Sie müssen daher in der Kernel-Konfiguration unter IEEE 1394 (FireWire) support die Unterstützung für Texas Instruments PCILynx support abschalten - Firewire-Karten mit diesem Chipsatz lassen sich mit dem Entwicklungs-Kernel und gleichzeitig aktiviertem USB-2.0-Support nicht nutzen.
Gleiches gilt für das Modul sdla_fr.o, das Sie unter Network device support, WAN interfaces, WANPIPE Frame Relay support abschalten müssen - Probleme sollten daraus nicht erwachsen, WAN-Karten werden heute nur noch sehr selten eingesetzt und kommen im Heim-Bereich faktisch nicht vor.
Weiter muss die UFS-Unterstützung für BSD-Partitionen unter File systems, UFS file system support (read only) deaktiviert werden. Es ist davon auszugehen, dass bis zur Fertigstellung von Kernel 2.4.19 das UFS-Modul wieder reibungslos kompiliert.
Nach Konfiguration übersetzen Sie den Kernel mit dem Befehl:
make dep modules modules_install bzImage
Den neuen Kernel finden Sie am Ende des Compiler-Durchlaufs unter /usr/src/linux/arch/i386/boot/bzImage. Je nach System kopieren Sie diese Datei nach /boot/vmlinuz oder /vmlinuz. Zudem wird die Datei /usr/src/linux/System.map in /boot oder / abgelegt.
Mittels mk_initrd werden noch alle für den unmittelbaren Start notwendigen Kernel-Module zusammengefasst und schließlich per lilo die Boot-Konfiguration erneuert. Danach müssen Sie den Computer neu starten.
Für den Fall, dass der neue Kernel nicht korrekt startet, sollten Sie einen zweiten Rettungs-Kernel installiert haben. Bei SuSE und den meisten anderen Distributionen ist das der Normalfall. Falls Sie keinen Ersatz-Kernel haben, sollten Sie Ihren alten Kernel umkopieren und einen zweiten Eintrag in der /etc/lilo.conf vornehmen.
Nach Neustart müssen Sie für USB-2.0-Unterstützung die Kernel-Module ehci-hcd und usb-ohci mit modprobe laden. Der Erfolg zeigt sich in der Log-Datei /var/log/messages (Listing 1), für diesen Workshop verwendeten wir die USB-2.0-Karte Exsys EX-1064 von IT-Saw [1]. Die Exsys-Karte ist mit einem NEC-Chipsatz bestückt, wie er auch von vielen anderen Herstellern eingesetzt wird.
Listing 1
Kernel-Meldungen des
ehci-hcd-Moduls
01: PCI: Found IRQ 11 for device 00:09.2 02: PCI: Sharing IRQ 11 with 00:07.2 03: PCI: Sharing IRQ 11 with 00:07.3 04: PCI: Sharing IRQ 11 with 00:0f.0 05: PCI: Sharing IRQ 11 with 00:10.0 06: hcd.c: ehci-hcd @ 00:09.2, PCI device 1033:00e0 07: hcd.c: irq 11, pci mem d288d000 08: usb.c: new USB bus registered, assigned bus number 3 09: ehci-hcd.c: USB 2.0 support enabled, EHCI rev 0.95 10: hub.c: USB hub found 11: hub.c: 5 ports detected 12: PCI: Found IRQ 11 for device 00:09.0 13: usb-ohci.c: USB OHCI at membase 0xd28a2000, IRQ 11 14: usb-ohci.c: usb-00:09.0, PCI device 1033:0035 15: usb.c: new USB bus registered, assigned bus number 4 16: hub.c: USB hub found 17: hub.c: 3 ports detected 18: PCI: Found IRQ 5 for device 00:09.1 19: PCI: Sharing IRQ 5 with 00:0a.0 20: PCI: Sharing IRQ 5 with 00:0e.0 21: usb-ohci.c: USB OHCI at membase 0xd28a4000, IRQ 5 22: usb-ohci.c: usb-00:09.1, PCI device 1033:0035 23: usb.c: new USB bus registered, assigned bus number 5 24: hub.c: USB hub found 25: hub.c: 2 ports detected
Bei genauerem Hinsehen erscheinen die Kernel-Meldungen aus den Zeilen 11, 17 und 25 ungewöhnlich: Obwohl die Exsys-Karte nur über drei externe und einen internen Port verfügt, werden insgesamt zehn gefunden. Eine weitere Besonderheit zeigt der Aufruf von lspci:
00:09.0 USB Controller: NEC Corporation USB (rev 41) 00:09.1 USB Controller: NEC Corporation USB (rev 41) 00:09.2 USB Controller: NEC Corporation: Unknown device 00e0 (rev 02)
Anscheinend sind auf der Erweiterungskarte drei USB-Controller mit insgesamt zehn Ports untergebracht - und dem ist auch tatsächlich so. Bei den PCI-Devices 00:09.0 (Zeile 14) und 00:09.1 (Zeile 22) handelt es sich um je einen USB-1.1-Controller mit drei beziehungsweise zwei Ports, und bei 00:09.2 (Zeile 1) um einen USB-2.0-Controller mit fünf Anschlüssen.
Intern besitzt die Karte eine Art Anschlussweiche. Wird ein Gerät nach USB 1.1 angeschlossen, landet es zunächst am USB-2.0-Controller. Sobald das Modul ehci-hcd dies bemerkt, wird das Gerät auf einen der beiden USB-1.1-Controller umgeschaltet. So können alte und neue USB-Geräte bei voller Ausnutzung der Daten-Bandbreite beliebig gemischt werden, ein langsames USB-Gerät blockiert nicht den Kanal für schnellere. Weitere Informationen zu Linux und USB 2.0 finden Sie auch unter [2].
Bei der Firewire-Einrichtung sollten Sie auch kontrollieren, ob es die Devices /dev/raw1394 und /dev/video1394 gibt. Wenn nicht, legen Sie sie an:
mknod -m 660 /dev/raw1394 c 171 0 mknod -m 660 /dev/video1394 c 172 0 chown root:video /dev/raw1394 /dev/video1394
Als Diagnose-Tool für Firewire hat sich gscanbus bewährt. Das GTK-Programm zeigt Ihnen die Firewire-Controller mit allen angeschlossenen Geräten grafisch an. So können Sie leicht feststellen, ob ein Gerät überhaupt erkannt wurde und welche Eigenschaften ihm zugeordnet sind. gscanbus gibt es derzeit nur im Quellcode, den Sie auf der Heft-CD unter /cdrom/LinuxUser/firewire finden. Um das Programm zu übersetzen, benötigen Sie neben Compiler und Standardbibliotheken auch die Pakete glib-devel, gtk-devel, libraw1394 und libraw1394-devel. Die letzten beiden haben wir als RPM-Paket, Debian-Paket und im Quellcode auf die Heft-CD genommen. Zum Installieren von gscanbus rufen Sie zunächst im Verzeichnis des Quellcodes ./configure und anschließend make install auf.
Die Auswahl der richtigen Firewire-Karte ist nicht leicht. Nur selten geben die Hersteller die volle Chipsatz-Bezeichnung an. Uns standen zwei Karten mit dem weit verbreiteten Texas-Instruments-Chipsatz zur Verfügung: die Exsys EX-6450 von IT-Saw mit TSB-43AB22 sowie die DC-1394 PCI von Dawicontrol [3] mit TSB-12LV26. Laut Kompatibilitätsliste unter [4] werden beide Chipsätze vom Modul ohci1394 voll unterstützt.
Zunächst laden Sie das Modul ohci1394 mittels modprobe, und falls Sie gscanbus benutzen möchten, noch das Modul raw1394. Spätestens jetzt schließen Sie die Firewire-Festplatte an und laden erst danach das Modul sbp2. In der Datei /var/log/messages wird Ihnen ähnlich wie in Listing 2 angezeigt, welche Devices der Festplatte zugeordnet wurden.
Listing 2
Kernel-Meldungen des
sbp2-Moduls bei angeschlossener Festplatte
01: ieee1394: sbp2: Logged into SBP-2 device 02: ieee1394: sbp2: Node[01:1023]: Max speed [S400] - Max payload [2048] 03: SBP-2 module load options: 04: - Max speed supported: S400 05: - Max sectors per I/O supported: 255 06: - Max outstanding commands supported: 8 07: - Max outstanding commands per lun supported: 1 08: - Serialized I/O (debug): no 09: Vendor: TOSHIBA Model: MK3017GAP Rev: 10: Type: Direct-Access ANSI SCSI revision: 06 11: scsi1 : IEEE-1394 SBP-2 protocol driver (host: ohci1394) 12: Attached scsi disk sdb at scsi1, channel 0, id 0, lun 0 13: SCSI device sdb: 58605120 512-byte hdwr sectors (30006 MB) 14: sdb: sdb1 < sdb5 sdb6 sdb7 >
Hier zeigten sich Probleme mit der Firewire-Karte von IT-Saw: Die Festplatte konnte nicht eingebunden und somit nicht angesprochen werden. Ein Camcorder hingegen funktionierte einwandfrei. Bei der DC-1394 von Dawicontrol gab es hingegen nichts zu beanstanden - sie verdient damit die Kaufempfehlung. Ein weiteres Problem: Beim Plattenwechsel muss das Modul sbp2 entladen und neu geladen werden, auf unserem SuSE-Testsystem wurde das Anstecken einer neuen Platte sonst nicht erkannt. Daher muss derzeit SBP-2 als Modul eingebunden sein.
Die DC-1394 hat drei externe und einen internen Firewire-Anschluss. Wird der interne Anschluss benutzt, etwa um ihn auf die vordere Gehäuseseite zu verlegen, darf der obere externe Anschluss nicht mehr verwendet werden. Insgesamt stehen trotz vier Anschlüssen also nur drei Firewire-Ports zur Verfügung.
In unseren Tests arbeitete das ehci-hcd-Modul problemlos mit der USB-2.0-Karte zusammen. Dennoch ist die USB-2.0-Unterstützung derzeit als experimentell eingestuft, es könnten noch Bugs enthalten sein. So konnte etwa das usb-storage-Modul nicht mehr initialisieren, wenn wir beim Start zwei USB-2.0-Festplatten gleichzeitig betrieben. Nacheinander angesteckt gab es kein Problem.
Auch die Firewire-Unterstützung ist noch nicht ganz ausgegoren, was unsere Probleme mit dem SBP-2-Modul zeigten. Bei Verwendung eines Geräts und Beachtung der Vorsichtsmaßnahmen wie Entladen und Neuladen des Moduls ist aber auch Firewire durchaus fit für den Alltag.
Immer mehr Peripheriegeräte haben einen Firewire- oder USB-2.0-Anschluss, abhängig davon, ob sie zur allgemeinen PC-Peripherie oder dem Video-Markt gehören. Optimal ist es, den Rechner mit beiden Bus-Systemen auszustatten. Mit Datentransferraten von 50 respektive 60 MB pro Sekunde haben beide Systeme genug Luft, um selbst schnelle Festplatten oder DVD-Brenner zu versorgen. Bei Firewire hat man allerdings vorgesorgt: In der Spezifikation IEEE-1394b sind Kabellängen von bis zu 100 Metern bei Transferraten bis zu 400 MB/s vorgesehen.
Exsys EX-1064 4-Port USB-2.0, PCI
|
| |
|---|---|
| Distributor | IT-Saw (http://www.it-saw.de) |
| Chipsatz | NEC EHCI D-720100 |
| Anschlüsse | 3 x USB (Typ A) extern, 1 x USB (Typ A) intern |
| Lieferumfang | Karte, Kabel, kurzes Slot-Blech, Treiber-CD, Broschüre |
| Garantie | Gesetzlich |
| Preis | 40 Euro |
Dawicontrol DC-1394 PCI, Firewire-Controller
|
| |
|---|---|
| Hersteller | Dawicontrol (http://www.dawicontrol.de) |
| Chipsatz | Texas Instruments TSB-12LV26 |
| Anschlüsse | 3 x Firewire (3 extern oder 2 extern / 1 intern) |
| Lieferumfang | Karte, Kabel 6-Pin auf 4-Pin, Ulead Videostudio 6 (Windows), Treiber-Diskette, Handbuch |
| Garantie | 5 Jahre |
| Preis | 60 Euro |
Infos
[1] IT-Saw: http://www.it-saw.de
[2] Linux USB: http://www.linux-usb.org
[3] Dawicontrol: http://www.dawicontrol.de
[4] Firewire unter Linux: http://linux1394.sourceforge.net