Image of the glider from the Game of Life by John Conway
Skip to content

Firewire Networking In Linux

Today, I had the need to transfer a great deal of data from my wifes old iBook to my T61. As I sat down, I plugged in my USB 2.0 hard drive, and begin transferring the data. 3 minutes later, it's finished. Now, to plug it in to my T61 and repeat the process. This is taking too long. There has to be a faster solution. First, I thought about wireless. Both of our laptops have 802.11g, but that's only 54 Mbps, vs 480 Mbps with USB 2.0. That would take substantially longer. We both have 10/100 NIC cards, so 100 Mbps is better, but no where near USB 2.0. Then I recognize the Firewire ports, and remember reading years ago that you could network Firewire devices. At 400 Mbps, this seems to be a good solution if I can ad hoc the laptops.

After a Bit O' Google, I find the answer. First I needed to load the eth1394 driver into the kernel (and ieee1394 if not already):

aaron@kratos:~ 6673 % sudo modprobe eth1394
aaron@kratos:~ 6674 % lsmod | grep 1394    
eth1394                22024  0 
ohci1394               36532  0 
ieee1394              106968  3 eth1394,sbp2,ohci1394

Now, I have a new eth1 device, of which I can set an address to.

aaron@kratos:~ 6675 % ip addr show eth1
6: eth1:  mtu 1500 qdisc noop qlen 1000
    link/ieee1394 00:06:1b:03:2a:11:22:51 brd ff:ff:ff:ff:ff:ff:ff:ff
aaron@kratos:~ 6676 % sudo ifconfig eth1 netmask up
aaron@kratos:~ 6677 % ip addr show eth1
6: eth1:  mtu 1500 qdisc pfifo_fast qlen 1000
    link/ieee1394 00:06:1b:03:2a:11:22:51 brd ff:ff:ff:ff:ff:ff:ff:ff
    inet brd scope global eth1

Now, to do the same on my wife's iBook. Because she's running Mac OS X, I'm not too terribly familiar with the tools on the command line, so, I'll pop into the GUI. First, I need to open up System Preferences and click on Network. Then listed is Firewire Networking. I'll click that and setup my connection manually, giving it the IP address of with the same netmask of Now to test the connection from my T61:

aaron@kratos:~ 6678 % ping -c 2
PING ( 56(84) bytes of data.
64 bytes from icmp_seq=1 ttl=64 time=0.492 ms
64 bytes from icmp_seq=2 ttl=64 time=0.476 ms

--- ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.476/0.484/0.492/0.008 ms

Success! Now, to transfer my file. I setup an SSH server on my T61 listening on all interfaces, so, from the terminal on the iBook, I could issue the following command:

athena:~ aaron$ scp ubuntu-8.04-dvd-i386.iso
aaron@'s password:
ubuntu-8.04-dvd-i386.iso                      100% 3795MB  25.5MB/s   02:29

While definitely better than copying it from iBook to external hard drive, than external hard drive to T61, I was disappointed in the performance. Only 25.5MBps? I thought ieee1394a had 400Mbps, or 50MBps theoretical max. And I'm only getting half? I hope it's compression that's slowing it down. I may spend some time digging deeper to see if I can get a faster speed.

At any event, the file was transferred only once, and I was able to take advantage of the fastest speed I had available- networking with Firewire.

{ 17 } Comments