Linux Step By Steps

Setting up an Ipod on Linux
Written by Tom Wilson on 16-January-2005.

Here is how I went about setting up my ipod on Linux. This is my take on the
instructions I found at

Done on Libranet 2.8.1 mixed branch system.

1. Formatting. Newer ipods are "mac and pc ready". What the really means is that it is formatted for HFS+ out of the box. The software installed on windoze reformats it the first time it is hooked up to a pc. I recommend formatting it on a windoze pc if you have access to one. It is just easier.  There are risks invovled in doing the conversion on linux.  You can also attempt to use it with the HFS+. Linux is limited with that file system and is risky as well. Try both formatting for fat32 or using HFS+ on linux at your own risk. Here is a website that has instructions for it.

2. Firewire or USB. If you are going to use firewire, make sure you have the IEEE 1394 drivers either compiled in the kernel or as modules if you are going to use firewire. Add

modprobe ieee1394
modprobe ohci1394
modprobe sbp

to rc.local if you are going to use them as modules to load at boot.

I use the USB to connect mine. The only modules I needed were scsi_mod and usb-storage. scsi_mod was already loaded and usb-storage was loaded automagically when the ipod was plugged in. YMMV. Plug the ipod into the usb port and do 'tail /var/log/messages'

Jan 16 11:05:16 obx kernel: scsi1 : SCSI emulation for USB Mass Storage devices
Jan 16 11:05:16 obx kernel: host/usb-uhci.c: interrupt, status 3, frame# 772
Jan 16 11:05:16 obx kernel: Vendor: Apple Model: iPod Rev: 1.63
Jan 16 11:05:16 obx kernel: Type: Direct-Access ANSI SCSI revision: 02
Jan 16 11:05:16 obx kernel: USB Mass Storage support registered.
Jan 16 11:06:28 obx kernel: Attached scsi removable disk sda at scsi1, channel 0, id 0, lun 0
Jan 16 11:06:28 obx kernel: SCSI device sda: 39063024 512-byte hdwr sectors (20000 MB)
Jan 16 11:06:28 obx kernel: host/usb-uhci.c: interrupt, status 3, frame# 1596
Jan 16 11:06:28 obx kernel: sda: Write Protect is off
Jan 16 11:06:31 obx kernel: sda: sda1 sda2

it is found as sda.

Do 'fdisk /dev/sda' to find out which partition has the data.

root@obx:/home/tom# fdisk /dev/sda

Command (m for help): p

Disk /dev/sda: 20.0 GB, 20000268288 bytes
255 heads, 63 sectors/track, 2431 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 1 5 40131 0 Empty
/dev/sda2 * 6 2431 19486845 b Win95 FAT32

The partition is /dev/sda2

3. Create Directory and mount point. 'mkdir /mnt/ipod' and
'joe /etc/fstab' (or your preferred editor) and add

/dev/sda2 /mnt/ipod vfat defaults,user,noauto 0 0

4. Mount 'er up. 'mount /mnt/ipod' and check out the filesystem 'ls /mnt/ipod'

root@obx:/home/tom# ls /mnt/ipod
Calendars Contacts Notes iPod_Control

iPod_Control is the "main" directory were the db and system info is stored.  Browse around and check it out if you wish.

5. Gtkpod. I use Gtkpod to access and add/remove files to the ipod. It works well. There may be other front ends for it but I didn't look around for any.

'apt-get install gtkpod'

or your systems package manager to install it.

6. Fire up gtkpod. Make sure you have your ipod plugged in and mounted then 'gtkpod &'

and click the "Read" button to load the info from the ipod.

7. Add and delete songs as you see fit. When finished you have to use File->syncronize i_tunesdb to get what you add/deleted jiving with the ipod.  Exit gtkpod, unmount and disconnect the ipod and start enjoying your music.  Note: My ipod always displays the "do not disconnect" message while plugged in. Just pull the sucker out when done and unmounted.