Sage Networking Workshop - Installing EmBSD

EmBSD is a cut down variant of OpenBSD. EmBSD 1.1 is based on OpenBSD 2.9. It is intended for making routers etc. One of the design goals was to make it small enough to fit onto a 32MB Compact Flash.

The Net4501 is a small x86 computer designed for use with FreeBSD/EmBSD or similar. It has a PXE BIOS to facilitate diskless booting. There are three 10/100 ethernet ports and a serial port. The serial port is the console. It has a Compact Flash slot for 'disk', and a laptop style 3.3V PCI slot for expansion.

The challenge is getting something installed onto a Compact Flash so you can get the Net4501 going. There are many ways of doing this. Here's how I did it.

A trip to Dick Smith got me a Compact Flash PCMCIA adapter and a 32 Compact Flash card.

I downloaded the latest release (well, development snapshot actually) of EmBSD. With a little fiddling I found out what the installer expected and prepared a bootable CD image with the files I downloaded.

You can grab the latest beta build from

As my old laptop didn't handle the PCMCIA/CF properly I borrowed a laptop for the install. Doing the install doesn't touch the laptop disk, so it's safe to use other peoples gear for this part.

Put the CF card in a PCMCIA adapter. Insert into the laptop. Boot from the CD. Follow the instructions to install onto wd1 from the CD. Tell it to use the whole disk for BSD, and have just one partition, no swap. The install is pretty much as per normal OpenBSD. One problem was the timezone. The path was wrong. It needed to be told to use Etc/GMT to be happy. Don't configure the network, the laptop's network card (if any) isn't relevant or required. If you have a Net4501, tell it to use the serial console.

I tried two CF cards, and on one installboot failed because the bios couldn't figure out the geometry of the CF 'disk'. The geometry is displayed by the BSD boot message. Run installboot manually if required.

You can get to a shell when the install finishes, or by booting from CD and selecting 'Shell' instead of 'Install'.

To find the geometry of the CF, run 'dmesg'. The bit you're after is the number of heads and sectors of the CF. Mount the CF with 'mount /dev/wd1a /mnt', cd to /mnt, run installboot e.g. '/usr/mdec/installboot -v -s 32 -h 4 /mnt/boot /usr/mdec/biosboot wd1'

There is some other cleanup work to be done too.

You'll need to fix fstab so it mounts wd0 instead of wd1, otherwise when you boot up it won't mount the root partition.

cd /mnt/etc
ed fstab

For the serial console you will need to make sure the speed is set correctly. With EmBSD 1.1 they have using the serial console selected during the install, but it doesn't set the speed. The default serial speed on the Net4501 is 19200, and the default speed set in EmBSD is 9600. I went for 19200. To set this up, edit boot.conf and tell it to use 19200:

ed boot.conf
 stty com0 19200 

Once it's booted, EmBSD will start a getty so you can login. It's useful if this is at the same speed too. Edit ttys for serial console speed of 19200:

ed ttys

At this stage you should have a ready to go Compact Flash. Halt the laptop, remove the CF, plug it in to the net4501, apply power.

Philip Plane