iPod-Linux
Volume Number: 21 (2005)
Issue Number: 9
Column Tag: Programming
iPod-Linux
Get Your Geek-On With This Amazingly Feature Rich Companion OS
by Emmanuel Stein
What is iPod-Linux?
iPod-Linux (aka iPL) is a totally independent and extremely functional OS for your iPod. In
development since 2002, iPL, the brainchild of Bernard Leach, represents a mature OS that is both
stable and feature rich. Rather than representing an alternative OS for the iPod platform, iPL
resides comfortably along side of Apple's OS and is more of an extension of the device. Booting
between the two OSs is as simple as performing a soft reset of your iPod. In fact, iPL includes the
ability to reboot into the Apple OS via the Power menu.
iPL is based on the uClinux port for the ARM processor and employs the Podzilla GUI interface,
based on the Nano-X toolkit. This allows you to run Podzilla in Apple's implementation of X11 that
ships with the OS X and which is available as a custom install option. Enterprising hackers can roll
their own solutions and/or port their favorite applications to iPL with the ARM cross-compilers and
other development tools (http://www.ipodlinux.org/Toolchain). Beyond uClinux
and Podzilla, iPL also includes the file system and associated support files, collectively dubbed
"User Land."
iPL has been and continues to be, a herculean exercise in reverse engineering. The project
receives no support from Apple and the contributors have to ask for iPod donations in order to get
their hands on the latest iPod models. As such, it is not surprising that support via the graphical
installer developed by Jeffrey Nelson, is currently limited to 1G, 2G, and 3G iPods. However, many
people, including myself, have gotten iPL to work well on the iPod Photo, new color iPods and mini
series (both revisions).
Full GUI install support for 4G iPods and the iPod mini, as well as, new color models should be
ready by years end. Until then, avoid the unstable versions, unless you are a developer or are
comfortable building an operating system manually. Also, support is strictly limited to the stable
versions (e.g. those supported by the graphical installer).
Hacker's Delight or Prime Time Player?
Although iPL is sure to delight the hacker, make no mistake, it is "ready for prime-time." That
is, you can go to http://ipodlinuxinstl.sourceforge.net/
download.html, and obtain the latest graphical installer, pictured in Figure 1.
Figure 1. iPod-Linux
Graphical Installer
With this nicely designed Cocoa application, installation of iPL is a breeze. The installer even
checks for updates and lets you set your default OS (Figure 2). Despite the quality of the
installer, you should have Apple's restore utility available (http://www.apple.com/ipod/download), so that in the
unlikely event something goes awry you can revert to the factory defaults.
Figure 2. iPod-Linux
Installer Interface Options
Even if you don't have an iPod, you can still experiment with Podzilla and run many of the
included applications using X11 on Mac OS X. For more information consult the "Building Podzilla for
the Desktop Guide" available at http://www.ipodlinux.org/
Building_Podzilla_for_the_Desktop.
Well Supported
Before you begin, and especially if you want to experiment with the unsupported 4G
implementations, it is critical to look at the FAQs (http://www.ipodlinux.org/FAQ) and Help sections (http://www.ipodlinux.org/Support) at ipodlinux.org. The
iPL support network encompasses IRC (irc://irc.freenode.net/ipod-linux), mailing lists (http://marc.theaimsgroup.com/?l=ipodlinux-
devel), as well as, a popular phpBB-based forum (http://www.ipodlinux.org/forums/). Consequently, there
exist many support avenues for all users, new and experienced.
Cool Runnings
iPL, like Apple's iPod OS, is much less disk intensive than, say OS X. As such, iPL can be used
on your iPod without fear of decreasing the life of the unit, which can occur on early model iPods
used to run as an OS X startup disk. Because of the need to reverse engineer the hardware, iPL does
not yet have all the power management niceties that can be found in the iPod's default OS. However,
the iPL team has made significant headway in the area of power management and the latest builds
reflect these developments.
Getting Hooked Up With iPL
Terminal aficionados may enjoy some of the extensions to iPL, like ported applications (http://ipodlinux.org/Applications), and
hardware-related projects (http://www.ipodlinux.org/Serial_Port, http://www.ipodlinux.org/Keypad). You can even connect
directly to a terminal via Ethernet over IEEE 1394 (http://www.ipodlinux.org/Ethernet,). These projects are
both fun and functional and put you in the innovator's chair. While the vanilla iPL is excellent,
the joy of hacking is in pushing the limits of what a system can do. A tricked out implementation of
iPL is a sure-fire way to boost your hacker cred and also a great way to get in touch with your
inner geek.
Careful With That Axe Eugene!
If you choose to use the nightly builds (http://www.ipodlinux.org/builds/) or compile the source
code (http://www.ipodlinux.org/CVS), you are on your own
support-wise. Nevertheless, experienced users are welcome to participate and contribute to the
project.
You can find good general instructions at http://ipodlinux.org/Installation_from_Mac.
Depending on the iPod version you have you will have to modify the flag on the make_fw (The make_fw
-3 option for 4G iPods, for instance) command used in the manual installation process. The details
of manually installing iPL on each iPod model are beyond the scope of this article. However, the
forums have links and discussions on specifics such as how to manually install iPL on an iPod Photo
using OS X (http://ipodlinux.org/
How_to_install_iPodLinux_on_4G_iPod_using_Mac), among others.
Gamers Paradise
If you're a gamer, iPL comes with a treasure trove of classic games such as Blue Cube (a Tetris
clone) and support for optional gaming software like a Game Boy emulator (http://www.ipodlinux.org/GB_Emulator#Downloads
) and the ever popular, first-person shooter, Doom (http://www.ipodlinux.org/Doom). In fact, at last count
there were at least 23 games available for the supported iPL release alone! Even if you're not a
gamer, it is impressive to see the quality of the engineering, as reflected in the ability to even
run games like Doom (Figure 3).
Figure 3. Doom on
iPL
Feature Breakdown
The following is a graphical documentary of the Podzilla interface with many of its associated
applications, as available in the current version of iPL. For enhanced clarity, many of the
screen-shots were taken using Podzilla in X11. Keep in mind that some features like music playback
and audio recording are only usable when running on an actual iPod. As such, I have included shots
of iPL on my iPod Photo to show off a few iPod-specific features and to demonstrate color views of
the Podzilla interface (Figure 4) and the associated applications, like color video playback (Figure
12).
Figure 4. iPL's Podzilla
Interface: In Color with Amiga 1.x Theme and CPU monitor in upper left corner
Music
Podzilla's interface, on the whole, will make any iPod user feel right at home. The Music
directory, for example, mimics that of Apple's and is implemented via parsing of the iTunes database
(http://www.ipodlinux.org/ITunesDB). Currently,
there is no support for music purchased at the iTunes Store as it is encoded with DRM (Digital
Rights Management) software. Nevertheless, others have reverse engineered Apple's proprietary
content locking system, and therefore support in iPL should be added soon.
Playback quality is good on recent iPods with faster disks and processors, but skips on 3G and
lower iPods. Also the interface for music playback is not as well developed as Apple's. Consider,
however, that the iPL developers do not have the same level of access to hardware specifications as
Apple's engineers. On the whole, I would recommend sticking to Apple's OS for music playback for the
time being. Especially given that iPL crashes when you try to access an iPod loaded with podcasts.
However, by the time you read this, podcast support may well have been added.
Figure 5. Podzilla
Interface: Music menu
Figure 6. Music
Playback on iPL
Extras
The Extras are among the strongest offerings in iPL, with professional-grade sound recording at
96KHz, a broad selection of well implemented games, and a rather neat collection of Stuff, which
demonstrate the rendering capabilities of Podzilla with applications like Matrix and MandelPod. The
Calendar is nothing to write home about and certainly won't replace your iCal views on Apple's OS.
The calculator is also pretty spartan but remains functional. Finally the clock is fun with its wide
range of customizable themes.
Figure 7. Podzilla
Interface: Extras menu
Settings
iPL offers a myriad of configuration options, all accessible via Settings. Going beyond Apple's
offerings, iPL affords control of scroll wheel sensitivity, button debounce, the ability to apply
window decorations and a selection of color and monochrome themes. Other exclusives include a new
way of tracking battery life with Battery Digits, a convenient CPU load monitor, the ability to
choose the system font, (you can download you own fonts and reformat them or download pre-made font
sets at http://www.ipodlinux.org/Fonts), and control
over the menu transition behavior. Another nice feature in Settings is the ability to save
configuration choices. This ensures that your iPL preferences are preserved when switching between
the two OSs.
Figure 8. Podzilla
Interface: Settings menu
Figure 9. Podzilla
Interface: Settings > Appearance
Power
Power management features include the ability to turn off the iPod and reboot into Apple's OS
from within iPL (previously a soft reset was required). Additionally iPL powers down the iPod
automatically and boasts lower level management features like spinning down of the hard disk to
conserve battery life. Notably absent from the power management feature set is CPU scaling, a
development that is apparently in the works.
Figure 10. Podzilla
Interface: Power
File Browser
In a dramatic design departure from Apple's "less is more" formula, the File Browser allows
access to everything in the file system (Figure x). The iPL file browser is able to render text,
video (For more information and a selection of pre-formatted videos go to http://ipodlinux.org/Video_Player), graphics (GIF, JPEG
and BMP), and launch external applications. iPL can render both graphics and video, in either
grayscale or color.
Figure 11. Podzilla
Interface: File Browser
This effectively enables all iPod models to benefit from iPod Photo and portable video
player-like functionality. Nonetheless, video playback would benefit from better interface
integration for controlling playback and enhanced video file navigation via reference metadata, as
is done for music. However, just seeing a video playing back in color is enough to launch you into
total nerdvana! (Figure 12)
Figure 12. Color Video
Playback by Default! (Apple's iTunes Ad pictured)
Figure 13. Full Color
Photo Display using iPL
Pieces of the Puzzle: Giving iPL the Boot
To illustrate how iPL works, I will detail the boot process:
- When the iPod is initially powered up, it consults firmware code that determines whether or
not to boot into one of two modes: disk mode or diagnostic mode. When in disk mode, the iPod uses
the firmware code to find the OS, which is located on a specific disk location. iPods can be
formatted with either HFS+ or FAT filesystems. HFS+ formatted iPods have two primary partitions: one
containing Apple's OS and the other containing user files (e.g. your music and photos). The iPL
bootloader is used to determine which of up to five potential operating systems should be loaded.
Either iPL or Apple's OS can be configured as the default OS.
- When the bootloader is set to run iPL, the uClinux kernel is loaded into memory and configured,
hardware connections are initialized, the file system is loaded and further configuration data is
processed. Lastly, the /etc/inittab file is consulted to determine what processes are to be
started--in the case of iPL, Podzilla.
Future Mods for Your Pod
With groundbreaking features such as video playback and high quality audio recording (which you
can do, incidentally, using your left ear bud), iPL has clearly progressed from a clever experiment
to a robust OS addition to the iPod platform. Expect to see improved color support in Podzilla,
sound support for video and additional enhancements including SDL application support (http://www.libsdl.org/index.php). Forthcoming
developments should include support for remote control devices, external keyboards, and CPU scaling
(changing the speed on the processor for low power settings).
iPL currently shines were Apple's OS is lacking. Even on 3G iPods, video playback is smooth and
among the most eye-popping features of this OS. This and other features beg the question of why
Apple has refrained from offering similar functionality in their OS? Certainly there is nothing
particular about Linux versus Apple's OS, that would make it inherently more capable of performing
video playback or 96KHz audio recording. Rather it seems Apple intentionally limited the
implementation of more advanced multimedia capabilities on the iPod platform. Perhaps they are
awaiting the development of an enhanced hardware platform prior to enabling more Play Station
Portable-like features in future version of the iPod OS. What is clear, however, is that in terms of
functionality, iPL can and will continue to offer Apple's OS a serious run for its money.
Top Gun Hackers!
None of this would have been possible without the prodigious efforts of Bernard Leach and the
core iPL developers. Special thanks go to Jeffrey Nelson, who patiently answered all my questions
about the project and who helped me navigate the myriad of side projects associated with iPL.
Project Lead Developer
Bernard Leach
Developers & Contributors
- Matthew J. Sahagian
- Courtney Cavin
- matz-josh
- Matthis Rouch
- ansi
- Jens
Taprogge
- Fredrik Bergholtz
- Jeffrey Nelson
- Scott Lawrence
- Cameron Nishiyama
- Prashant V
- Alastair Stuart
- David Carne
- Nik Rolls
- Filippo Forlani
- Martin
Kaltenbrunner
- Adam Johnston
- Matthew Westcott
- Nils Schneider
- Damien Marchal
Emmanuel Stein has been an avid Mac user since 1984 and has honed his
cross-platform skills while working at France Telecom, Time Magazine and Reed-Elsevier. He has
recently started his own Mac-centric consulting company, MacVerse, which offers implementation,
system administration and development services geared towards the enterprise market. As a diehard
GNU/Linux geek, he enjoys hacking open source software and experimenting with new open source
projects on OS X. You may reach him at mailto:macverse@mac.com