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:

    inet:unknown:/bin/inetd
    pz:unknown:/bin/podzilla

  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.

References

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

Published by Reid Burke

Hi, I'm @reid. I work on developer tools at Yahoo. I serve at Awakening Church with a focus on technology. I also enjoy riding motorcycles.

Join the Conversation

67 Comments

  1. Never mind, I’m such a moron 🙂
    I went into Disk Mode and used the Apple restore utility.

    Thanks anyway.

  2. hmm, everything works fine for me except i can’t switch to the apple OS by rebooting. It just boots linux no matter if I hold down Rewind or not. I can get into disk mode and eject it from the finder and get to the apple os that way but on booting it always gets into linux. I chose the apple os as default but that doesn’t seem to matter.

    I use a 4 gb 2G mini. Apple FW 1.4 and Nightly linux kernel and podzilla from 2005-12-13

    I think i’m going to restore the ipod if I don’t find a solution to this.

  3. Strange stuff… after a zillion reboots it seems to have fixed itself and boots as it should in the desired OS’s… I guess you need to expect unusual behavior with such unsupported procedures.

  4. hey reid,
    i have a question for you. i only have a 2.0GB ipod nano and i’m using windows as my OS and i want to get ipod linux installed on my nano. can you help me out?
    a lot of people say that you can’t get ipod linux on nano but i swa a video clip of an ipod nano playing idoom.. which means that it had to have had ipod linux.

    jnrjules@yahoo.com

  5. hi shino i have the sameish problem as you did. it shows the apple logo when i reboot and if there’s any sensitivity to the wheel even if i scroll it goes linux but if i leave it alone it’s just the apple logo and that’s it. i tried draining the battery but no dice. when i got linux on it i replaced linux.bin with the nightly kernal from 2006-01-13 and i chose it to go to apple’s firmware on start up i also replced the start.bin file in the root of my ipod with the one in the installer (4g modded)

    plz help me. all i need is a program to update linux or to remove linux. i tried disk mode but it said “ok to disconnect” with a big check sign on top of it.

  6. great guide… eventhough i’ve tryed this a billion times it keeps sayin’ “pz respawning too fast” and that text console….. I have a 2G ipod mini used USB and Mac OSX.

  7. berge: Have you tried a different podzilla/kernel combonation?

    baybled: Amen.

    micheal: I don’t understand your question…

    hawk: I’m not too sure. Last I heard, iPL for the nano was experimental and the movie you saw was most likely an unstable dev version.

  8. im sorry, im not good at this kind of stuff, but could some1 make this a little simpler? i understand some of the stuff but im not great with macs. i dont know how to make a directory and terminal is almost impossible for me. SOMEBODY HELP ME!! ;(

  9. if any one wants to play OGG files on ipod mini 2g or mini 1g they can try rockbox at http://www.rockbox.org it is cool music player dedicated O.S. and installation file size is extremly small ,installation time is small too .

  10. I’ve actually tried installing Rockbox a week or two ago on my video iPod, but I couldn’t make sense of the documentation. I probably should wait awhile longer given support for the iPod is new… and because of that such expected things like being able to read the iTunesDB doesn’t work yet. I can’t wait to see where the Rockbox project goes with the iPod… there is a lot of potential.

  11. Hey, how ya doing pal i’ve just have installed linux on mi ipod mini 2g, but i just have a doubt, you know how to install apps for it? i just turn it on on Linux and theres noting to do but to adjust some settings. Some advice would be good, at least some procedure for the apps you have get working.

Leave a comment

Your email address will not be published. Required fields are marked *