Introduction
FireWire or IEEE1394 was developed in 80s and 90s by Apple to provide high-speed communications.
FireWire is available as wireless, fiber optic and coaxial versions, all using the same protocol. The technology is a peer-to-peer standard, that means that every connected device can be a host or client. Firewire can connect up to 63 devices.
Features of FireWire
- Peer-to-Peer networking allowing up to 63 devices to be connected per bus
- Although USB provides 127 devices per bus, it use a Client-Host which makes it less usable
- non-cyclic network
- automatic address selection
- no terminators needed in opposition of SCSI
- locations are random
- Half-duplex 98.304 Mbps 1394a supports 2x (196.608) and 4× (393.216)
- 1394b provides full duplex 98.304 Mbps on 1x 2x 4x 8x 16x 32x
- Data encoding
1394b uses improvement of FibreChannel's 8b10b encoding
- Support for Direct Memory Access (DMA)
- Data-Strobe encoding providing less jitter than normal clock-data
- Like USB, backwards compatible
- Isochronous which means that between cycles are equal time intervals
Advantages of FireWire
- hot pluggable (support by udev)
- outstanding performance
- True data rates where USB normally only provides half the theoretical rate
- direct map to processor
Direct Memory Access for FireWire equipment
Support Linux
Linux has supported FireWire since 2.3.40 with the Linux1394 driver but in 2010 the old driver stack was deprecated to make space for a new, better one: FireWire-*.
Differences between the two drivers
Pre 2.6.37 (2010) |
Post 2.6.37 (2010) |
Purpose |
Comments |
ieee1394 |
firewire-core |
base driver |
|
ohci1394 |
firewire-ohci |
driver for ohci 1.0, 1.1 and 1394b controllers |
|
sbp2 |
firewire-sbp2 |
support for storage and other SBP2 devices |
|
eth1394 |
firewire-net |
Ethernet over FireWire (IPv4 only) |
Firewire device must be named 'firewire0' in /etc/network/interfaces |
raw1394 |
firewire-core |
userspace access |
similar but not binary compatible |
dv1394 |
firewire-core |
userspace access (deprecated in favour of raw1394 + libraw1394) |
similar but not binary compatible |
video1394 |
firewire-core |
for applications using industrial cameras and webcams and a few other special purposes, especially via libdc1394 |
similar but not binary compatible |
- |
sbp-target |
let the computer act like a storage device |
|
firedtv |
firedtv |
support for DVB-C, DVB-T, DVB-S tuner boxes and tuner cards from Digital Everywhere |
|
- |
snd-firewire-speakers |
LaCie FireWire Speakers and Griffin Firewave |
|
- |
snd-isight |
microphone in the Apple iSight webcam |
|
- |
init_ohci1394_dma |
initialize OHCI-1394 remote DMA early during boot for remote debugging |
|
pcilynx (but barely working) |
nosy |
capturing all FireWire traffic for protocol analysis using a PCILynx controller card |
|
Version 2 of the libraries behind video1394 and raw1394 are compatible with firewire-core
Applications
Digital Audio
The use of FireWire in audio interfaces is one of the biggest applications of Firewire since it is used in hundreds of amateur or professional studio's. Firewire is perfect for audio transport, for it's reliability, an example are the Firewire Focusrite Audio Interfaces which delivers high-standard FireWire audio interfaces and almost every device of this brand is full supported by Linux in the form of the FFADO project that provides drivers for many Firewire audio interfaces. As of Kernel 4.4 almost all audio firewire devices are supported directly by ALSA drivers and should "just work". More information....
Digital Video
You might know DV, it is a protocol used by quite a lot camcorders (from a few years back). A DV device works at 100 Mbps, so there might be a problem when a faster Firewire is daisy chained. More information....
Ethernet over FireWire
FireWire can be used to provide an Ethernet connection between two or more computers (peer-to-peer networking). RFC article 2734 and 3146 describe how to use IPv4 and IPv6 through this all-around technology. How to do this on Ubuntu and Debian can be found here
Although that FireWire is very reliable, the cable length is fair disadvantage and is why Gigabit Ethernet is becoming a competitor. Gigabit Ethernet is already used in many digital snakes and digital mixing consoles. The IEEE 1394a standard states that Firewire can be used over 100m UTP at 100Mbps wherefore Ethernet could become irrelevant again but this application of Firewire is not widely used.
Set-Top-Boxes
In the USA all recording set-top-boxes (DVRs) are required to have a functional FireWire port. Probably by DV.
Storage
FireWire is also used in external hard disks to provide high speed performance and reliability