Putting OpenBSD on the Soekris

There are several ways to put an OS onto the Soekris:

USB may seem the simplest, but the Soekris doesn't recognize any of my USB sticks. (To test that: stick the stick in and see if it is listed as a harddisk in the boot screen shown above.)

For the network boot one needs a DHCP and a TFTP server. I have those running, so installing/configuring them is outside the scope of this log. However, here is a snippet of the dhcpd.conf

	<...>
shared-network intranet 
  {

  option domain-name "intranet";
  option domain-name-servers 10.0.13.1;

    subnet 10.0.13.0 netmask 255.255.255.0 
      {

        option broadcast-address 10.0.13.255;
        option routers 10.0.13.1;
        next-server 10.0.13.200;

        group openbsd-clients
          {

            next-server 10.0.13.200;
            filename "pxeboot";
            # Note that boot.conf on the TFTP server overrides the path specified in "filename" for the initrd

 host aquarium  { hardware ethernet 00:00:24:ca:31:88 ; fixed-address 10.0.13.249 ; } #

          }# end group openbsd-clients
      }#end subnet 10.0.13.0
}# end shared-network intranet
      

The TFTP is served by tftpd-hpa. Give it a '-v' in /etc/default/tftpd-hpa if you want to see what requests it gets. Then create the necessary files:



tree /srv/tftp/
/srv/tftp/
├── bsd.rd
├── etc
│   ├── boot.conf
│   └── random.seed
└── pxeboot

      

Both bsd.rd and pxeboot were copied from the OpenBSD server. The random.seed is generated using dd if=/dev/random of=/srv/tftp/etc/random.seed bs=512 count=1 status=none, and boot.conf contains:

set tty com0
stty com0 115200
boot bsd.rd
      

See here for details.

With DHCP and TFTP servers in place, we boot the Soekris again, press CTRL-P to get into its 'BIOS':



<...>
comBIOS Monitor.   Press ? for help.

      

I want to use only the second disk, and boot from it too, so I set the boot order accordingly:



show

ConSpeed = 115200
ConLock = Enabled
ConMute = Disabled
BIOSentry = Enabled
PCIROMS = Enabled
PXEBoot = Enabled
FLASH = Primary
BootDelay = 5
FastBoot = Enabled
BootPartition = Disabled
BootDrive = 80 81 F0 FF 
ShowPCI = Enabled
Reset = Hard
CpuSpeed = Default

set BootDrive=81 80 F0

show BootDrive

 = 81 80 F0 FF 

      

Then we explicitly boot from the NIC to use PXE:



boot F0

Intel UNDI, PXE-2.0 (build 082)
Copyright (C) 1997,1998,1999  Intel Corporation
VIA Rhine III Management Adapter v2.43 (2005/12/15)

CLIENT MAC ADDR: 00 00 24 CA 31 88  
DHCP.\
                                                                               
CLIENT IP: 10.0.13.200  MASK: 255.255.255.0  DHCP IP: 10.0.13.1
GATEWAY IP: 10.0.13.251 
                                                                               
TFTP.
TFTP.|
                                                                               
probing: pc0 com0 com1 pxe![2.1] mem[639K 511M a20=on] 
disk: hd0+ hd1+
net: mac 00:00:24:ca:31:88, ip 10.0.13.200, server 10.0.13.200

>> OpenBSD/i386 PXEBOOT 3.44
switching console to com0
com0: 115200 baud
booting tftp:bsd.rd: 3275287+1442816+4358152+0+421888 [88+160+28]=0x911300
entry point at 0x201000

Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.
Copyright (c) 1995-2023 OpenBSD. All rights reserved.  https://www.OpenBSD.org

OpenBSD 7.3 (RAMDISK_CD) #651: Sat Mar 25 11:42:33 MDT 2023
    deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/RAMDISK_CD
real mem  = 536408064 (511MB)
<...>

Welcome to the OpenBSD/i386 7.3 installation program.

Starting non-interactive mode in 5 seconds...

(I)nstall, (U)pgrade, (A)utoinstall or (S)hell? 

Could not determine auto mode.

Response file location? [http://10.0.13.200/install.conf] <enter>
Fetching http://10.0.13.200/install.conf
No response file found; non-interactive mode aborted.

aquarium#

      

We can now start the interactive installation:


aquarium# install

      

I'm not logging the entire installation procedure here. Just some details: