Digital Equipment Corporation Shark (DEC DNARD)


Introduction

This page describes how to install NetBSD onto a DEC DNARD, also known as a Shark. A DNARD is the Digital Equipment Corporation reference implementation of a "Network Computer" - a graphical terminal or thin client championed by the likes of Larry Ellison (CEO of Oracle). Based around a 233 MHz StrongARM processor, the machine consists of a single board with graphics, sound and network built in. Although primarily intended as a diskless terminal that boots an operating system from a central server, it is possible to fit a 2.5" IDE hard drive and run an operating system directly from it. If your machine doesn't have the suitable cables already, then you will need a regular IDE cable and an adaptor that connects both IDE and power to the hard drive. In the UK, a store like Maplin stocks all the required components (drive, cable and converter) for around 60GBP. I was unable to find a suitable bracket that would allow me to mount the drive inside the Shark - instead I used velcro pads to fix the drive on top of one of the card bays.

Installing NetBSD

The TFTP Server

At the time of writing, one of my Sharks is running NetBSD 4.0.1 and the other is running 5.99.02. The process for installing required an existing NetBSD machine to function as a TFTP server for the installation kernel. Step one, therefore, was to setup the TFTP server. To do this, login as root on the TFTP server and create the following directory:

# mkdir /tftpboot

Copy the Shark installation kernel into this directory, and decompress it. For NetBSD 4.0.1, you would use the following commands:

# ftp ftp://ftp.fr.netbsd.org/pub/NetBSD/NetBSD-4.0.1/shark/installation/instkernel/netbsd.gz
...
# gzcat netbsd.gz > /tftpboot/shark-inst

Note that the commands above use the French mirror - you may want to pick one that is geographically closer to you.

Edit /etc/inetd.conf, and uncomment the TFTP entry for UDP:

tftp            dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -s /tftpboot

Check that inetd is enabled in the RC scripts, adding the following line to /etc/rc/conf if necessary:

inetd=YES

Start inetd with the following command:

# /etc/rc.d/inetd start
...

The Shark

Having installed the hard drive into your Shark, power it up with a PS/2 keyboard and a monitor connected. You will also need to have the machine connected to your network in order to transfer the installation kernel and install sets. On powering up, you should be presented with the Open Firmware prompt. If the machine tries to netboot, you can get a prompt by holding down the Ctrl and Break keys on a typical PS/2 keyboard.

I have no control of the DHCP server on the network I am using, but IP addresses are tied to specific ports on the switch I connect to. I noted the address that another machine was given when it connected to the network, and used this as the Shark client IP address. I also noted the IP address of the TFTP server and the default gateway. Now try and netboot the installation kernel with following command:

> boot net:<server_ip_address>,shark-inst,<client_ip_address>,<gateway_ip_address>
...

The gateway may be optional if the client (Shark) and server (TFTP server) are on the same subnet, but I didn't try to find out. This should boot the installation kernel, from which point on you can peform a normal install with sysinst. Note that if the hard drive you are installing to has been used in another machine, you may have to clear the MBR. If so, this can be done at the end of the install by running a shell from the utilities menu. The command to clear the MBR is as follows:

# dd if=/dev/zero of=/dev/wd0c bs=512 count=1

Now reboot, and from the Open Firmware prompt set the default boot device and boot:

> setenv boot-device disk:netbsd.aout
> boot
...

The screen will blank for several seconds, and you should then see the familiar boot messages.

X Window System

On the Shark that's running 5.99.02, I also have the native Xorg working. This is a revision 5 machine, so it uses the wsfb driver (xorg.conf).


Last updated: 26th September 2008