Soekris PXE HowTo

From JasonAntmanWiki
Jump to: navigation, search

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.


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.
Notice - this is a static HTML mirror of a previous MediaWiki installation. Pages are for historical reference only, and are greatly outdated (circa 2009).