Mandelbrot set in iPodLinux
|Programmed in||C, assembly language|
|Latest stable release||2.3 (x86) / January 7, 2007|
|Supported platforms||see Compatibility|
|Kernel type||Monolithic (modified µClinux)|
iPodLinux is a µClinux-based Linux distribution designed specifically to run on Apple Inc.'s iPod. When the iPodLinux kernel is booted it takes the place of Apple's iPod operating system and automatically loads Podzilla, an alternative GUI and launcher for a number of additional included programs such as a video player, an image viewer, a command line shell, games, emulators for video game consoles, programming demos, and other experimental or occasionally unfinished software.
As of 2011, the project has been inactive for several years, and its website is no longer maintained. Further development of free and open source software for iPods have continued with the Rockbox Project and freemyipod, which have largely supplanted iPodLinux. Some third party installers are still available at http://aqua-gero.com/miche/.
Basic structure 
iPodLinux in essence consists of a Linux kernel built from µClinux sources using the uClibc C standard library with driver code for iPod components (or reverse engineered drivers where available). It includes userland programs from µClinux and/or BusyBox, a UNIX-style file system (which can be created within HFS+ formatted iPods, or an ext2 partition on FAT32 formatted iPod), and the Podzilla GUI (and its modules). Apple's proprietary iPod OS in contrast uses an invisible boot loader and is based on an ARM processor kernel originally written by Pixo, and the iPod Miller Columns browser program, a GUI written by Apple and Pixo using the Pixo application framework, and other firmware and component drivers written from manufacturer's reference code to support the standard behavior Apple wanted the iPod to have.
Besides the kernel, iPodLinux features as a primary component podzilla and podzilla2, applications which provide:
- An iPod-like user interface
- Video playback with sound
- Support for AAC, MP3 and basic OGG playback (4G & 5G Music Player Daemon malfunctions, but can be fixed).
- Many games, including TuxChess, Bluecube (Tetris clone), Chopper, StepMania (a Dance Dance Revolution clone) and more.
- Recording through audio jack at much higher quality than Apple's firmware
- Ability to play the games Doom and Doom II (and presumably any Doom Total Conversion; Chex Quest for instance)
- Color scheme support
- Ability to run many emulators, such as iBoy (Nintendo Game Boy Emulator), iNES (Nintendo Entertainment System Emulator), iDarcNES (port of the multiple system emulator DarcNES), iMAME (port of Multiple Arcade Machine Emulator), and iGPSP (Game Boy Advance emulator).
The bootloader for the 4th generation iPod was extracted by Nils Schneider, a German computer science student. Previous software methods to extract the necessary bootloader no longer worked. Bernard Leach had previously discovered how to operate the piezo buzzer inside the iPod. Schneider was able to use his program with some modifications to make a series of clicks for each byte of the new iPod's bootloader. The extraction process took 22 hours to complete and required Schneider to construct a soundproof box to prevent outside interference with the process. 
Server transition 
On June 11, 2008 the organization's website was suspended and replaced with a redirect to a blank page. The server had its services restored incrementally. On October 1, 2008 the iPodLinux.org DNS address was updated and the server was online again by October 5, 2008. On June 22, 2009 the server was pulled offline again. The server was back online again on September 8. In September 2010 the server went offline again and has not got online again yet. Alexander Papst, one of the developers, has posted a mirror of the site at ipl.derpapst.eu (domain stolen, not working as of December 2012).
According to the iPodLinux wiki, "developers have succeeded in getting [the following features] to work- it does not imply that the feature is ready for widespread use."[note 1]
|Generation||Date[note 2]||LCD||Input||Serial[note 3]||Hard drive||Piezo||Audio playback||Audio recording||FireWire||USB||Power management||Video out|
|3G||April 2003||Yes||Yes||Yes||Yes||Yes||Yes||Yes||Yes||Partial[note 4]||Partial[note 5]||N/A|
|4G||July 2004||Yes||Yes||No||Yes||Partial[note 6]||Yes||Partial[note 7]||Partial[note 4]||Partial[note 4]||Partial[note 5]||N/A|
|Photo/Color||October 2004||Yes||Yes||No||Yes||Partial[note 6]||Yes||Partial[note 7]||Partial[note 4]||Partial[note 4]||Partial[note 5]||No|
|5G||October 2005||Yes||Yes||No||Yes||Partial[note 6]||Yes||No||N/A||Partial[note 4]||Partial[note 5]||No|
|5.5G||October 2005||Yes||Yes||No||Yes||Partial[note 6]||Yes||No||N/A||Partial[note 4]||Partial[note 5]||No|
|Touch[note 8]||September 2007||No||No||No||No||No||No||No||No||No||No||No|
|Mini 1G||January 2004||Yes||Yes||No||Yes||Partial[note 6]||Yes||N/A||Partial[note 4]||Partial[note 4]||Partial[note 5]||N/A|
|Mini 2G||February 2005||Yes||Yes||No||Yes||Partial[note 6]||Yes||N/A||Partial[note 4]||Partial[note 4]||Partial[note 5]||N/A|
|Nano 1G||February 2006||Yes||Yes||No||Yes||Partial[note 6]||Yes||No||N/A||Partial[note 4]||Partial[note 5]||N/A|
|Nano 2G||September 2006||No||No||No||No||No||No||No||No||No||No||N/A|
|Nano 3G||September 2007||No||No||No||No||No||No||No||No||No||No||No|
|Nano 4G||September 2008||No||No||No||No||No||No||No||No||No||No||No|
|Nano 5G||September 2009||No||No||No||No||No||No||No||No||No||No||No|
|Nano 6G||September 2010||No||No||No||No||No||No||No||No||No||No||No|
- "iPodLinux: Project Status". 2008-11-14. Retrieved 2008-12-25.
- Date that the iPod was originally released, not the date it was supported by iPodLinux.
- Serial is required for the remote to work.
- Neither USB nor FireWire communication drivers exist yet for these models. Instead when a USB device is plugged in, the iPod prompts the user to restart the ipod into disk mode.
- A basic battery meter and deep sleep functions are available.
- Currently podzilla accesses the piezo directly- there is no kernel driver.
- Only recording via microphone works on these models, no line in.
- Will probably not be supported. iPhone and iPod Touch (OS X) homebrew software is already available.
As of August 5, 2006, only the 1st, 2nd, and 3rd generation iPod are officially supported by iPodLinux, although newer generations are also partially compatible. The iPodLinux project does not plan support for the iPod shuffle due to the lack of a GCC compiler for the shuffle's DSP57000 core, as well as the fact that the iPod shuffle lacks a screen. While later generations work fine for many uses of iPodLinux, not all features work; these later generations will not be officially supported by the project until most or all features from the earlier iPods work on them. Installers are in the process of being made. As of now, there is Installer 2.3 for Microsoft Windows or Linux which can install on any generation iPod (except for the iPod shuffle and iPod nano 2nd generation). As of April, 2008, iPodLinux does not work on the new iPod firmware included with the second and third generation iPod nano or the 6th generation iPod Classic, and installer 2 cannot be used to install iPodLinux on 5.5th generation iPod. In addition to that, the much spoken about audio recording feature currently does not work on the latest ipodlinux/zeroslackr builds. In ipodlinux, an under development message is given under recording, while in zeroslackr, recording is not displayed at all.
Arguably one of the project's more notable accomplishments is its video player, released months before rumors about Apple's Video iPod began to spread. This video player only plays uncompressed AVI files, which are basically just a series of bitmap formatted frames with an audio overlay that commonly loses sync with the video output. A new compression technique called MoviePod, released in 2006, enables people to put more video content on their iPod. This function continues to be developed and is a useful function for users of older iPod (especially nano users that, with the help of iPodLinux, can get an extremely small media center that can be held in the palm of the hand).
podzilla 2, the second generation of podzilla, and commonly known as pz2, is currently in development and has recently superseded the original version of podzilla. It includes several new features, most notably modularity; users can install new applications without recompiling all of podzilla. This version is the only working set of Podzilla official that will run on 5.5G iPods.
Please note that the 2012 set of iPods have not been considered yet.
See also 
- "iPodLinux: Module List". Retrieved 2007-07-23.
- iPod 'squeaks' betray software secrets - Newscientist.com
- IRC logs from September 28, 2008
- "iPodLinux: Manual Installation". 2007-12-14. Retrieved 2007-12-24.
- "iPodLinux: Generations". 2009-03-21. Retrieved 2009-03-21.
- "iPodLinux: Mv player". 2006-09-25. Retrieved 2006-09-30.