Summary: the 180 MHz WinChip in the version 1 I-Opener is too slow to play MP3s. But it was a fun project nonetheless. I now have a cute webserver instead of an MP3 player. If you are lucky enough to have a version 5 I-Opener with a 266 Mhz Rise CPU, it will play 128kbps MP3s without jitter.
Why another web page devoted to the I-Opener? There is renewed interest in the I-Opener now that Netpliance is liquidating its assets, and the latest 2.4.x Linux kernels behave differently than previous versions. This is not another introduction to hacking the I-Opener. See the References section for those links.
|$31||IMOD3.This board plugs into the IDE pins on the motherboard allowing you to mount a laptop harddrive. I bought mine from codeman, but they are now ordered through badflash.com. There is also a knock-off at wizztronics.|
|$22||CPU Fan.The Lasagna cooler is available from tennmax.com.|
|$63||Harddrive. Laptop harddrives are 2.5" wide and come in 9mm, 12.5mm, and 17mm heights. I found a 9mm 2.1GB drive at Driveguys.com|
|$39||USB Ethernet Adapter. Most USB Ethernet adapters work with the Linux pegasus kernel driver. I used a Linksys USB100TX.|
|$26||USB 2-port hub. 2-port USB hubs don't require a separate power supply like their 4-port brethren do. I used the Aten UH102. I plug the Ethernet adapter into one port and my USB harddrive in the other.|
|$10||Miscellaneous parts. Depending on how many tools and components you already have, you can expect to spend about $10 to $15 at Radio Shack.|
The first problem is that kernels built on a Redhat 7.0 system will not boot on the I-Opener. For background information see this article on the Linux Kernel mailing list. The problem is not with the kernel, it's with the creation of the kernel. For some reason, kernels created on a Redhat 7.0 system are compiled incorrectly and will not boot on the I-Opener. This is a Redhat problem, not a kernel problem. The solution I found was to install Redhat 6.2 and upgrade the kernel to 2.4.2. Listing all the components I compiled into my kernel would take too long, so I will let my kernel .config speak for itself. Don't forget to install modutils-2.4.2.
The second problem is that you need to patch the 2.4.x IDE code to handle the I-Opener SanDisk correctly. Apply this patch to ide-probe.c:
# cd /usr/src/linux/drivers/ide # cp ide-probe.c ide-probe.c.orig # patch ide-probe.c ide-probe.patchYou may also need to configure LILO to use the vga mode "vga=4" so you don't get fruity colors on the screen during bootup. Here is my lilo.conf.
The procedure I used to rebuild the kernel is:
# cd /usr/src/linux # make mrproper # make menuconfig # make dep && make clean && make bzImage && make modules && make modules_install # cp System.map /boot # cp arch/i386/boot/bzImage /boot # vi /etc/lilo.conf # /sbin/lilo
The IMOD3 has an LED that indicates IDE disk activity. Unfortunately, the RF shield and plastic case bend the LED down and short it out. I had to make a cut in the RF shield and remove one of the slats in the plastic case in order to accommodate the LED.
Adding a headphone jack requires soldering leads to the outputs of the sound chips. This procedure has been documented here, but I found codeman's schematics to be the easiest to follow. I used the following Radio Shack components:
# pnpdump --config > /etc/isapnp.conf # isapnp /etc/isapnp.conf # modprobe opl3sa2 io=0x370 mss_io=0x530 mpu_io=0x330 irq=5 dma=1 dma2=3 # modprobe opl3 io=0x388 # aumix (turn the volume up as loud as it will go) # play /usr/share/sndconfig/sample.auYou should hear Linus Torvalds pronounce Linux as leenucks. Here is my isapnp.conf.