- Attached a null modem from cobalt to computer
- Launch minicom. If you don't have it, install it:
cd /usr/ports/comms/minicom/ && make install clean
- Use minicom or 'tip'
tip
Add this line to /etc/remote:
cobalt:dv=/dev/cuad0:br#115200:pa=none:
Then, launch this command tip cobalt. The 'remote' file holds 'shortcuts' and we just created one for cobalt that tip uses. :)
minicom
Tip really is easier, but if you have trouble, try minicom (in the ports). Config minicom with these serial port parameters:
A - Serial Device : /dev/cuaa0
B - Lockfile Location : /var/spool/lock
C - Callin Program :
D - Callout Program :
E - Bps/Par/Bits : 115200 8N1
F - Hardware Flow Control : No
G - Software Flow Control : No
- Connect the null modem, ethernet cable (to Eth2 Port on Cobalt) and power up. If you don't get any output in your tip or minicom winsow, you man need to activate the console port, you must follow these steps:
Hold the reset button ("pencil" button left of the keypad area on the front) in while powering on to toggle on/off the firmware console on the serial port. It runs at 115200 bps, 8N1. After changing that setting, the machine needs another power-cycle to actually use the new setting. - NetBSD site
- From minicom, press the SPACEBAR during boot (it boots fast, so tap the spacebar repeatedly). You will get a window like this:
Cobalt Microserver Diagnostics - 'We serve it, you surf it'
Built Wed Mar 3 21:26:25 PST 1999
1.LCD Test................................PASS
2.Controller Test.........................PASS
5.Bank 0:.................................64M
6.Bank 1:.................................64M
7.Bank 2:.................................64M
8.Bank 3:.................................64M
9.Serial Test.............................PASS
10.PCI Expansion Slot....................**EMPTY**
12.IDE Test................................PASS
13.Ethernet Test...........................PASS
16.RTC Test................................PASS
Cobalt:
- Install NetBSD on your NFS server. The Cobalt will read this stuff over the network. I placed the install in /data/netbsd. First, you need to download the binaries from netbsd.org.
After that, the NetBSD sets can be extracted from NFS. You need to extract at least etc, base and kern, comp is strongly recommended, the others (text, games, man, xbase, ...) don't hurt. The sets are in the "cobalt/binary/sets" of the latest NetBSD release.
- NetBSD site
Here is how I did it:
# download iso
fetch -o /tmp/cobaltcd.iso \
ftp://iso.netbsd.org/pub/NetBSD/iso/1.6.2/cobaltcd.iso
# create virtual node from disk image
mdconfig -a -t vnode -f /tmp/cobaltcd.iso -u 0
# mount virtual node
mount_cd9660 /dev/md0 /mnt
# go the the path where nfs is configured to share from
cd /data/netbsd
# unpack all the binaries from the mounted iso image
tar xvzf /mnt/cobalt/binary/sets/comp.tgz
tar xvzf /mnt/cobalt/binary/sets/etc.tgz
tar xvzf /mnt/cobalt/binary/sets/base.tgz
tar xvzf /mnt/cobalt/binary/sets/kern-GENERIC.tgz
# copy the iso's into your NFS area for later.
mkdir /data/netbsd/dist
cp /mnt/cobalt/binary/sets/*tgz /data/netbsd/dist
# we will need this later...
fetch ftp://ftp.netbsd.org/pub/NetBSD/packages/1.6.1/cobalt/All/e2fsprogs-1.32.tgz
# The cobalt wants a gzip'd version of the kernel
gzip netbsd
# for good luck with rarpd
mkdir 192.168.0.250
cd /data/netbsd/dev && sh MAKEDEV minimum
- Lanuch your NFS server on your host box (FreeBSD 5.x in my case). Make sure your firewall allows NFS... I'd just turn your firewall completely off for this install. Oh, check /etc/hosts.allow if you use TCPWRAPPERS...
- Set up /etc/exports:
### /etc/exports
# localhost is good for testing... eg
# mount localhost:/data/netbsd /mnt
/data/netbsd -maproot=root localhost
/data/netbsd -maproot=root -network 192.168.0.0 -mask 255.255.255.0
- Launch rpcbind/nfsd/mountd. (FreeBSD 4.x may use portmap inplace of rpcbind.)
rpcbind
nfsd -u -t -n 4
mountd -rn
- When you netboot the Cobalt, it needs to be told what IP to use. Launch rarpd.
- Set up your /etc/ethers. The first time you just have to turn on the machine and run tcpdump to grap the ethernet address from the cobalt.
### /etc/ethers
0:10:e0:0:4f:85 cobalt.monkeybrains.net
- verify your DNS setup (however you choose) and test it:
host cobalt
cobalt.monkeybrains.net has address 192.168.0.250
- Launch rarpd
rarpd -s -a -t /data/netbsd
- Have a DHCP server running on your network... configure it like this:
### /usr/local/etc/dhcpd.conf
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.250 192.168.0.254;
option domain-name-servers 206.13.28.12;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
option root-path "/data/netbsd";
}
host cobalt {
hardware ethernet 0:10:e0:0:4f:85;
filename "/netbsd.gz";
server-name "192.168.0.3";
}
Launch DHCP
dhcpd
- Do the netboot from the minicom window! This is the exciting part.
bfd /netbsd.gz nfsroot=/data/netbsd
And if all goes well, you boot the kernel! You need to tell the Cobalt to continue booting from the network. Nota Bene: the bolded responses you will need to type in:
....
boot device: wd0
root on wd0a dumps on wd0b
no file system for wd0 (dev 0x600)
cannot mount root, error = 79
root device (default wd0a): ?
use one of: tlp0 wd0[a-p] tlp1 ddb halt reboot
root device (default wd0a): tlp1
dump device: none
file system (default generic): ?
use one of: generic nfs ext2fs ffs ddb halt reboot
file system (default generic): nfs
root on tlp1
nfs_boot: trying DHCP/BOOTP
nfs_boot: DHCP next-server: 192.168.0.3
nfs_boot: my_domain=monkeybrains.net
nfs_boot: my_addr=192.168.0.254
nfs_boot: my_mask=255.255.255.0
nfs_boot: gateway=192.168.0.1
root on 192.168.0.3:/data/netbsd
/etc/rc.conf is not configured. Multiuser boot aborted.
Enter pathname of shell or RETURN for sh: sh
Apr 22 07:31:23 init: can't exec sh for single user: No such file or directory
Terminal type is vt100.
We recommend creating a non-root account and using su(1) for root access.
# Tada! You are in a shell!
- Now, you need to set up the harddrive. Partition, format, and mount!
Make sure you have the jumpers set to "single drive" and not "cable select".
run fdisk -iu wd0
When you are done, you should have something like this when you check
fdisk info with fdisk wd0:
Disk: /dev/rwd0d
NetBSD disklabel disk geometry:
cylinders: 16383 heads: 16 sectors/track: 63 (1008 sectors/cylinder)
BIOS disk geometry:
cylinders: 16383 heads: 16 sectors/track: 63 (1008 sectors/cylinder)
Partition table:
0: sysid 131 (Linux native)
start 63, size 131072 (64 MB), flag 0x80
beg: cylinder 0, head 1, sector 1
end: cylinder 130, head 1, sector 32
1: sysid 169 (NetBSD)
start 131135, size 104857600 (51200 MB), flag 0x0
beg: cylinder 130, head 1, sector 33
end: cylinder 1022, head 15, sector 63
2:
3:
disklabel -i -I wd0
partition> ?
? print this menu
C make partitions contiguous
E print disk label and current partition table
I change label information
N name the label
P print current partition table
Q quit
R rounding (c)ylinders (s)ectors
W write the current partition table
[a-p] define named partition
partition> P
8 partitions:
# size offset fstype [fsize bsize cpg/sgs]
c: 104857600 131135 unused 0 0 # (Cyl. 130*- 104155*)
d: 117231408 0 unused 0 0 # (Cyl. 0 - 116300)
e: 131072 63 Linux Ext2 0 0 # (Cyl. 0*- 130*)
f: 104857600 131135 unused 2048 16384 328 # (Cyl. 130*- 104155*)
partition> W
Label disk [n]? y
Label written
partition> Q
run disklabel -e wd0 and fixup the letters and fstype...
# size offset fstype [fsize bsize cpg/sgs]
a: 104857600 131135 4.2BSD 2048 16384 328 # (Cyl. 130*- 104155*)
c: 104857600 131135 unused 0 0 # (Cyl. 130*- 104155*)
d: 117231408 0 unused 0 0 # (Cyl. 0 - 116300)
e: 131072 63 Linux Ext2 0 0 # (Cyl. 0*- 130*)
## format
newfs /dev/wd0a
## mount
mount /dev/wd0a /mnt
## install e2fsprogs (on the NFS server, or in /mnt)
cd /
tar zxvf /dist/e2fsprogs-1.32.tgz
## format Linux partition (the cobalt needs to boot off this little guy)
/sbin/mke2fs -r 0 -O none /dev/wd0e
Note, wd0e is type Linux Ext2 and is smallish.
The wd0a is larger and is the NetBSD filesystem type.
- Unpack dist onto NetBSD partition
cd /mnt
tar xzvf /dist/cobalt/binary/sets/base.tgz
tar xzvf /dist/cobalt/binary/sets/etc.tgz
tar xzvf /dist/cobalt/binary/sets/comp.tgz
tar xzvf /dist/cobalt/binary/sets/man.tgz
tar xzvf /dist/cobalt/binary/sets/games.tgz
tar xzvf /dist/cobalt/binary/sets/kern-GENERIC.tgz
- Setup the smaller Linux Partition for the Cobalt boot process.
mount /dev/wd0e /altroot
mkdir /altroot/boot
cd /altroot/boot
cp /mnt/netbsd vmlinux
gzip -v9 vmlinux
cp vmlinux.gz vmlinux_raq-2800.gz
cp vmlinux.gz vmlinux_RAQ.gz
cp vmlinux.gz /usr/games/.doug
- Set up some /etc stuff...
- Make your (/mnt)/etc/fstab something like this:
### /etc/fstab
/dev/wd0a / ffs rw 1 1
/dev/wd0b none swap sw 0 0
/dev/wd0e /altroot ext2fs rw 1 2
- /mnt/etc/rc.donf
### /etc/rc.conf
defaultroute="192.168.0.1"
hostname="cobalt.monkeybrains.net"
fsck_flags="-y"
#dhclient="yes"
sshd="YES"
auto_ifconfig="YES"
ifconfig_tlp1="192.168.243 255.255.255.0"
reboot