I often see questions from people trying to install IEEE 1394 -- more commonly known as Firewire -- devices in Linux. Some newer distributions support FireWire "out of the box," but not all FireWire hardware is compatible with Linux. This month's column answers some burning questions about FireWire.
I often see questions from people trying to install IEEE 1394 — more commonly known as Firewire — devices in Linux. Some newer distributions support FireWire “out of the box,” but not all FireWire hardware is compatible with Linux. This month’s column answers some burning questions about FireWire.
The IEEE 1394 standard defines a high speed serial bus capable of data transfer rates of up to 400 Mbps (in 1394a), and 800 Mbps (in 1394b), and capable of connecting (via daisy-chaining) up to 63 external devices to a single IEEE 1394 port. In addition to its high speed, IEEE 1394 is isochronous, meaning that it can guarantee a specific data rate. This makes it ideal for applications that require real-time, high-speed transfers, such as video composition. Unlike USB, IEEE 1394 can communicate peer-to-peer, without the need for a PC.
If you want to connect a FireWire device to your Linux machine, start by checking your distribution’s hardware compatibility list (HCL) to make sure the device is supported. (In general, devices based on the Texas Instruments PCILynx/ PCILynx2 and OHCI-compliant chipsets are supported; devices with the proprietary Sony chipset found in various VAIO systems or the Adaptec AIC-5800 are not. However, some Sony products, such as the VAIO CXD3222, actually have an OHCI compliant chipset in them.) If the device you’d like to install isn’t listed in your distro’s HCL, check a more device-specific HCL. If you find your device there but not on your distribution’s list, it means that while someone has gotten the device to work in Linux, support for the device is not yet built into your distro. Visit http://www.linux1394.org/hcl.php for a good IEEE 1394-specific HCL or http://www.linuxquestions.org/hcl for a general purpose Linux HCL.
If your distro does not yet support FireWire, you can compile and install a new kernel. For the easiest install, use at least kernel 2.4.18 or later. (If you have to use an older kernel, download and apply the appropriate patch from http://www. linux1394.org.) During configuration, be sure to select the following options:
Under Code Maturity Options, enable “Prompt for Development/Experimental drivers.”
Under Linux IEEE 1394 Subsystem, enable “IEEE 1394 (FireWire) support,” “Raw IEEE1394 I/O support,” and then, depending on the chipset you have, “OHCI 1394 (Open Host Controller Interface) support” and/or “Texas Instruments PCILynx support”, either as modules (m) or built into the kernel (y).
With those options selected, you can continue to compile and install the kernel as you normally would. Before rebooting into the new kernel, download and install libraw1394 from http://download.sourceforge.net/libraw1394/libraw1394_0.9.0.tar.gz. libraw1394 provides direct access to the IEEE 1394 bus through the Linux 1394 subsystem’s raw1394 user space interface. After downloading the source, you can install libraw1394 via the usual sequence of commands:
$ tar zxf libraw1394_0.9.0.tar.gz
$ cd libraw1394-0.9.0
$ ./configure; make; make install
Finally, create the raw 1394 device, /dev/raw1394, by performing a make dev as root.
You can now boot into the new kernel. If you compiled 1394 support in with the (m) option, load the modules as follows:
Once you’ve verified that your IEEE 1394 device is working, you may want to add the appropriate modprobe lines to your init scripts. To test your setup, use gscanbus, a little bus scanning, testing, and topology visualizing tool for the Linux IEEE1394 subsystem. You can download gscanbus from http://gscanbus.berlios.de. After testing you can now mount and use your IEEE 1394 device. Have fun!
Not a Linux Show… The Linux Show
I’ve heard many avid Linux users wish for a television or radio program about Linux. Their wish has been answered. Now playing: the aptly named The Linux Show. The Linux Show is a live radio webcast that takes place every Tuesday night at 8 p.m. CST, and usually lasts between 60-90 minutes. The show, which was started in 1998, is broadcast online via MP3, Real, or Ogg streams. You can visit http://www.thelinuxshow.com for a list of mirrors.
Wish you heard of the show sooner? No problem! The show is archived, so you can listen to the last two years of the show in MP3.
Jeremy Garcia (firstname.lastname@example.org) is the founder and admin of LinuxQuestions.org, a free, friendly, and active Linux community. He has been working with Linux since 1995.