FireWire

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Ein Terminal öffnen

  2. Benutzer und Gruppen verwalten

  3. Einen Editor öffnen

Inhaltsverzeichnis
  1. FireWire-Geräte nutzen
    1. FireWire-Schnittstelle vorhanden?
    2. Vorgehen in Schritten
      1. Modul überprüfen
      2. Rechtevergabe
      3. Nutzung einer Videokamera
      4. Nutzung einer externe Festplatte
  2. Links

./firewire_logo.png FireWire, auch als i.Link bekannt, ist eine nach IEEE 1394 spezifizierte Hardwareschnittstelle zur Einbindung von Festplatten, digitalen Videokameras, Netzwerk-Adapter etc. Entsprechende Treiber sind bereits im Kernel enthalten. Wird das ein oder andere Audiogerät nicht unterstützt, wird man vielleicht im FFADO-Projekt fündig. Diese Wiki-Seite hier ist primär für Problemlösungen bezüglich FireWire bestimmt.

Die FireWire-Unterstützung im Kernel ist vor einiger Zeit vollständig neu geschrieben worden. Sie ist ab Kernel 2.6.22 als neues Modul firewire eingeflossen und wurde seitdem verbessert und stabilisiert, bis im Kernel 2.6.37 die alten Treiber um raw1394 aus dem Kernel entfernt wurden.

FireWire-Geräte nutzen

FireWire-Schnittstelle vorhanden?

Ob in dem Rechner eine FireWire Schnittstelle vorhanden ist, kann mit dem folgenden Kommando im Terminal [1] nachgesehen werden:

lspci | grep -i FireWire 

Beispiel:

03:01.3 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (rev 46)

Wird keine solche oder ähnliche Zeile ausgegeben, ist FireWire entweder nicht vorhanden oder wird nicht erkannt. Sollte sie vorhanden sein, kann die Log-Ausgabe zur Fehlersuche beitragen:

dmesg | grep -i firewire 

Vorgehen in Schritten

Modul überprüfen

Ob neben der vorhandenen FireWire-Schnittstelle auch die Treibermodule geladen werden konnten, erkennt man im Terminal mit dem Kommando (nebst Ausgabe):

lsmod | grep firewire 

Ausgabe:

firewire_ohci          40370  0 
firewire_core          62646  1 firewire_ohci
crc_itu_t              12707  1 firewire_core

Kommt keine der Zeilen oben, ist das Modul nicht geladen worden. Dann muss es mit Modprobe manuell geladen werden, in diesem Fall also mit

sudo modprobe firewire_ohci 

Das Modul firewire_ohci lädt gleichzeitig firewire_core, von dem es abhängt.

Wenn das Modul geladen ist, muss auch eine Geräte-Datei existieren. Diese lautet /dev/fw0, bei mehreren genutzten Schnittstellen werden weitere mit fortlaufender Zahl angelegt:

ls -l /dev/fw* 
crw------- 1 root root 251, 0 2012-07-14 17:20 /dev/fw0

bzw. nach Anschließen einer Kamera:

ls -l /dev/fw* 
crw-------  1 root root  251, 0 2012-07-14 17:20 /dev/fw0
crw-rw----+ 1 root video 251, 1 2012-07-14 18:05 /dev/fw1

Wie man bei der Geräte-Datei /dev/fw1 sieht, muss der Benutzer dieses Gerätes selbst der Gruppe video angehören (s.a. Benutzer und Gruppen (Abschnitt „Werkzeuge-zur-Verwaltung-von-Benutzern-und-Gruppen“))

Rechtevergabe

in Ubuntu ist FireWire bereits in udev eingepflegt, so dass FireWire-Gerätedateien sofort angelegt werden. Dennoch kann man die hinterlegten Regeln für Modifikation der Rechte etc. nachgesehen werden unter:

grep -i firewire /lib/udev/rules.d/* 

und wird dort bereits in der Datei 50-udev-defaults.rules fündig, in denen dem ausführenden Benutzer die neue Gerätedatei der Gruppe video zuweist (Siehe auch Benutzer und Gruppen)

Nutzung einer Videokamera

Mit dvgrab 🇬🇧 sollte man nun die Videokamera im Terminal steuern können:

dvgrab -i 
rom1394_0 warning: read failed: 0x0000fffff0000414
error reading config rom directory for node 0
Found AV/C device with GUID 0x0800460104bd68a3
Going interactive. Press '?' for help.

beginnt die Kommunikation im interaktiven Modus. Weitere Information im Artikel dvgrab.

Nutzung einer externe Festplatte

Will man eine externe Festplatte per Firewire betreiben, findet man eventuell in der Protokolldatei /var/log/syslog Fehlermeldungen wie die folgenden:

Oct  5 19:31:49 rechner kernel: [  937.083121] firewire_ohci: node ID not valid, new bus reset in progress
Oct  5 19:31:59 rechner kernel: [  946.586761] firewire_core: skipped bus generations, destroying all nodes
Oct  5 19:31:59 rechner kernel: [  946.586786] firewire_core: Parent port inconsistency for node 0: parent_count=1
Oct  5 19:31:59 rechner kernel: [  946.586791] firewire_core: topology build failed

und die Platte wird nicht automatisch erkannt und eingebunden.

Startet man nun von einer Live-CD, dann wird die Firewire-Festplatte sofort erkannt und kann eingebunden werden. Macht man dann einen Neustart des Rechners (Reboot, nicht aus- und einschalten) und bootet wieder Ubuntu 11.04, dann wird die Platte auch hier sofort erkannt und kann benutzt werden.