This is a quick guide to booting the OpenBSD installer on a PC Engines
ALIX board with tinyBIOS (such as the ALIX 2d3) via PXE, using just
the following:
- PC with two network interfaces. One of these needs to be Ethernet,
and the other must connect to the Internet. For example, any standard
PC laptop with both WiFi and Ethernet adapters will work if there’s a
WiFi Internet connection available.
- Null modem cable
- Ethernet crossover cable
- USB-serial adapter (unless your PC has a built-in RS-232 port)
- Ubuntu Linux 10.10 desktop live CD
Thanks to the versatility of the Ubuntu live CD (specifically the use of
AUFS to provide a writable root directory in RAM), you can set up the
necessary PXE boot server without making any permanent changes to your
PC.
Ubuntu packages
Boot the Ubuntu live CD and quit the installer. Ensure that Ubuntu has a
working Internet connection, then enable the “universe” package
repository by uncommenting the corresponding lines in
/etc/apt/sources.list. Now open a terminal and run the following
commands to install prerequisite packages:
$ sudo -s
# apt-get update
# apt-get install dhcp3-server tftpd xinetd cu
Network configuration & NAT
Run this command to configure a static address on the Ethernet interface:
# ifconfig eth0 up 192.168.2.1 netmask 255.255.255.0
I’ve found you may also need to configure the static address in the
“Network Connections” dialog (under Preferences in the System menu) to
prevent Network Manager from getting in the way. This is sort of
hackish, but we only need it to work for the duration of the install.
Now enable routing and configure a simple NAT using iptables so that the
ALIX board can access the internet through your PC’s wireless connection:
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
# iptables -A FORWARD -i eth0 -j ACCEPT
# iptables -A FORWARD -i wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
Connect your PC’s Ethernet port to the first port on your ALIX board
using the crossover cable. On the ALIX 2d3, the first port is the one
adjacent to the USB ports.
DHCP server
Replace /etc/dhcp3/dhcpd.conf with the following contents:
authoritative;
shared-network LOCAL-NET {
option domain-name-servers 8.8.8.8;
subnet 192.168.2.0 netmask 255.255.255.0 {
option routers 192.168.2.1;
filename "pxeboot";
range 192.168.2.100 192.168.2.200;
default-lease-time 600;
max-lease-time 7200;
}
}
Also, edit the file /etc/default/dhcp3-server so that the last line reads:
INTERFACES="eth0"
Now you can start the DHCP server.
# /etc/init.d/dhcp3-server start
TFTP server
Create an xinetd file /etc/xinetd.d/tftp as:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
}
Next create the aforementioned directory /tftpboot. Download the
files bsd.rd and pxeboot from the /4.8/i386/ directory on
your favorite OpenBSD mirror and copy them into this directory.
Restart xinetd to load the new configuration.
# /etc/init.d/xinetd restart
Serial console
Connect your laptop’s serial port (or plugged-in USB-serial adapter) to
the ALIX board’s serial port with your null modem cable, then use the
cu command to connect to the serial console. For example, if you’re
using a USB adapter and your ALIX’s BIOS has the default serial port settings:
# cu -e -o -s 38400 -l /dev/ttyUSB0
PXE boot
With your serial console ready, plug in the ALIX board’s power adapter,
and you should see the board begin to boot. While the memory check is
being performed, press the ‘s’ key to enter the tinyBIOS settings, and
verify that PXE boot is enabled (if it isn’t, press ‘e’ to toggle it).
After exiting the BIOS settings menu, the board will reboot. It should
find your PXE server and bring you to an OpenBSD boot menu. Enter the
following at this menu:
boot> stty com0 38400
boot> set tty com0
boot> bsd.rd
The installer will boot from the bsd.rd image that you downloaded.
Now perform the installation as normal, but remember to configure the
serial port as your system console in the installer.