iPods should be well integrated and easy to use with Kubuntu.


Apple has been reporting sales of over 5 million iPod units per quarter. With such popularity any OS that doesn't have good iPod support will suffer.

Use cases

1. User plugs in iPod

2. User double-clicks on ipod

3. User right-clicks on ipod

4. User right-clicks on audio file

5. User right-clicks on an audio CD icon


To achieve the above use cases the following packages may need modification: 1. udev 2. HAL 3. kdebase-kio-plugins 4. kubuntu-default-settings



1. Add the following rule to existing udev rules:

BUS="scsi", SYSFS{model}="iPod            ", KERNEL="sd*", NAME="%k", SYMLINK="ipod"

This will cause any ipod to automatically have a symlink to their physical device at /dev/ipod, and means that any further code or settings can refer to this device rather than e.g. /dev/sda2 which will be different for each system.

2. Add the following rule to the /etc/sudoers file:

ALL     ALL= NOPASSWD: /usr/bin/eject /dev/ipod

As the ipod needs to be ejected with root permissions, this rule will allow a context menu to eject the ipod without needing to prompt the user for a password.

3. HAL rules should be developed to mimic the behaviour of the following /etc/fstab entry:

/dev/ipod       /mnt/ipod       vfat    sync,nodev,nosuid,user,rw,noauto      00

This mounts the ipod at /mnt/ipod, which is where ipodslave ("ipod:/") looks for ipods. The fstab approach is unworkable because it requires the user to choose between "vfat" and "hfs" filesystems. A properly constructed HAL rule will make this not necessary. A properly created HAL configuration will also prevent the firmware partition of the iPod from ever being mounted. A good start on this is

Update: The newest snapshot of ipodslave seems to not mind if the ipod is mounted at /media/iPod. In this case the current Breezy hal setup is sufficient to get the iPod mounted correctly. Still to test where the newest versions of Amarok require the iPod to reside, as they are now changing to use libgpod to handle ipods.

4. The default version of the kdebase/kioslave/media files (in package kdebase-kio-plugins) should be overwritten by a patched version. This version contains the following changes:

    medium->setIconName("ipod" + MOUNT_ICON_SUFFIX);
    if (QString(libhal_drive_get_model(halDrive)) == "iPod")
        mimeType = "media/ipod" + MOUNT_SUFFIX;

This is causing an ipod to be recognized as distinct from any other portable audio player, and assigned it's own mimetype.

Update: Doing this exposes a bug in the ipodslave. Under normal circumstances the base ioslave class will assume any UDS entry without a mimetype specified will be an inode/directory, wheras the forwarding ioslave (used in media:/) does not. This causes all directories in the ipodslave to appear as unknown mimetypes. I have sent a fix for this to the ipodslave author. Update 2: The latest snapshot release of ipodslave contains this fix. Available at

[Desktop Entry]
Comment=Mounted iPod

5. Context menu entries need to be created to assess use cases 3, 4, 5 (see A context menu to remove an ipod is:

[Desktop Entry]

[Desktop Action MediaSafelyRemoveIpod]
Name=Safely Remove
Exec=kio_media_mounthelper -s %u && sleep 1 && sudo eject ipod

6. Package or meta-package needs to be created to contain all this, plus the existing ipodslave package.


See "Implementation"

Data preservation and migration


Outstanding issues

Neither AAC or MP3 codecs are fully free, these are therefore in the Universe repository. All other ipod support needs to reside there also.

BoF agenda and discussion

I (ltmon) have followed this implementation up until step 5 so far with some success, but also with some bugs. This was done on Breezy with KDE 3.5 beta 2 and a 4G ipod photo. I'll expand this page as I find out more.


KubuntuIpod (last edited 2008-08-06 16:40:41 by localhost)