

The bitsy comes with Wince.  To get to Plan 9, you will need a serial cable,
a Windows machine with a serial interface, the CDROM that comes with the bitsy,
and a Plan 9 machine with a serial interface.  The Windows machine is used to
get the Linux boot loader onto the bitsy (and to save away wince, if you so
desire).  The Plan 9 machine is used to get the plan 9 kernel and a read only
file system onto the bitsy.

0) charge up the bitsy.

1) go to
ftp://ftp.handhelds.org/pub/linux/compaq/ipaq/stable/install.html Get
the latest version of the Linux "osloader" and "bootldr" programs
(current versions are 1.3.0 and 0000-2.14.8, respectively).

2.  Use ActiveSync to copy osloader to the bitsy.

3.  Run osloader by clicking on it under the WinCE File Explorer

(4).  Use osloader to save your WinCE flash away.  This takes a while,
as it's 16MB over a 115,200 baud line.

5.  Select "Run" from the osloader menu.  Ignore "Run from RAM"; it's
not needed.

6.  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.

7.  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.

8.  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. 

9.  Make the partitions you need in the bitsy's flash, type, using
the con program:
	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
After each line you'll get a message like `defining partiton: params'.

10. 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, examine the file
paqfiles/mfs to see what you need to change for connecting to your local
file servers.

11. 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".

12. Download the ramdisk, using "load ramdisk" and
"!xms /sys/src/9/bitsy/paqdisk", similarly to 10, above. 

13. Type `boot'.  This time, select "boot Linux" at the
penguin splash screen.  You'll get a Dutch flag, then the boot screen
will say:

	root is from [paq]:

Just wait a while or hit enter in the con window and it'll continue.

14.  The bitsy will now want to calibrate the screen.  It'll put up a
series of crosses that you should press the center of.  Hold the pen
down over each cross for a second or so; aim carefully.  Hold the
machine in your hand the way you'ld normally use it or the calibration
could be off since there is depth to the glass in the screen.

15.  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 slightly different numbers)
	calibrate='-16374 22919 251 -24'
You need to enter a few more things, including,
but not limited to:

	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.

16. To set up the file systems, sweep a window and do the following
sequence of commands.

	# aux/mkflashfs /dev/flash/fs
	
	# aux/flashfs

aux/flashfs created a Plan 9 server in /srv/brzr, which we can use to set up
default directories. 
	
	# 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


17. For safety, reboot the system:

	# reboot

18. 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 point 10).

19.  When you're all set with a working wavelan, you can download new
kernels more quickly using

	# bitsyload k 

and new paqdisks using

	# bitsyload r

(r stands for ramdisk, the name of the partition into which paqdisk goes).
Note that overwriting the ramdisk partition will cause the read-only file
system which forms the root of you namespace to fail.  You'll need to
reboot immediately after bytsyload r.
