Categories: Misc / DotNet / Java / Coder / Linux / PHP Ask - La ask - La Answer

New 40GB iPod & Linux

After too much delay (bite me, Airborne Express!) I finally received a shiny new 40GB iPod this morning from Apple. It really was a joy to open the box and open all the extras: the earbuds, remote, leather slip case, black drawstring bag, dock, cables, adaptor... so many little things Apple adds that make spending money a pleasant experience. Anyway, enough of the magic Kool-Aid, onto business!

The truth is, I do not have (or particularly want) a Mac. I've had an iBook (900MHz white w/ combo drive) but I sold it. So I'm using my PC ("lol stupid PC user lol") but like most of you folks here, I despise Windows with every ounce of my being. I'm a Linux zealot, through and through Free Software/Open Source advocate to the core. So I was delighted to see that the iPod has no problems on my system.

Since all new iPods are "Mac" (HFS+) out of the box, I had to do something about that. I see that Linux 2.4.22 contains the hfsplus.o driver, but I'm stuck using 2.4.19 for reasons beyond my control. So I'm going to have to convert this bad boy to FAT32. For the sake of space, I'll omit the steps in setting up the IEEE1394 drivers. I already had that ready from when I used a 5GB iPod on this box. So when I plugged the 40GB into the dock, and the dock into the firewire port, the kernel detected the device perfectly as /dev/sda. I used dd to copy the first 32MB of sda2 to a file that serves as a backup copy of the firmware.

I don't really like calling it firmware, since it's just data on a hard drive, but, eh. Then I used fdisk to create 2 new partitions on the device, the first was the 40MB partition for the "firmware" and the rest would be for the FAT32 filesystem. I set the "type" of sda1 to '0' in fdisk, which is "undeclared." Then I set the type of sda2 to "b" which is the label ID for FAT32 partitions. 'w' to write changes to disc, then use dd again to put that 32MB firmware file onto newly created sda1. Reboot the iPod and pray... and

YES! The menu came up! But we aren't in the clear yet. Next step, mkfs.vfat on /dev/sda2 That finishes with no problems. Reboot the iPod again, so it can create the iPod_Control directory and others on sda2... and... when the menu appears again... mount /dev/sda2 /mnt/ipod -t vfat

Success! I look in /mnt/ipod and see all the files on my newly converted FAT32 40GB iPod! No Windows necessary ;)

Then I just use WINE to fire up EphPod (Hey, I can be a GNU zealot and use EphPod, right??) and transfer about 10GB of music. Over firewire, it blazes. Then close EphPod, umount the iPod, and take it for a test listen. Bliss. Sweet, sweet music.

So for any Linux nuts out there, don't worry about compatability; it's a quick and painless process to get your iPod fully functional under Linux.

Next challenge: create a bootable partition on the iPod with a kernel and some drivers, to use as a Linux recovery boot device! Mwahaha...

Random Trivia:

-Geez, this thing is TINY! Almost too small to even use! I love it.
-The backlight is blue. Not just a tint of blue. It's very, very, blue. And incredibly gorgeous beside the red lit buttons.
-The clip on the remote is dumb. It's hard to use it without hitting a button, and vice versa.
-Anyone else think the slip case is a tight fit?
[3480 byte] By [gregday] at [2007-11-9 13:58:52]
# 1 Re: New 40GB iPod & Linux
You dont like the red buttons?why?
ShaggyIan4 at 2007-11-15 15:11:34 >
# 2 Re: New 40GB iPod & Linux
When did I say I didn't like the red buttons? Did you infer from my saying the backlight looks good beside them, that some inherently ugliness makes the backlight look nicer by contrast?

On the contrary! I love the red buttons. I love the blue backlight. They add just the right amount of spice to a piece that would be otherwise overwhelmingly snow white. The backlight is beautiful. The red buttons are beautiful, and I meant that together they look perfect.
gregday at 2007-11-15 15:12:34 >
# 3 Re: New 40GB iPod & Linux
Oh sorry i must had read it wronge.
ShaggyIan4 at 2007-11-15 15:13:44 >
[an error occurred while processing this directive]
[an error occurred while processing this directive]