Installation on Ipaq
1. SYSTEM REQUIREMENTS
These instructions are for a Compaq Ipaq and have been tested only on models H3630 and H3650 with 32MB of RAM. This platform is known as "bitsy" in Plan 9. See also Supported PDAs.
2. INSTALL PROCEDURE
- charge up the bitsy.
- download a boot loader. Go to http://www.handhelds.org/download/distributions/compaq/ipaq/stable/install.html Get the Linux "osloader" and "bootldr" programs. We have tried versions 1.3.0 and 0000-2.14.8, respectively; newest versions of bootldr seem not to allow you to suspend your bitsy due to a bug which is probably in the suspend code of the kernel.
- Use ActiveSync to copy osloader to the bitsy. You can also use FTP; see WinCE FTP.
- Run osloader by clicking on it under the WinCE File Explorer
- Use osloader to save your WinCE flash away. This takes a while, as it's 16MB over a 115,200 baud line.
- Select "Run" from the osloader menu. Ignore "Run from RAM"; it's not needed.
- At this point, the bitsy's screen turns blank, but you can still talk to the bitsy over its serial port. The serial port is connected to the OS loader's terminal program. On Windows, you have to exit ActiveSync before the serial port is available for a terminal program. I moved the bitsy and its cable over to a Plan 9 machine and connected using
con -b 115200 /dev/eia[01]"to talk to the console. The command "help" lists the OS loader's commands.
- Now you need to download the BOOT loader program into flash (right now, you're only running the OS loader program out of RAM; rebooting will get you back to WinCE). In the con window, "load bootldr" to the bitsy. It will indicate that it's starting an xmodem download. Under con, type "Ctrl-\" to get a ">>>" prompt. At this prompt, you want to run Plan 9's xms program to pipe the bootldr program to the bitsy. For example, to download /tmp/bootldr, type "!xms /tmp/bootldr". If this step works successfully, the OS loader will print out some sort of OK checksum message.
- Reboot your bitsy (either cycle the power or use the reset switch). The new boot loader runs out of Flash. You'll get the linux penguin splash screen and a bunch of options triggered by buttons. Pick the one that gets you to the boot loader.
- Make the partitions you need in the bitsy's flash, type, using the con program, the commands shown below. After each line you'll get a message like `defining partition: params'. Different versions of the bootloader predefine different partitions. The bootldr partitions is usually predefined, so you don't have to remake that. Make sure the partition layout is as given below; some of this knowledge is built into the kernel.
partition reset partition define bootldr 0x000000 0x040000 2 partition define params 0x040000 0x040000 0 partition define kernel 0x080000 0x0c0000 0 partition define user 0x140000 0x0c0000 0 partition define ramdisk 0x200000 0x600000 0 partition define fs 0x800000 0x800000 0 params save
- If necessary, build the ARM compiler and use it to populate /arm with libraries and binaries:
for(i in /sys/src/cmd/5*) @{cd $i && mk install && mk nuke} cd /sys/src && objtype=arm {mk install && mk nuke} cd /sys/src/boot/arm && objtype=arm {mk install && mk clean}
- Before you can fill the new partitions with a kernel and a read-only file system, you'll have to make them. In the directory /sys/src/9/bitsy, type mk and mk paqdisk. Before mk-ing paqdisk, make sure you have all the necessary arm binaries installed in /arm and examine the file paqfiles/mfs to see what you need to change for connecting to your local file servers.
- Now you can type "load kernel". The boot loader will prompt for another xmodem download. Again escape using "Ctrl-\", then use "!xms /sys/src/9/bitsy/9bitsy".
- Download the ramdisk, using "load ramdisk" and "!xms /sys/src/9/bitsy/paqdisk", similarly to the preceeding step.
- Type `boot'.
- You'll get a Dutch flag (or a French one, if you hold the iPaq the wrong way), then you will see the following at the serial line console (wait for a while or hit enter in the con window):
root is from [paq]:
- You'll get a new screen with a single line at the top and a keyboard/scribble area at the bottom. This is a simple one file editor. This file is similar to plan9.ini on PC's. There may be garbage on the top line. If there is, delete the garbage letters. You should be left with a single line containing (with different numbers):
user=<user-name> wvkey1=<key string> wvkey2=<key string> wvkey3=<key string> wvtxkey=<key string> wvessid=<wavelan name> auth=<ip address> fs=<ip address>
- Your best bet is to copy these off a working bitsy. When you're done, hit the "ESC" key on the simulated keyboard, or the side button near the word iPAQ on the bitsy. The system will now come up as you. However, you'll get a message about the flash file system being corrupted, because we haven't yet initialized it.
------ another example -------
user=nemo wvkey1=guesswhat wvcrypt=off wvessid=default_net_name auth=auth.ip.address fs=fs.ip.address ipaddr=your.ip.address ipgw=your.ip.gw ipmask=your.ip.mask authdom=your.auth.dom---- kindly supplied by Fco J Ballesteros ----
- To set up the file systems, sweep a window and give the following sequence of commands (aux/flashfs creates a Plan 9 server in /srv/brzr, which we can use to set up default directories):
aux/mkflashfs /dev/flash/fs aux/flashfs mount -c /srv/brzr /n/brzr cd /n/brzr mkdir n usr mkdir n/fs n/emelie n/choline n/nslocum mkdir usr/yourname usr/yourfriend
- For safety, reboot the system:
reboot
- Now reboot, go through the Linux splash screen, the Plan 9 boot editor, and sweep yourself a new rio window. Before you can connect to other machines, you need a way to enter passwords and keys into factotum. The easiest way to do this is to run "auth/fgui" in the window you just made. The window will disappear (fgui spends most of its time hidden), so sweep a new window and run the command "mfs" to connect to file servers. You will probably need to modify mfs to work in your environment (see above).
- When you're all set with a working wavelan, you can download new kernels and new paqdisks more quickly using these commands. You'll need to reboot immediately after reloading the paqdisk.
bitsyload k # to load a kernel partition bitsyload r # to load a ramdisk partition
3. FIXING INSTALL PROBLEMS
Ask 9fans, there's people out there using bitsies with Plan 9. They might be able to help you.
4. AVOIDING COMPILATION
You can download a precompiled kernel and ramdisk from sources. Look at /n/sources/contrib/nemo/arm (these files cannot be found there anymore).
But it is more likely you get an up to date image by compiling it yourself.