Enable support for 6th Gen iPods in Ubuntu

iPodWhen Apple released the latest generation of iPods, the company also caused a great deal of pain for Linux users. While Linux developers had an easy time getting every other iPod in the past to work with Linux distributions like Ubuntu and SUSE, the latest iPods are different. In their infinite wisdom, Apple redesigned the iPod music database in such a way that it is encrypted with a hash key. Not only does this make it difficult to develop third party software that can access that database, but if you try to sync your 6th gen iPod with Ubuntu 7.10, it will destroy the database, making your music unplayable on the iPod (but still accessible in disk mode).

Of course, the Linux community being what it was, it took just a few days before a highly technical solution started making the rounds. But how does Joe Six-pack use this to sync his shiny new iPod? Download Squad delivers. Read on for step by step instructions!First of all, we are going to assume you are running Ubuntu. If you are using a different distro, just do a web search for libgpod0.6.0

Thanks to the good folks in the Ubuntu community, there is a mind-blowingly easy solution to add support for all iPods to the system. Programs like Gtkpod and Rhytmbox call on the gpod library to interact with your iPod, so all you have to do is get the latest version. Simply download this deb package, and run it with Gdebi, which should be the default choice in Firefox. Then, if you don’t have it already, use the Synaptic package manager to download Gtkpod, which we found to be the more reliable choice for working with new iPods.

Chances are, everything will be working fine from this point, as long as you select the right model when you first use your iPod with Gtkpod. Just in case you have problems though, here’s one last tip, if for some reason gpod doesn’t do it all automatically for you. The hash key is based on the iPod’s unique “Firewire Number”. This number can be discovered very easily by typing “sudo lsusb -v | grep -i Serial” in the Terminal, without the quotes of course. You should see something like this:

iSerial 3 000A27001AF2BE9D
iSerial 0
iSerial 0
iSerial 0
iSerial 1 0000:00:1d.0

The number you are looking for is the 16 digit code. This will be unique to your device. Next, run sudo gedit /mnt/ipod/iPod_Control/Device/SysInfo . You will need to customize this path to wherever your iPod is mounted, usually it will be /media/ipodname/. Paste this into the file:

FirewireGuid: 0xffffffffffffffff

Change the fffffffff part to your Firewire number. Try loading gtkpod again, and see how it goes. If you have any problems, please feel free to discuss it in the comments field of this article.