

|
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
Warning: include(/home/cust10011/www/site001/includes-mactech/includefiles/mt_footer.inc) [function.include]: failed to open stream: No such file or directory in /home/cust10011/www/site001_files/staticcontent/articles/mactech/Vol.21/21.09/iPodLinux/index.html on line 311
Warning: include() [function.include]: Failed opening '/home/cust10011/www/site001/includes-mactech/includefiles/mt_footer.inc' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /home/cust10011/www/site001_files/staticcontent/articles/mactech/Vol.21/21.09/iPodLinux/index.html on line 311