Finnix for iPod
Finnix, the LiveCD for system administrators
Finnix 87.0 now includes a filesystem image for iPod support. The iPod line is an ARM-based embedded processor with 32MB of memory and various flash/hard drive configurations, from 1GB to 60GB. Finnix was ported to the iPod platform mostly as a "hey, wouldn't it be cool" exercise, and includes no menus, graphics (besides the console output), or input via the device itself. Communication with the Finnix installation is done exclusively through the ethernet emulation via Firewire or USB. A clickwheel-based keyboard input mode may be developed in the future. Finnix-iPod is distributed as a 20MB filesystem image. The Finnix-iPod project is based off of Debian's ARM port, but is pared down to have an extremely small footprint, and includes no kernel (instead, installation will be done using the iPod Linux Project's 2.4-based iPod kernel).
Finnix-iPod is a work in progress, and even though it carries the "87.0" version number, it is still rather beta. This release has been tested on the iPod Nano and 3G iPod, and may not work with others. Please don't yell if it doesn't work.
Theoretically, Finnix-iPod should work on any compatible ARM-based system, but none have been tested. If you manage to get Finnix-iPod installed on a non-iPod, I would love to hear from you!
To install Finnix-iPod, follow the instructions at the iPod Linux Project's wiki. You will be partitioning your iPod, extracting an modifying your bootloader, injecting a kernel, and installing a userland. However, instead of downloading and extracting the Podzilla image in the instructions, you must download the Finnix image, mount it loopback, and copy the contents of the filesystem to your iPod.
Once Finnix is up and running, it will try to grab an IP address via DHCP. With the iPod still connected to your computer, load either the eth1394 or usbnet modules, depending on if your iPod has Firewire or USB connectivity. With your new ethernet interface up, you may try bridging your regular ethernet interface and your Firewire/USB interface together, at which point Finnix will grab an IP address from your regular network. Obviously this is the more complicated solution, but would allow for computers other than the host computer to access the iPod.
If Finnix does not get a DHCP reply, it will assign itself the IP address 10.240.01.237, netmask 255.255.255.0. If you do not want to bridge your host computer, simply give the Firewire/USB interface on the host computer an IP address in the same range, say 10.240.01.100.
After networking is up, simply telnet to 10.240.01.237, log in as root (no password), and you will be greeted by a bash prompt.
Once in the iPod...
- First, if you are bridging the iPod's interface, you may want to set a password, especially if you are on a public network. Once a root password is set, the telnet prompt will require a password after you enter a username.
- Finnix scans the iPod's partition table for FAT32 and HFS partitions, and will mount the first such partition it finds as /iPod. Usually this is /dev/hda2.
- Play around! While it's not as big as the x86 or PowerPC CDs, the Finnix-iPod image includes a great number of utilities. Debian's apt is also included, so you can apt-get install your favorite software if it is not already present (but beware of partition size constraints).
- Finnix-iPod includes OpenSSH, but is not started by default. This is because the server key generation takes FOREVER. I tried to let it generate the server keys, but gave up after almost a full day of waiting. (I once did ssh-keygen on a 25MHz SparcStation 1+; it took over 36 hours. I bet the iPod would take even longer.) If you want SSH support, I would recommend copying the contents of /etc/ssh from another machine to the iPod, either by FTP, TFTP or wget. Once that happens, don't be surprised if it takes around a minute to get to a password prompt. After that, console-based typing is normal, but SCP/SFTP/rsync transfers are pretty slow.
- Finnix-on-Finnix support is not included with Finnix-iPod, mainly because UML/Xen support for the ARM processor doesn't exist.
The Future of Finnix Ports
Finnix is now available for the x86, PowerPC, UML, Xen, and now ARM platforms. I think this means I have to keep coming up with Finnix ports to new and exciting architectures. What about MIPS? I have an old SGI Challenge S and an SCSI CDROM drive lying around somewhere...