iPodLinux on 2G iPod Mini

Hackaday iPod

Update: (2005-08-17 5:05 pm) This story has made news on Hackaday!

WARNING: This procedure is unsupported by Apple, the iPodLinux project, or myself. I, Reid Burke, can not accept any responsibility for any damage this procedure may cause to your iPod, your computer, or your sanity. I hosed my firmware the first time I tried this (used the wrong bootloader when testing this procedure), and although I recovered my iPod, you lose all of your music and settings on the iPod. That being said, please backup all of your music before continuing!

Thanks ImageShack!Thanks ImageShack!Thanks ImageShack!

I recently was able to install Linux on my second-generation iPod mini. Although it still has some known issues it works well for me. It really wasn’t that hard to do, but I had to refer though about 5 different iPodLinux wiki pages and do a few Google searches to fill in the missing pieces. Because of all of the different information it was easy to miss something and screw up, so I decided to write a howto to make it easier on those who are interested in getting Linux on their iPods. Nevertheless, I’d recommend having some experience with the command line before attempting to install it. If you’re interested in getting Linux to work on your iPod mini, then here’s how under Mac OS X:

  1. The make_fw firmware creation program and the loader.bin boot loader included in the official iPodLinux boot loader package does not work with iPod mini. Support for the mini has only been recently introduced. For your convenience I have compiled the latest version (as of August 15th, 2005) of make_fw and loader.bin and am providing the binaries to download. You can obtain these files here. Create a iPodLinux working directory for iPodLinux-related files and extract the download into that folder.
  2. Now you’ll need to download the iPodLinux kernel and podzilla, the GUI for iPodLinux. The release versions of these files won’t work with iPod mini, so we will need to download a nightly CVS build of both files. Simply visit the iPodLinux nightly builds download area and download the latest compressed kernel and podzilla binary. Extract these files into the iPodLinux directory you created eariler.
  3. You’ll also need to download the official kernel package to obtain the necessary libraries needed by the kernel. Download the latest kernel release from SourceForge.net’s download area and extract it anywhere. You should get a folder named “uclinux-2.4.24-ipod2” (the current release as of August 15th, 2005). Drag the lib folder inside of that folder into your iPodLinux working folder.
  4. Finally, you’ll need to download the base filesystem for iPodLinux, located at SourceForge.net’s download area. Don’t extract the downloaded file, simply place it into your iPodLinux directory. You should now have these items in that directory: the lib folder, ipod_fs_mmddyy.tar.gz make_fw, loader.bin, yyyy-mm-dd-kernel.bin, and yyyy-mm-dd-podzilla.
  5. Connect your iPod to your computer. You’ll need to discover the device name, so open Terminal and run the mount command:

    $ mount
    /dev/disk1s3 on /Volumes/iPod (local, nodev, nosuid, journaled)

    The /dev/disk1s3 portion indicates the iPod is the first SCSI device and so will be visible as /dev/disk1, if on your system you see /dev/disk2s3 then your iPod would be using device /dev/disk2. In the above example the volume is mounted as /Volumes/iPod. The iPod portion will be the name of your iPod.

    The following example commands will use disk1 as the device for the iPod and /Volumes/iPod for the mount point, please replace these with the corrects values for you configuration.

  6. Before continuing, you should create a backup of the Apple OS. The backup file is a complete backup of the operating system partition on the iPod and includes the Apple iPod operating system (this file is about 40MB and can be compressed once the installation process is complete). To create a backup file, open Terminal, cd into your iPodLinux directory, have your iPod connected and run:

    $ dd if=/dev/disk1s2 of=ipod_os_partition_backup

    If you need to restore the backup for any reason simply run the following command:

    $ dd if=ipod_os_partition_backup of=/dev/disk1s2

    Note: If you want to upgrade the Apple firmware then you should firstly restore the iPod operating system backup using the above command.

    It is also possible to completely restore your iPod to its factory state by using the restore program from Apple. This will restore the original operating system to your iPod. Unfortunately this will mean any settings or music will have to be copied back to your iPod. This is useful if anything goes wrong while installing Linux into your iPod. For more information, see “When something goes wrong…” later on this page.

  7. Now you’re ready to install iPodLinux into your iPod. In Terminal, make sure you’re in your iPodLinux directory. Now extract the Apple OS from the firmware image.

    $ ./make_fw -3 -o apple_os.bin -e 0 ipod_os_partition_backup

  8. Create a new firmware image containing both Linux and the Apple OS. (Remember to replace yyyy-mm-dd-kernel.bin with the appropiate filename of your kernel.)
    • To boot into Linux by default, and Apple OS by holding down Rewind, use this command:

      $ ./make_fw -3 -o my_sw.bin -l yyyy-mm-dd-kernel.bin -i apple_os.bin loader.bin

    • To boot into Apple OS by default, and Linux by holding down Rewind, use this command:

      $ ./make_fw -3 -o my_sw.bin -i apple_os.bin -l yyyy-mm-dd-kernel.bin loader.bin

  9. Write the new kernel image (about 4-5 MB) to your iPod.
    $ dd if=my_sw.bin of=/dev/disk1s2
  10. Copy the kernel libraries to your iPod.
    $ cp -r lib /Volumes/iPod
  11. Copy the base filesystem to your iPod.
    $ tar xzf ipod_fs_040403.tar.gz -C /Volumes/iPod
  12. Copy the nightly podzilla binary to your iPod.
    $ cp yyyy-mm-dd-podzilla /Volumes/iPod/sbin/podzilla
    $ chmod +x /Volumes/iPod/sbin/podzilla
  13. The included /etc/rc and /etc/inittab files need to be edited for greater stability and for the clock to work.Open up an editor and replace /Volumes/iPod/etc/rc with:

    hostname ipod
    mount -t proc proc /proc
    ln -s /dev/pty/m0 /dev/ptyp0
    ln -s /dev/pty/m1 /dev/ptyp1
    ln -s /dev/ide/host0/bus0/target0/lun0/disc /dev/hda
    ln -s /dev/ide/host0/bus0/target0/lun0/part3 /dev/hda3
    ln -s /dev/tts/1 /dev/ttyS1
    mknod /dev/ttyp0 c 3 0
    mknod /dev/ttyp1 c 3 0
    mount -o remount,rw /dev/hda3 /
    hdparm -S 3 /dev/hda
    hwclock --hctosys

    Now open /Volumes/iPod/etc/inittab and replace it with:


  14. You’re done! Eject your iPod and it should automatically restart. Depending on how you installed your firmware eariler, you may need to press Rewind while the iPod reboots to get into Linux (or back into the Apple OS).

Where to go from here…

Discover podzilla! You’ll be suprised what it does right “out-of-the-box”. If you’re interested in more functionality, check out the iPL 2G Mini page for more advanced information.

When something goes wrong…

See the iPodLinux troubleshooting FAQ for help if something goes wrong. They do a good job of explainig what you need to do for a wide range of iPodLinux problems.

Again, running iPodLinux on any iPod mini is not supported whatsoever! If you choose to install Linux and you encounter something not working right, by all means don’t ask for support on the iPL forums and waste the time of support people… you’re on your own with unsupported installs like this.


Giving credit where credit is due, alot of material on this page was obtained from the follwing wikiPodLinux pages:

Band Camp, The Sounds of Music

Sorry for a lack of updates lately, I’ve been so busy with band, work, etc. It’s crazy. Today was the first day of full band camp, from 8 a.m. to 5 p.m. I’m very tired.

I think I might get to go to Six Flags and Nashville before school starts… can’t wait! However, Gimme 5‘s last show with Grace Mitchell on keys will be on the same day as when I leave for Nashville… too bad. She’s leaving for college and her last show will be this weekend at Booby’s. Sad to see her go. If you’ll be in town be sure to chek them out at 6 p.m. this Saturday at Booby’s. For more info, see the shows page on their website.

The Sounds of Music
I’ve been working on recovering thesoundsofmusic.com… Steven’s old website which was launched in April of 2004. For awhile the site was very popular and got several posts, then it slowly crawled to a halt, the server was defaced, and it’s been sitting there in a crippled state since December. Well now it’s restored, and I suggest you go and check it out… espicially if you’re into music at all and live in Southern Illinois (but anyone is welcome). Not only are there discussion boards but there’s a nice picture gallery full of pictures from concerts and local bands. Anyone can add pictures too, so if you want to add to the collection, do it!

Spread the word! Steven and I hope you enjoy the new tSoM site… if you don’t, just give us some suggestions on how to make it better. We are open to (nearly) anything!


I got the e815 yesterday. It’s a awesome phone. It plays MP3 music from my computer which I can use as ringtones and syncs phonebook and calendar info with my computer (native iSync support), all wirelessly with the help of a few software changes to enable Bluetooth OBEX (file transfer) and DUN (high-speed internet on my laptop anywhere). Also, I can now take full South Park episodes with me… 😀 I also now no longer have to pay 25 cents to send a picture… so I will be updating my new mobile gallery often. Expect to see photos and movies show up there soon… and comment on them!

Watch Live 8!

If you aren’t already, turn on your TV to MTV or go to AOLmusic.com and check out the Live 8 concerts. They are awesome and it’s for a great cause. (For the absolute latest and to watch any concert city you want see AOL’s site, MTV TV seems to be lagging 5 minutes or so and cuts some stuff out…)

Update: Pink Floyd delivered an unbelievable performance in London… I have always been a fan and watching them live (even on TV) was incredible.

Back from Hilton Head Island

This week has been pretty good, I was at Hilton Head Island in South Carolina. It took a day of driving to Atlanta, picked up my grandma’s brother and then another day to the island. The weather was not all that great, it was partly cloudy or pouring rain for most of the week except the first and last days. I did try to make the most out of the sunny days by going to the beach and we found enough to do while it weather wasn’t so good.

We stayed at a resort in a condo timeshare… the place wasn’t great, the shower was messed up, the faucets were clogged up. It was alright besides those things… we were very close to the beach and had bicycles to ride to the beach and around the island.

On Thursday we had a woman frantically knock on our door looking for her lost son. I found myself spending the next hour looking for him. My stepdad found him after about fifteen minutes, but we had to talk to the cops and wait for the lost kid’s dad, who went looking for him, to come back. It did feel good to help her out and it was a odd unexpected addition to the evening.

Today we left early in the morning and dropped off my grandma’s brother off at Atlanta again, then drove up toward home. We had hoped to reach Nashville or even further, but but we had setbacks from holiday traffic jams to burning semis. Yes, at the Souther Carolina-Georgia border a semi caught fire and we were stuck on the highway for a long time… people were playing football on the median to pass time. But anyway, we didn’t get far enough so we stopped in Chatoonaga for the night.

I took a few pictures while I was there and will post some when I get a chance to when I get home. We should get home tomorrow afternoon, but you never know.

I am tired and Jessie is crying in the hotel room now… so until next time…


I have worked at SchoolCenter for 90 days now and I finally get a DSL discount! Whoo-hoo! Fast internet! 🙂

I go on vacation to Hilton Head Island later today at 7 a.m. According to forecast it’ll be raining there all week, but I hope that report is a bit inaccurate. I am bringing along a laptop and a PS one, so I should be entertained if I am forced to stay inside and on the car ride up. Don’t know if there is WiFi there so I may not post updates & pictures but I’ll be back July 1.

I’d better get to sleep, I have to be up at 5 a.m. 🙁

In Loving Memory

God saw you getting tired
and a cure was not to be.
So He put His arms around you
and whispered “Come to Me”. With tearful
eyes we watched you,
And saw you pass away.
Although we love you dearly,
We could not make you stay.
A Golden Heart stopped
Beating, hard working hands at rest,
God broke our Hearts
to prove to us,
He only takes the best.

In loving memory of my grandmother, Wilma Burke, who touched so many lives through her friendliness and devotion to spreading God’s love through motorcycling. She has been reunited with her husband in heaven on March 9, 2005. You will always be with us in your hearts, and we know that we will see you again someday.

Busy Weekend

On Friday I stayed after school and walked to the mall to eat before going back to school to help with the Bandomonium 2 concert. It was unbelievable, there were more than 300 people there and the performances were top notch. Before it started Steven’s family brought in all of these Gimme 5 band t-shirts with the design I made on them, but not only that, every one of them was wearing a personalized version of it. They sold alot of the t-shirts but many of people walked in with them already on. It was awesome and they made alot of money from it. Most of the show I was either selling tickets and shirts or upstairs recording the show. The control room upstairs was a great view, my friends came up there and we had a good time. I got paid some too which is always nice. I must have gotten home about 1:30 and went to bed at 3.

The next day I woke up at 5 for the MCCGA drumline contest. We had to be at school at 6:00 in the morning. I was never so tired in my life. I was completely out of it that morning but I managed to get our show down to the point were it was performance capable. After a long bus ride up to Eureka we had little time to do anything… we had to get dressed on the bus, immediately ran through the show once when we got there and a few minutes later we performed it. It wasn’t all that great of a performance, to be honest, and we only performed 3 of the 4 music pieces because we just didn’t learn all of them. If I remember correctly we received a 61.5, outscoring only one other band, which was a middle school. Although there were no awards and the contest was more of a means to tell how well your line is performing relative to its capability, it wasn’t all that great of a score. We could of done better but we expected to get a much lower score. I got back at 4 something and didn’t get home until 6:30 after running errands all over the place. I think I went to sleep at about 9 and didn’t wake up until 12:30 in the afternoon.

On Sunday my grandma’s best friend’s son Joe who lives in China came to my grandma’s house. I went over there and got a perspective on how live is like as a former person living in the U.S. living in China. It was actually interesting to listen to. I’ll probably see him later this week as he wanted me to fix his computer. Apparently, one of my grandma’s friends actually reads the legal classifieds and saw that I was in business and referred me to Joe. Strange, but I could always use the money.

Today I talked to my English teacher after realizing I still haven’t done a paper due last week. She was very nice about it and gave me a prompt and advice on how to complete the essay. Lucky for me she didn’t grade our papers yet so if I do it by tomorrow I’ll get a passing grade. When I rewrite it it’ll be boosted to a C or better, so I’m happy that I won’t get a F on it. Another thing Joe was talking about is how important it is for academics and everything and I decided that I should try to focus more and take school more seriously from now on. Starting with this paper.

Final words: my iPod ships today and there is only 9 days, 13 hours and 58 minutes until I’m 16. 😀