Subject: XServe autoboot explained
To: None <port-macppc@netbsd.org>
From: Emmanuel Dreyfus <manu@netbsd.org>
List: port-macppc
Date: 07/17/2003 19:33:47
Hello everybody

Apple's XServe runs NetBSD quite well. There are a few caveats that are not
covered by our documentation:

- In order to get default I/O to the serial console, remove the video board.

- Serial console runs at 56.7k in OF, not 38.4k. The install kernel runs with 
a 38.4k serial console, therefore we must change the serial console settings
after booting from OF and before running sysinst. 

GENERIC kernel seems to run the console at OF speed, that is, 56.7k.

- It's quite tricky to get the machine to auto-boot. Matt Thomas gave me
some tricks I was not able to find in the documentation. Maybe this applies to 
more OF3 machines than just the XServe:

1) install NetBSD, keeping an unused 2880 blocks partition at offset 0. Give
that partition letter d, g, or whatever, but not a.

2) Create an ISO image with just ofwboot.xcf:
# mkisofs -o isoboot.fs ofwboot.xcf
Note that vnconfig seems unable to configure to use that image (too small),
so you won't be able to check if the image is okay from NetBSD. Is it a bug?

3) backup your disklabel
# disklabel wd0 > disklabel.wd0

4) copy the ISO image to partition zero (let's say you named it g)
# dd if=isoboot.iso of=/dev/wd0g

5) Doing point 4, you just erased wd0's disklabel. If you reboot now, 
you'll have to reinstall NetBSD from scratch (except if you saved your 
disklabel on another disk).  Reinstall the disklabel, using the backup 
you just made as the template:
# disklabel -I -e wd0

Label partition zero (we said it was g) as ISO9660, because this is what 
it is now. The disklabel gets reinstalled over the ISO image, but 
it seems to be okay: the image does not get corrupted (I assume things 
are set up so that it's safe)

6) Reboot. In OF, You can check that the ISO image is okay:
> dir hd:\

You should see the ISO image content. I don't know why, but on my image, 
the file turned to be OFWBOOT.XCF;1

On the XServe, first hard disk is hd, change this according to your OF
devalias.


7) Set the boot-device
> setenv boot-device hd:\OFWBOOT.XCF;1
Of course, OFWBOOT.XCF;1 is the name you got from dir hd:\ The ;1 here
is not a magic OF trick, it's part of the file name.

8) Set the boot-file
> setenv boot-file hd:0
This is used by ofwboot.xcf. I assume the 0 here stands for first partition 
in the disklabel (ie: partition a), but I'm not sure. 

9) Set the boot-command
> setenv boot-command boot netbsd
You can also set boot-file to hd:0,/netbsd and boot-command to just boot, 
the result is the same.

10) Set auto-boot
> setenv auto-boot? true

11) You are done, rest the beast and look it auto-booting:
> reset-all

Last question: you do we stop the machine from auto-booting when using the
serial console? Do we need to attach a keyboard and press cmd-opt-O-F?

-- 
Emmanuel Dreyfus                             
manu@netbsd.org