O'Reilly logo

Linux Multimedia Hacks by Kyle Rankin

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Hack #42. Use an iPod with Linux

You don't need a Windows PC or a Mac to use an iPod.

Linux users' relationship with the iPod is a bit like a girl who can't get a date to the Sadie Hawkins dance—the users keep asking for a bit of attention, and Apple just pretends it doesn't hear. If this were a less hackish group of users, that would be the end of the story, but thanks to some clever programming, Linux users can use an iPod with Linux and this hack shows you how.

This is aimed at Linux purists—that is, people who don't want to have to use a Mac or Windows–based PC, nor Wine nor Windows software—to get going. (I fall into this category, not because of any religious convictions, but merely because Linux is all I have. For updates, visit http://pag.csail.mit.edu/~adonovan/hacks/ipod.html.)

Here's what you'll need if you want to use an iPod with your Linux box:

A Mac or Windows iPod (obviously)

The iPod is basically a FireWire hard disk with its own operating software stored in one partition. The two variants of the iPod are formatted with different filesystems: HFS+ in the case of the Mac and FAT32 in the case of Windows. Indeed, this is the only difference.

Ideally, you want to start with a Windows iPod. Linux has extremely limited support for the Apple HFS+ filesystem, and thus it is necessary to convert HFS+ iPods to FAT32, erasing the disk in the process. The iPod firmware is identical, though, so you must save this before you begin.

To do the conversion, don't mess around with Wine, ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required