I-Opener FAQ

Note: This FAQ was last updated on 31 July, 2002 and is no longer being maintained.

The authoritative URL for this page is http://fastolfe.net/2006/iopener/faq.

This is a general purpose hardware/software FAQ for those interested in using the I-opener Net Appliance for things the makers probably didn't intend. See the original page at http://www.linux-hacker.net/iopener/. Links to more sites, the mailing list and another FAQ are available below. You're probably voiding your warranty by even being at this page, so don't jump into this unless you're pretty familiar with a PC's (preferably a laptop's) internals.

Note: Before you even ask a hardware-related question (does it support ___?), remember: This is STANDARD PC HARDWARE. It has an x86 processor, an IDE controller, serial ports, USB, etc. Aside from the special IDE case, you don't need any magic adapters and things like USB are very normal, industry standard things. If it works on your PC, it will work on the i-opener. The real question is: Does your planned *OS* support ___?

1.0 The i-opener

1.1 Where can I buy one?

Circuit City is sold out pretty much nationwide. If you really really want one, you can have them order you one, but beware: they're ordering them from, like, Taiwan, so it might take a while. Expect to pay $99 for the unit and up to $40 for shipping. Supposedly the back-order wait time at Circuit City is being counted in weeks. You can also order direct at 1-800-IOPENER for an estimated 7-10 day wait. They ship via Fed-Ex. Circuit City seems to be limiting orders to one per customer.

Note that according to their new license agreement, they say that they're not so much selling the units anymore as leasing them, which means they may ask for them back once you terminate your ISP service. However, the only "penalties" they've noted on their web site are for an early cancellation of their ISP service.

Try eBay. I am not aware of any retailer that is selling these any longer. These units originally sold for $99, and some outlets potentially went as high as $200 when the panic started setting in, but if anyone is telling you they paid significantly more, they're either lying or an idiot. (I've seen people say they paid $500 for one of these things, which is ridiculous, though see question 1.5 below for a possible explanation for this.)

1.2 What modifications have been made in recent units to keep us out?

On "second generation" units and later (basically anything made more than a couple of months after this hack project made news), the BIOS is epoxied to the board so that it cannot be removed and replaced. Presumably, this was done to keep people from undoing whatever they've done to the BIOS. It's likely a BIOS change has been made to avoid tampering, but this is not confirmed. Some of the IDE pins are hand-clipped on some models and the underside epoxied as well. We do not know if this is the extent of the modification. There are reports that a hard drive is unbootable on the device, but it is not clear yet as to whether this can be attributed to faulty cable or connector construction.

1.3 Are there different versions of the i-opener?

As far as the hardware goes, there is a gray version and a black version. Some of the later ones have a labeled 200MHz processor instead of 180MHz, though it appears that they all run at 200MHz anyways.

1.4 How can something like this be this cheap?

The devices were sold as a loss-leader for monthly Internet service. This was why they were very much against the modification of the units to do anything other than what they wanted it for.

The best guess as to the actual cost of the device is roughly $400.

1.5 Do you have to sign up with service?

This question is fairly moot today, but back then, yes you did. You didn't have to before, but they made changes to their terms which requires you to purchase a minimum of 3 months of service when you buy your I-opener. You're still free to return everything in new condition in the first 30 days for a complete refund, but if you cancel in the first 90 days and keep the unit, you will be charged $499. Yep. So, the cheapest you can get this device now is for about $165, and various OS/hardware changes they've promised may make it hard to do anything with the resulting unit once you get it (well, aside from what they meant you to do with it).

1.6 Others placed their orders after me and received their i-openers. Why haven't I?

Orders placed between the 16th and the 20th had "difficulties" at some point while processing the order. As a result, these orders could be delayed up to a week. No conspiracy theories, sorry. (This question will automatically self-destruct.)

2.0 The hardware

2.1 How fast is it?

The processor is an x86-compatible 180MHz (some are 200MHz) IDT WinChip C6 (MMX). It's comparable to any Pentium-class ~150MHz chip. Linux reports 80 bogomips. It appears that the system is running the processor at 200MHz regardless of the speed that's printed on it.

2.2 Does sound work under Linux?

Yes, the YMF715 is supported in the Linux kernel (Yamaha OPL3/SA2 driver) and exists for ALSA. It even has a microphone. The two speakers sound pretty crappy, though, and there isn't much of an option to attach external speakers, unless you want to mess with the speaker connectors on the board or you want to do some soldering.

2.3 Are there close-up pictures of the system board?

Yes, at http://fastolfe.net/2006/iopener/pics/.

2.4 Does it have an external VGA connector?

Yes, there is a place on the board where you could theoretically connect a VGA DIN-style connector to use a standard monitor. The LCD is driven by an internal LCD ribbon connector and I doubt it would be suitable to drive anything else, but the analog VGA connector should suffice nicely.

2.5 Does the modem work?

Yep. The internal 56k modem shows up and is accessible as a standard COM1/ttyS0 modem. The connector appears to be a standard serial port with a few extra pins for audio and telephone line connections.

2.6 Is there a second serial port I can use?

The 10-pin header next to the dip switches is a 2nd serial port. You can hook this up to your PC's serial port (with a null modem), and get connectivity that way, utilizing the 'qtalk' app on the i-opener. This seems to support zmodem, but the i-opener doesn't seem to have the sz/rz binaries. If it did (or if you can find/FTP them), it might make an easy way to transfer files to/from your PC. If nothing else, qtalk also provides you with a simple way to dial up to an existing setup to transfer files ("qtalk -m //1/dev/modem1") or set up a PPP link. The command character is ^A.

2.7 What's this about a 16MB flash card drive?

There is a SanDisk NVRAM pseudo-drive in the device. This appears to the BIOS and OS as a standard IDE device (which would be secondary to any installed IDE drive) from which you can read and to which you can write data. There's no reason you can't install a minimal system on this "drive" and use it to boot instead of permanently installing an IDE drive in the unit. Note that these devices have a finite write lifetime (10,000 to 100,000 writes, in all likelyhood). In other words, you definitely don't want to use this as your swap partition, and you probably don't want to put /tmp or /var on it. Consider NFS or a small ramdisk. The OS on the i-opener gets around this write limitation by mounting most of the filesystem in a ramdisk built from a compressed root image. See below (about how /etc/passwd isn't persistent across reboots) for details.

3.0 Software

3.1 How do I get into the BIOS?

The BIOS is a standard PC-style Award BIOS. There really isn't anything worth looking at in there, but if you REALLY want to get in, I hear that Ctrl-Alt-Esc will do it just after it starts (where you'd expect the "Press F1 to enter Setup" message would ordinarily be if this were a PC, which it basically is). Something tells me that Ctrl-Alt-Esc bit could be simplified somehow.

3.2 How do I get to the QNX root prompt?

There are three methods to accessing the root prompt.

The Easy Way

This is usually the first stage for any of the other methods, but it normally suffices perfectly fine for those just wanting to take a peek. When the device starts up, and says "Updating the I-opener", your moues cursor will change to a larger one. At this point, hold down the Escape key (or Home if you're using the device's keyboard), and press the number 4 about four times. You'll get a root window. Note that if you have completed the tutorial on your device, this window will disappear and the Esc-4 combination will cease to function when the device is allowed to boot through to the main menu. You have about 10 seconds to work, in this case.

The Serious Way

For those wanting to Get Stuff Done, or for devices that have gone through the tutorial, but don't want to make any permanent OS changes, this is the method for you. Get a root prompt through the method above, and edit /etc/passwd. Null out the password for root (just delete the x) and save (:w! as it is read-only). Once you're back at the root prompt, execute /app/stop-apps to kill the running i-opener application, which should leave you a login: prompt. Type 'root' and you're in. Note that if you've been using your i-opener as it was designed, your unit may have been silently upgraded over the 'Net. Your /etc/passwd may no longer be writable, so this method may not be suitable for you anymore.

The Really Serious Way

This actually involves writing a file to the SanDisk which will pre-empt the I-opener application (and null out the root password in the process), giving you an immediate login prompt upon boot. Secure a root prompt through any of the methods above, create the directory /app/ztest, and a file /app/ztest/startup, with this in it:

echo root::925158644:0:0 >/etc/shadow

Note that this can be done in the 10-second or so window that you might have for method 1 if your i-opener has already gone through the tutorial and method 2 no longer works for you. You just gotta be fast. This simple example, in addition to pre-empting the I-opener application itself, also does not allow the device to load anything like network drivers. For the Really Very Serious user, you'll want to use this startup script from Eric McDonald. Don't forget to chmod 775 the /app/ztest/startup script.

You will need to hit the TAB key immediately after the device starts to drop out of the boot logo so that you can see the login: prompt when it appears.

These two commands should also allow you to achieve the same thing without a startup script:

dsmod -d nvram -e startup -a .first  -c -s .nopass
dsmod -d nvram -e startup -a .nopass -c -s "echo root::925158644:0:0 > /etc/shadow"

3.3 So this thing's Unix? What all can I do?

Yep. Most all standard /bin-style tools are available, as is pppd/chat, ftp and telnet/telnetd. Interesting binaries are in /bin, /dbin and /usr/ucb. Startup scripts are in /rc (loads of cool stuff, esp. if you're interested in embedded devices and how to build one).

3.4 Why isn't it saving /etc/passwd for the next boot?

The root filesystem is being mounted in RAM. The only filesystems that you are able to write to (saving data on the SanDisk) are /os and /app. /os contains the core of the operating system, including a "root.fs" compressed image, which is what's loaded into the ramdisk at boot time. The result of this is that no changes you make outside of the /os or /app directories will be persistent. Configuration of the device (phone number, device ID, etc.) is actually done in NVRAM and not even on the SanDisk. See the scripts in /rc for details on accessing NVRAM data. I'll write about it here in a bit.

4.0 Networking

4.1 How can I network it?

You'd think they would put ethernet on this thing. In fact, there DO seem to be drivers and configuration files in it for a 3com ethernet setup, but there is no evidence of such a card or even the means of connecting a card. (It's likely that different, ethernet-capable hardware was used to aid in the OS's development, and they're simply using the same image.) This leaves us with some relatively unpleasant, but not insurmountable options:

USB Ethernet
The better choice is to get a Pegasus-style USB ethernet device and use the USB support available in the Linux development kernels. The dlink 650tx ($45) is an apparent #i-opener-linux favorite, as is the LinkSys 100TX (not, it seems, the 10T).
You might be able to use PLIP in the Linux kernel to get some rudimentary IP networking over the parallel port.

Lots of people have reported success using all methods of networking. The issues to watch for are Linux's poor (mainly limited to Pegasus chipset) USB support, though OS's like NetBSD and Win98 tend to have full support for most any USB device.

4.2 Can I dial the i-opener up to my own ISP?

Yes. You NEED to be familiar with pppd, though. I won't teach you how to use it. The device has standard pppd/chat binaries and /etc/ppp structure. Just plug in the values for your own ISP, and you're off.

4.3 Are there non-TCP/IP networking options?

There is a serial port you can use (see 2.6).

5.0 Alternate OS's

5.1 How do I put <insert alternative OS here> on it?

There are two methods to putting your own OS onto the I-opener. The first involves purchasing a 2.5"/laptop IDE hard drive (or an adapter for your existing 3.5" hard drives), installing Linux on it through some other means, and attaching the drive via a modified IDE cable to the I-opener, which will then cheerfully boot it. Despite its complexity, this method has thus far been the popular one, and it will work with any x86 operating system (yes, including Windows). The alternative is to find a boot image for the OS of your choice and write that boot image directly to the SanDisk. This could be a complete 16M filesystem image or just a root-over-NFS kernel image. You probably want to have someone else test it first, since if you do mess up the SanDisk, the unit is dead until you can attach an IDE drive to it so it can boot.

5.2 How do I go the IDE route?

First of all, the connector is a mini laptop-style (2.5") connector, so you'll need an adapter and an external power supply if you want to use a standard hard drive. If you want it to stay in the case, you'll want a 2.5" laptop hard drive. People have been quoting $30-80 prices for some very nice 2.5" multi-GB hard drives on PriceWatch, so that might be something to think about. This is the hard part: You have to make/modify your own IDE cable. You basically have to flip/twist around each pair of pins (123456 -> 214365). You need to essentially mirror the pins along an imaginary line going down the center of the connector's length.

5.3 And just how the hell am I supposed to do that?

The latest working idea: Use a male-male adapter/connector, but connect it *backwards* (e.g. pin 44 where pin 1 would be). This changes it from 1/2 3/4 5/6 to 44/43 42/41 40/39, which, if looked at from the other direction, matches the mirrored pin-out that you need to connect a drive. Ask someone on IRC (see the bottom of the page for details) or read any of the web pages below for a better description. Other methods for constructing the cable yourself:

5.4 How do I go the non-IDE route?

The alternative is to create a boot image (either a simple NFS kernel with root over NFS or a full 16MB image with kernel and a small root filesystem, possibly NFS mounting things like /usr), dial the appliance up, and save that boot image into /dev/hd0 (gunzip <boot.image.gz >/dev/hd0). Beware: If you fuck it up, the device will never boot again, unless you rig up an IDE drive as described above. Some more detailed directions of this process are available at http://www.digitron.com/iopener/.

There are some that are working on creating "distributions" of Linux for the device, and these distributions will include various "stock" disk images with which we'll be able to simply overwrite the existing SanDisk image, giving us a simple Linux distribution from which to work. Latest information indicates that this will be a self-contained distro (still with NFS support), with standard /bin utils as well as an X server and an MP3 player. More information (and hopefully the distribution itself) will eventually be available from http://i-opener.sourceforge.net/.

Update: Jailbait Linux is one such distribution, but as of this writing, due to the number of similar appliances that have come out, there is a sizable community revolving around Linux distributions made for tight environments like this, so feel free to search around any of the links below or on SourceForge.

6.0 Extending/Upgrading

6.1 Can I upgrade the memory?

The unit comes with a single SODIMM (what I like to call "laptop memory") slot with a 32MB stick of memory. I don't see any reason why you couldn't just replace this with a larger stick. People kept saying the BIOS might have a 64MB limit, but this does not appear to actually be the case. 128MB SODIMMs have been reported to work perfectly.

6.2 Can I upgrade the processor?

The board has a standard Socket7 slot, at 3.3v. A popular upgrade is to the WinChip2, which gives you 3DNow! features. Due to the fact that the socket is 3.3v all-around, and there has not yet been an identified way to change this voltage, you cannot upgrade it with standard Pentium-based chips. At the moment, the best route is to continue with the WinChip line.

6.3 Can I upgrade the SanDisk to something more than 16MB?

No. Firstly, the SanDisk is a surface-mounted component. You'd have to carefully unsolder it and replace it with something better. Secondly, there is nothing better. 16MB is the largest size available for these devices. More information about the SanDisk is available in a PDF from the SanDisk web site.

6.4 USB connectors are pretty cheap; I bet I can buy one and add that 2nd USB port!

Not unless you're an electrical engineer. This question applies to that formerly "mystery" area of the board as well. Just because the board looks like it could house additional plugs, gizmos or connectors does not mean that the board has the requisite electronic components to use whatever plugs, gizmos or connectors you attach to it. They design these boards to do many things, and it's up to the builders of the design to decide what exactly they want to put on it. It's hardly worth leaving out a $1.65 USB connector, but you could save a lot more by leaving off the connector *and* all of the support circuitry used to drive that 2nd connector. Trust me, it's not as simple as attaching the missing port.

7.0 More Information