Updating Soekris BIOS using FreeBSD

Last modified: May 15, 2008

1 - Summary
2 - USB serial adapter
3 - Download BIOS
4 - Connect to Soekris device
5 - Update BIOS

1 - Summary

This guide explains how to update the BIOS for Soekris devices using FreeBSD.
It explains how to connect to a Soekris device using a serial connection. As
an example I will show how I updated my Soekris firewalls.

2 - USB serial adapter

I will be using a USB serial adapter in my FreeBSD based laptop. You will
need to make sure the following options are in your kernel.

  device          ugen            # Generic
  device          ucom            # Generic com ttys
  device          uplcom          # Prolific PL-2303 serial adapters

Plug in the USB serial adapter into the computer and check to make sure it
was detetectd properly. Run dmesg and you should a line similiar to this at
the end.

# dmesg
ucom0: Prolific Technology Inc. USB-Serial Controller, class 0/0, rev 1.10/3.00,
addr 2 on uhub0

Find what the actual device is listed as.

# ls -l /dev/cuaU*
crw-rw----  1 uucp  dialer    0, 102 May 15 07:16 /dev/cuaU0
crw-rw----  1 uucp  dialer    0, 103 May 15 07:01 /dev/cuaU0.init
crw-rw----  1 uucp  dialer    0, 104 May 15 07:01 /dev/cuaU0.lock

In our example it's listed as /dev/cuaU0

3 - Download BIOS

Make sure you have wget and lrzsz installed, then download the latest BIOS
version for your model from the Soekris website.

# sudo pkg_add -r wget
# sudo pkg_add -r lrzsz
# cd /tmp
# wget

4 - Connect to Soekris device

Connect a serial cable from the USB serial adapter to the console port on
the back of the Soekris device. Type the following and press Enter to connect.
I have previously set the console speed on this Soekris device to be 9600.
The default is 19200.

# cu -l /dev/cuaU0 -s 9600


login: xxx
Last login: Wed May 14 23:50:40 on tty00
Welcome to!
[user@fw1 user]#

5 - Update BIOS

Reboot the Soekris device and get into the comBIOS Monitor by pressing Ctrl-P.

[user@fw1 user]# sudo reboot
/etc/rc.shutdown in progress...
/etc/rc.shutdown complete.
syncing disks... done

POST: 012345689bcefghipsajklnopqr,,,tvwxy

comBIOS ver. 1.30  20070326  Copyright (C) 2000-2007 Soekris Engineering.


0256 Mbyte Memory                        CPU Geode 266 Mhz

Pri Mas  HTS541020G9AT00                 LBA Xlt 1024-255-63  19535 Mbyte

comBIOS Monitor.   Press ? for help.

Initiate the download.

> download

Start the transfer by typing '~C'. This is 'Shift+~' then a capital C. The
file was saved in the /tmp directory.

Start sending file using XMODEM/CRC protocol.
~CLocal command? lsx /tmp/b4801_133.bin
Sending /tmp/b4801_133.bin, 608 blocks: Give your local XMODEM receive command now.
Bytes Sent:  77824   BPS:885

Transfer complete

File downloaded succesfully, size 608 Blocks.

Update the flash BIOS, then reboot.

> flashupdate
Updating BIOS Flash ,,,,,,,,,,,,,,,,,,,,,,,,..,,,,.. Done.

> reboot

POST: 012345689bcefghipsajklnopqr,,,tvwxy

comBIOS ver. 1.33  20080103  Copyright (C) 2000-2007 Soekris Engineering.


0256 Mbyte Memory                        CPU Geode SC1100 267 Mhz

Pri Mas  HTS541020G9AT00                 LBA Xlt 1024-255-63  19535 Mbyte

   Seconds to automatic boot.   Press Ctrl-P for entering Monitor.
Using drive 0, partition 3.
probing: pc0 com0 com1 pci mem[639K 255M a20=on]
disk: hd0+
>> OpenBSD/i386 BOOT 2.13
com0: 9600 baud
switching console to com0
>> OpenBSD/i386 BOOT 2.13
booting hd0a:/bsd: 5567348+871228 [52+283664+263996]=0x6a9ba4
entry point at 0x200120Jū
[ using 548084 bytes of bsd ELF symbol table ]
Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.
Copyright (c) 1995-2007 OpenBSD. All rights reserved.

OpenBSD 4.1 (GENERIC) #1435: Sat Mar 10 19:07:45 MST 2007

login: ~

Type '~.' to exit. Press 'Shift+~' then period.

Last modified: Thu Jan 1 00:00:00 1970 UTC
Packetwatch Research 2002-2017.