Subject: Install document for CATS computers
To: None <port-arm32@netbsd.org>
From: Brian Cully <shmit@kublai.com>
List: port-arm32
Date: 01/20/1999 18:00:02
--NKoe5XOeduwbEQHU
Content-Type: text/plain; charset=us-ascii

I just whipped this up now in the hopes that future generations
will have an easy time of getting NetBSD on their neat-o CATS
computers.

It's not very good, but better than nothing. Do with it as you
see fit.

-- 
Brian Cully						<shmit@rcn.com>
``I'm not surprised,'' said I. ``You created God in your own image,
and when you found out he was no good you abolished him. It's quite a
common form of psychological suicide.''
				-- Robertson Davies, Fifth Buisiness    

--NKoe5XOeduwbEQHU
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="netbsd.cats.install"

		Installing NetBSD/arm32 on your CATS
		------------------------------------
						Brian Cully <shmit@kublai.com>

First, get a snapshot of NetBSD/arm32 installed on an NFS server,
so that the NetBSD kernel will have a root file system and the
regular gammut of utilities. Luckily, your CATS computer came with
a CDROM that contains a snapshot and a kernel, so you can use that
one.

Then, set up a bootp/bootparam server on your LAN; the Firmware
uses bootp to get far enough to TFTP boot the kernel, and the kernel
uses bootparam to get the mount points. Here's the configuration
I used:

/etc/bootptab:
--------------
[SNIP]
install00.noc.erols.net:\
	:ht=ethernet:ha=00002165a8fd:\
	:ip=207.172.25.101:sm=255.255.255.0:\
	:dn=noc.erols.net:ds=207.172.25.236:gw=207.172.25.1:\
	:sa=207.172.25.236:\
	:rp=/usr/local/NetBSD:bf=/netbsd:
[SNIP]

/etc/bootparams:
----------------
[SNIP]
install00.noc.erols.net root=natasya.noc.erols.net:/usr/local/NetBSD
[SNIP]

Now, at the CATS firmware, boot off of your network device:

[SNIP]
> boot ne0:/netbsd -s
[SNIP]

When the kernel comes up, give it the network device for your root
and dump device:

[SNIP]
root device (wd0a): ne0
dump device: ne0
[SNIP]

Then disklabel your disk as you like, here's the one I used for my
8GB IBM Deskstar:

[SNIP]
# /dev/rwd0c:
type: foo
disk: bar
label: 
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 16
sectors/cylinder: 1008
cylinders: 16383
total sectors: 16514064
rpm: 5400
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 14          # milliseconds
track-to-track seek: 9  # milliseconds
drivedata: 0 

6 partitions:
#        size   offset     fstype   [fsize bsize   cpg]
  a:   132048        0     4.2BSD     1024  8192    16   # (Cyl.    0 - 130)
  b:   524160   132048       swap                        # (Cyl.  131 - 650)
  c: 16514064        0     unused        0     0         # (Cyl.    0 - 16382)
  d: 16514064        0     unused        0     0         # (Cyl.    0 - 16382)
  e: 13757184   656208     4.2BSD     1024  8192    16   # (Cyl.  651 - 14298)
  f:  2100672 14413392     4.2BSD     1024  8192    16   # (Cyl. 14299 - 16382)
[SNIP]

Then newfs your partitions and untar the tarballs you want onto
the partition. You should now be able to reboot and get into NetBSD
hosted off of your hard disk:

[SNIP]
> boot wd0a:/netbsd -s
[SNIP]

Now configure /etc/rc.conf and you're good to go.

POSSIBLE PROBLEMS
-----------------
At the moment, the CATS board can only boot off of an IDE drive or
a PCI NE2000 ethernet controller. The only way to install NetBSD
is to boot of off the ethernet controller or manage to duplicate an
existing NetBSD/arm32 disk onto your disk.

If you made the mistake, like I did, of trying to bootstrap NetBSD/arm32
from NetBSD/i386, you'll quickly find out that NetBSD/i386 puts the
disklabel onto a part of your hard drive that the CATS firmware can't
find. Moreover, it'll ruin your chances of creating the label from
NetBSD/arm32 and having NetBSD recognise the disklabel (although
the firware will find it). To get around this, just zero the first
few sectors of the disk:

[SNIP]
# dd if=/dev/zero of=/dev/rwd0c bs=65536 count=1
[SNIP]

The command above is actually overkill, since you only need to delete
sector 1 (which is where the disklabel is stored), but I figure, better
safe than sorry.

--NKoe5XOeduwbEQHU--