Killer Hardware Tips

iPod Hacking, Dual Displays & Trippy Images

First Published: Computer Power User
Date Published: May 2003
By Kevin Savetz

If you're a user who can't leave things alone if there's a chance you can make them better, even if it means bucking the norm, read on. We have some tips and tricks that just might make you more productive.

No, It Doesn't Run X

When Bernard Leach, a software engineer living in Germany, received an iPod as a present, he asked himself what any self-respecting hacker would ask: I wonder if it can run Linux. The iPod didn't (the device uses a proprietary OS), but thanks to Leach, it now can. Leach's Linux on iPod project (ipodlinux.sourceforge.net) is an open-source endeavor to port the Linux kernel to the popular portable MP3 player.

The iPod kernel is based on uClinux (www.uclinux.org), a derivative of the Linux 2.0 kernel intended for embedded systems. The uClinux kernel is designed specifically for microcontrollers without MMUs (memory management units).

The iPod is a closed platform, with precious little technical information available to the public. So, Leach's project has meant a lot of trial and error. The system offers FAT file system support, audio output, and access to the frame buffer, buttons, and scroll wheel, but it doesn't yet support FireWire, the HFS+ file system, power management, and several other features of the iPod hardware. There's no interface to type yet, "although there is one proposal already that uses a similar methodology to that used in mobile phones," says Leach.

Installing Linux on an iPod means a leap of faith: You need to overwrite the iPod's native OS. "To switch back, it is necessary to restore the original OS from a backup. Some portions of the native firmware remain, however. For example, the boot loader and, importantly, the 'diskmode,' which provides the FireWire services," Leach says.

Installing Linux involves preparing a build environment on a PC that can cross compile for the iPod's ARM processor. Next, you need to build the kernel on the PC and copy the kernel binary to the iPod. A file system is necessary, so copying a Linux file system from the PC and mounting it on the iPod is next. Finally, you can build and install BusyBox (www.busybox.net), a program that emulates Grep, gzip, and other common GNU user tools. From there, you can use the PC's cross compiler to build more applications for the iPod. Full instructions are on the project's Web site.

Applications tested with the setup include the MAD MP3 player and Tremor, an Ogg Vorbis player. Neither app can play music in real-time yet, meaning distracting lulls in the tune. Leach expects speedups, however, as the software is optimized and the platform better understood.

But Leach's real aim is to take the iPod beyond playing music. In time, the device could work as a PDA, remote control, or portable hard drive. "I'm looking forward to being able to store digital photos on my 'Pod when I'm traveling. But for me at the moment, learning about the Linux and iPod internals is the main motivation," Leach says.

After All, You Have Two Eyes

They say two heads are better than one, and if you've used a PC with two monitors, you'd probably agree. Adding a second monitor to a PC is an easy hardware addition--if there's room on your desk, that is.

Aside from obviously needing two monitors, you'll need video cards to drive them. Many cards, including the RADEON 7500 and Matrox G450 series, support dual displays, often offering one DVI port and one VGA port. If you have two VGA or DVI monitors, you'll need an adapter cable to use both ports.

If you have an extra video card, you can use it instead. Dual displays work equally well with two video cards--one AGP and one PCI card or two PCI cards. The main drawback is that two-card setups use an additional precious PCI slot. At least one of the cards needs to explicitly support dual-monitor setups. In other words, it must be willing to share hardware resources.

The card the PC discovers first at boot time is the primary video card. In two-card setups, you may have to experiment to find which one should be primary. If you have one AGP and one PCI card, the PCI card will generally be the primary card. (The PC's BIOS setup utility may let you choose which slot to initialize first.) With two PCI cards, the one closest to the CPU, in the lowest-numbered slot, will be the primary card. All things being equal, try to designate the better card as the primary display.

Support for multiple displays is built into Win98/Me/2000/XP. Win95 and WinNT don't officially support multiple monitors, although proprietary video drivers can work around this. After plugging a second monitor into your PC, in the Display Properties dialog box, choose the new display from the drop-down menu and select Extend My Windows Desktop. You should now be able to move windows and icons to the new screen. The Use This Device As The Primary Monitor option tells Windows the display that windows should appear on.

Adding a second monitor in Linux can be trickier, depending on your distribution and window manager, but it certainly can be done. The Multiple Monitors with X Mini Guide (tinyurl.com/67vt) explains how. Details for using multiple screens with Mandrake are at www.realtimesoft.com/multimon/linux.

Mac users, don't sweat it. Mac OS has supported multiple monitors since 1987. If your desktop Mac has room for a second video card, you can plug it in and attach the second monitor without fuss. Use the Monitors or Displays control panel to adjust their relative locations and set the primary display.

Two monitors aren't the limit, by any means. Quad-port video cards are available from Appian, Colorgraphic, Matrox, and other manufacturers. Windows' Display Properties dialogue box has an upper limit of 10 monitors. For more, a custom configuration app is necessary. Ten screens is probably overkill, however. (A three-, four-, or five-screen setup is enough for a mighty realistic game of Flight Simulator.)

The Multi-Monitor Resources Web site (www.realtimesoft.com/multimon) provides a bushel of news, FAQs, and troubleshooting tips. The site is from the publisher of UltraMon, software that adds additional multiple-monitor features to Windows, including the ability to span wallpaper across desktops and run a different screen saver on each display.

If you lack the cash or desktop real estate to run multiple monitors, try a virtual desktop-management utility.

Programs such as Cool Desk ($25; www.shelltoys.com/virtual_desktop) and MultiDesk ($25; www.siliconrealms.com/mdeskinfo.shtml) let you move windows to virtual desktops and quickly switch among them.

Depth Charge

Instead of investing in three displays, how about turning your single monitor into a 3D display? You can create stereoscopic images using your own digital camera (for viewing on the screen or using a low-tech handheld viewer), play 3D games, or gaze into 3D fractals and other trippy images. Check out stereoscopy.com for a list of PC, Java, and Mac apps for creating 3D images.

The hardware here includes special glasses that trick your brain into believing it is seeing depth on a flat CRT. That is, the glasses separate the screen's single image into two slightly different images, one for each eye. Two types of glasses are typically used for viewing 3D images on a PC. The cheap way is "anaglyphic" glasses, which use colored filters (typically red and blue or red and green) to create two images from a 2D source. These glasses are easy and inexpensive to make using photography filters.

The more expensive, techie-fun way is using shutter glasses. These use liquid-crystal lenses that are synchronized with the PC display to let only one eye see the screen at a time. The monitor and glasses quickly switch back and forth between two images. Such glasses are available from such manufacturers as iO Display Systems (www.i-glassesstore.com) and VRex (www.vrex.com).

Reprinted with permission from Computer Power User magazine.


Articles by Kevin Savetz