Soekris PXE HowTo
This is a small HowTo for installing an operating system on a Soekris net4826 Embedded System.
It assumes that you have access to the config of your DHCP server (I'm using IPcop on my LAN) and that you have a running TFTP server. You should also have the image you want to install on a computer on the LAN. You will need to have serial terminal access to the machine. I used minicom. The default setting is 19200 baud, 8/N/1.
Contents |
TFTP setup
- Download (from OpenBSD repos) pxeboot, and also get the latest versions of flashboot (we'll be using "bsd-SOEKRIS4501") and put them in the root directory of your TFTP server. You can get the versions I used from my site: pxeboot bsd-SOEKRIS4501.
- In your TFTP root directory, create a subdir "etc" and in it place a file called boot.conf that looks like:
stty com0 19200 set tty com0 boot tftp:/bsd-SOEKRIS4501
this file sets the serial console to 19200 baud, sets it as the main tty/console, and tells pxe to boot the file "bsd-SOEKRIS4501".
DHCP setup
Connect your Soekris board to the network via Ethernet and boot it. Boot into the existing OS if you have one, or run a PXE boot (as shown below) if needed. It will attempt to get an IP via DHCP. Let it do this. Once finished, configure your DHCP server to setup a static address for it, and set the following options:
- next-server - if your TFTP server is on a different machine from your DHCP server, set this to the TFTP server's IP.
- root-path - the full path to your tftp server's root - mine, using SuSE's builtin TFTP config, was /tftpboot.
- filename - pxeboot
- Save settings.
Installation Image
You will fetch the installation image from a LAN host via SSH. You should know where this image resides.
PXE booting
- Reboot the device. It will display a bunch of information from the BIOS. Very quickly, you will get a table of hardware information, and a line after it prompting you to enter Ctrl-P to enter monitor mode. Press Ctrl-P (this happens quickly during boot).
- You will be given a ">" prompt. Enter "boot f0" (enter) to start PXE boot.
- OpenBSD will boot and you will get a "login:" prompt. Login as root with password "password".
- When prompted for a terminal type, enter "vt100".
- Run dhclient sis0 to get DHCP on the Ethernet adapter.
- Now enter
(pfctl -sr;echo pass out all keep state)|pfctl -f -
- Get the installation image. It will be too big for the existing allocated memory, so we'll do this all in one stream:
ssh user@host cat /path/to/install.img | gunzip | dd of=/dev/rwd0c bs=64k
This will write the image file to the internal CF memory.
- reboot (issue command "reboot").
- The machine should now boot into the image that you just installed.
- NOTE: my net4526's have a console speed of 19200 baud, but my version of the PXE boot BSD expects 9600 baud. Personally, rather than edit my BSD image, I just switch Kermit once BSD comes up.