Soekris Single Board Computer, BSD & Linux

Navigation
Soekris Info

I recently got myself a Soekris Single Board Computer (SBC) at the Linux Expo at Olympia in London. SBC's typically provide enough "computer" to do something useful ; a typical SBC will have a CPU, some memory and some interface to the outside world.

My Soekris net4801 is an i386-based SBC with and AMD Geode CPU (AMD info page ) clocked at 266MHz, with 128MB RAM, 3 10/100 network interfaces, 2x USB ports, a serial port, a compact-flash type 1 slot, a mini-PCI slot, a 3.3V PCI slot, a 2.5" IDE interface and various other headers.

If you're interested in getting one, I got mine from KD85.com who ship within Europe only. US and other international customers had best take a peek at the Soekris US order page.

I've described my experiments with the device below ; I had a couple of strange problems with some media. SanDisk seemed to work best for me and others. It has been suggested that industrial grade media may be the best choice for development since it can tolerate many more rewrite cycles.

Latest news is at the top (i.e. right below here).



Soekris Diary - Latest - 16 Oct

Redid Pebble with a new 128Mb SanDisk CF card. Worked fine and was recognised correctly as Primary Master:-

Pri Mas  SanDisk SDCFB-128               LBA 980-8-32  125 Mbyte
PXE-M00: BootManage UNDI, PXE-2.0 (build 082)
Slot   Vend Dev  ClassRev Cmd  Stat CL LT HT  Base1    Base2   Int 
------------------------------------------------------------------
0:00:0 1078 0001 06000000 0107 0280 00 00 00 00000000 00000000 00
0:06:0 100B 0020 02000000 0107 0290 00 3F 00 0000E101 A0000000 10
0:07:0 100B 0020 02000000 0107 0290 00 3F 00 0000E201 A0001000 10
0:08:0 100B 0020 02000000 0107 0290 00 3F 00 0000E301 A0002000 10
0:18:2 100B 0502 01018001 0005 0280 00 00 00 00000000 00000000 00
0:19:0 0E11 A0F8 0C031008 0117 0280 08 38 00 A0003000 00000000 11
	


13 Oct

Had the Soekris on for 45mins or so and noticed CPU getting rather hot (too hot to touch). Powered off ... Wim suggested either a bug or dodgy CF as to why the Soekris was seeing it as a Slave drive. Re-running now with the OpenBSD image on a 32Mb SanDisk CF card the CPU shows a temp of 35° C after boot with the login prompt showing. Some 30 mins later it has gone up slightly to 37° C and another half hour later to 38° C. It did not seem to rise (or drop) much beyond that temperature.



12 Oct

Got Pebble from http://www.nycwireless.net/pebble/ and followed instructions, i.e. as root did:-

fdisk /dev/sdd1 # create one large partition
mkfs.ext2 /dev/sdd1 # create the ext2 file system
mkdir /scratch/pebble # create the pebble untar space
cd /scratch/pebble # change to pebble dir
tar --numeric-owner -jxvf ..//pebble.v41.tar.bz2

Edited /scratch/pebble/pebble.update to change the following:

DEFAULTMOUNTCF=/mnt/tmp
DEFAULTMOUNTPEB=/scratch/pebble
DEFAULTDISK=/dev/sdd

Then ran ./pebble.update and chose installation mode 2 (for net4501 but hey!). Also note the CF must not be mounted ;-)


NOTAM: when trying to run the script (as root) I got:

	-su: /scratch/pebble/pebble.update: /bin/sh: bad interpreter: Permission denied
	

It turned out that /scratch was mounted with options "noauto,user" but I needed to mount it with "noauto,user,rw,exec" as well.


Installed Pebble on a 128Mb Kingston card - didn't work, kernel panic. DD'd over the 32Mb OpenBSD image and got this:-

0128 Mbyte Memory                        CPU Geode 266 Mhz 
Pri Mas  TOSHIBA THNCF128MMG             LBA 978-8-32  125 Mbyte
PXE-M00: BootManage UNDI, PXE-2.0 (build 082)
Slot   Vend Dev  ClassRev Cmd  Stat CL LT HT  Base1    Base2   Int 
------------------------------------------------------------------
0:00:0 1078 0001 06000000 0107 0280 00 00 00 00000000 00000000 00
0:06:0 100B 0020 02000000 0107 0290 00 3F 00 0000E101 A0000000 10
0:07:0 100B 0020 02000000 0107 0290 00 3F 00 0000E201 A0001000 10
0:08:0 100B 0020 02000000 0107 0290 00 3F 00 0000E301 A0002000 10
0:18:2 100B 0502 01018001 0005 0280 00 00 00 00000000 00000000 00
0:19:0 0E11 A0F8 0C031008 0117 0280 08 38 00 A0003000 00000000 11
 1 Seconds to automatic boot.   Press Ctrl-P for entering Monitor.
Using Drive: 0 Partition: 3
reading boot.....
Bad magic

which also didn't work ;-)

When I installed Pebble on the 64Mb Lexar it also failed due to the CF being detected as slave (hdb) and hence the root FS could not be mounted:-

Pri Sla  LEXAR ATA FLASH                 LBA 984-4-32  63 Mbyte
PXE-M00: BootManage UNDI, PXE-2.0 (build 082)
Slot   Vend Dev  ClassRev Cmd  Stat CL LT HT  Base1    Base2   Int 
-------------------------------------------------------------------
0:00:0 1078 0001 06000000 0107 0280 00 00 00 00000000 00000000 00
0:06:0 100B 0020 02000000 0107 0290 00 3F 00 0000E101 A0000000 10
0:07:0 100B 0020 02000000 0107 0290 00 3F 00 0000E201 A0001000 10
0:08:0 100B 0020 02000000 0107 0290 00 3F 00 0000E301 A0002000 10
0:18:2 100B 0502 01018001 0005 0280 00 00 00 00000000 00000000 00
0:19:0 0E11 A0F8 0C031008 0117 0280 08 38 00 A0003000 00000000 11
 1 Seconds to automatic boot.   Press Ctrl-P for entering Monitor.
LI
LILLOO  2222..22  LLooaaddiinngg  ppeebbbbllee.....................
	

NB: after LILO prompt need to change speed to 9600. Since this annoyed me I edited /etc/inittab and changed the line which controls the getty on Serial port 0:-

     T0:23:respawn:/sbin/getty -L ttyS0 19200 vt100

to:-

     T0:23:respawn:/sbin/getty -L ttyS0 19200 vt100

Oddly enough with the Lexar it seems to see it as a slave all the time. Which of course won't work.


BTW, default BIOS settings (use "show" command) are thus:

    ConSpeed = 19200
    ConLock = Enabled
    ConMute = Disabled
    BIOSentry = Enabled
    PCIROMS = Enabled
    PXEBoot = Enabled
    FLASH = Primary
    BootDelay = 5
    BootPartition = Disabled
    ShowPCI = Enabled
    Reset = Hard



Decided to cheat and edited /etc/fstab:

	/dev/hdb1       /       ext2    defaults,noatime,ro     0       0
	

and edited /etc/lilo.pebble.conf to be:-

	boot = /dev/sdd
	disk = /dev/sdd
	bios = 0x80
	delay = 1
	serial=0,19200n8
	image = /boot/vmlinuz-2.4.26-pebble
	root = /dev/hdb1
	append="console=ttyS0,19200n8"
	label = pebble
	read-only
	

Then I could run LILO chroot'd :

   chroot /mnt/tmp lilo -C /etc/lilo.pebble.conf

which worked fine and Pebble booted ok off Primary Slave (CF card!) and with the root FS mounted ok. Muuwaahaa !!!

NB: WOL does not seem to work.



Soekris-related Links

URL Description
www.soekris.com/ Soekris Home
thewall.sourceforge.net/ PicoBSD Firewall
www.xs4all.nl/~hreuver/net4501.html Personal linux Router
www.innercite.com/~mike/soekris/ Debian on Soekris
neon1.net/misc/minibsd.html MiniBSD - Reducing BSD
www.nycwireless.net/pebble/ Pebble - NYC Wireless
www.kd85.com Soekris & BSD in Europe
phk.freebsd.dk/soekris/env4801/ Soekris temperature monitor
opensoekris.sourceforge.net Bootable BSD images
www.nmedia.net/~chris/soekris/ flashdist: OpenBSD installer
In no particular order, here are some links I found handy while working with the Soekris.
MiniPCI Boards
Description
Cisco licensed MPI350 802.11b Mini-PCI card
Various modules inc SCSI
Mini PCI Type III 124-pin Fast Ethernet Module
IEEE 802.11G MINI PCI