Connecting an iPod or iPod mini to Linux (tested with kernel 2.6.7)

This document should hopefully give you a decent idea of how to go about mounting your iPod (or iPod mini) under Linux. Doesn't include how to auto mounting or syncing, becuase there's better sources for that.

Note: I've tested this with an iPod mini and Debian GNU/Linux, so you'll notice some specifc references here and there. I'm sure its basically the same for all distro's and (recent) iPods though.

The iPod mini chooses it's filesystem type based on the first OS it is connected to. If Windows, your mini will be VFAT, if MacOS it will be HFS. I'm assuming we'll be usng a VFAT formatted iPod, although HFS support is not too different.

1) First off, compile your kernel with these options. Hard compiled or modules, its your choice. I personal only modularise anything that I won't absolutley be using every day.

(syntax largely borrowed from blah)

    * General Setup  -> Support for hot-pluggable devices - y
    * Device Drivers -> SCSI device support - y
    *                -> SCSI device support -> SCSI disk support - y (m = sd_mod)
    *                -> SCSI device support -> SCSI generic support - y
For FireWire: * -> IEEE1394 (FireWire) support - y * -> IEEE1394 (FireWire) support -> OHCI-1394 support - y * -> IEEE1394 (FireWire) support -> SBP-2 support - y
For USB: * -> USB support -> Support for Host-side USB - y * -> USB device filesystem - y * (for USB2 controllers) -> EHCI HCD support - y (you'll want UHCI or OHCI too) * (for non-x86 USB1.1 controllers) -> OHCI HCD support - y * (for Intel/VIA USB1.1 controllers) -> UHCI HCD support - y (m = uhci_hcd) * -> USB Mass Storage support - y (m = usb_storage)
For USB and FireWire: * -> Kernel automounter version 4 support - y * File Systems -> DOS/FAT/NT Filesystems - y (m = fat) * -> DOS/FAT/NT Filesystems -> VFAT fs support - y (m = vfat) * (for HFS) -> Miscelleneous Filesystem -> HFS filesystem

3) You need to install the following external packages:

hotplug and udev (http://linux-hotplug.sourceforge.net/)
or
apt-get install hotplug; apt-get install udev

At this point, after restarting with the new Kernel, you should see some activity when you plug in the iPod. Notably, /proc/bus/usb/devices will contain info about newly connected devices. If you have lsusb (apt-get install usbutils), you can see a human friendly version of that. You should also notice a new device pop up in /dev/sg2. Unfortunately, that is not a block device and is not mountable. Fortunatley, udev recongnises it as a SCSI disk (virtual of course) and maps it over to sda1 and sda2. mount -t vfat /dev/sda2 /mnt/ipod and you're set to go. Download you favourite iPod software and sync away!

Tip: apt-get install eject. Use that after unmounting and it'll unload USB modules for you and will make your iPod say its safe to unplug.

If you want to go the extra yard and make it all automagical, read blah. But I'm happy mounting and unmounting as I please.