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 10.19.84.1 netmask 255.255.255.0 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 10.19.84.1/24 brd 10.19.84.255 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 10.19.84.2 with the same netmask of 255.255.255.0. Now to test the connection from my T61:
aaron@kratos:~ 6678 % ping -c 2 10.19.84.2 PING 10.19.84.2 (10.19.84.1) 56(84) bytes of data. 64 bytes from 10.19.84.2: icmp_seq=1 ttl=64 time=0.492 ms 64 bytes from 10.19.84.2: icmp_seq=2 ttl=64 time=0.476 ms --- 10.19.84.2 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 10.19.84.1:~ -snip- email@example.com'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.