Soekris

Soekris net5501

This article is to describe how to get Ubuntu Feisty Fawn 7.04 working with the Soekris net5501.

Preliminary Work

Setting console speed

The net5501 has a default console-speed of 19200bps. Installation will be much more frictionless if this is increased to a higher speed, say 57600bps. Reducing this to 9600bps will make you cry. The Soekris boxes have a 'console lock' setting so that applications cannot change this speed which is what one wants (unless you like guessing serial console speeds after they change!).

  • Set your preferred console program to 19200 8n1 no-flow-control and connect your computer to the serial port of your Soekris.
  • Power on your Soekris and hit CTRL-P to enter the BIOS.
  • Type the following commands:

set ConSpeed=57600
set ConLock=enabled
  • Verify the commands have worked by typing:

show
  • Now reboot the Soekris box with:

reboot
  • Now you will see output on the screen as the Soekris serial port speed is different from your PC, so change the setting of your prefered console program to 57600 as well.

Setting up PXE-Environment

The net5501 is capable of doing netbooting via PXE. To do this you need an additional computer, which has been set up according to this description. Just change the pxelinux.0 file in your tftpboot-directory with the following, because the one provided by ubuntu results in a display problem on your console program.

Also, as the console speed is now 57.6Kbps, this needs to be changed in the PXE boot config file. Edit the file /var/lib/tftpboot/ubuntu-installer/i386/pxelinux.cfg.serial-9600/default and change all occurrences of 9600 to 57600 then save in its own directory of /var/lib/tftpboot/ubuntu-installer/i386/pxelinux.cfg.serial-57600/ and remember to change the symlink pxelinux.cfg in /var/lib/tftpboot to point to the new 57600 directory.

So, at the top (usually) of the default file:

SERIAL 0 57600 0

and for the entry (or all entries) you'll use for the installation, e.g.:

LABEL server
        kernel ubuntu-installer/i386/linux
        append ks=http://192.168.254.1/ks_au.cfg base-installer/kernel/linux/extra-packages-2.6= tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=normal initrd=ubuntu-installer/i386/initrd.gz console=ttyS0,57600n8 --

And change the symlink:

cd /var/lib/tftpboot
sudo rm pxelinux.cfg
sudo ln -s ubuntu-installer/i386/pxelinux.cfg.serial-57600 pxelinux.cfg

Installation

Connect the serial port of the soekris with your computer, connect the eth0-port to your network, start your console program and power on your soekris. Hit CTRL-P and then type

boot f0

Now, a pxe-prompt should be displayed. Just type

server

Follow the normal installation process, your compact-flash card will normally be display as hdb, because the most modern cf-cards identifies themselves as "PRIMARY SLAVE". (Edit: no, this can be changed with the BIOS setting set flash=primary.) At the end, when the system wants to reboot, don't hit "Continue", but "Go back". In the menu select "Execute a shell".

Modifications

Before the new system is rebooted, three issues need to be addressed:

  • because grub is not correctly setup for console-boot, you would not see anything
  • getty is not setup correctly for the serial console so you won't see anything once the kernel loads either
  • because two essential modules are not loaded by initramfs, the system will not find your cf-card and so will not find your installation

Preliminary Work

To make the necessary corrections, you have to chroot to your newly installed system

mount -tproc none /proc
chroot /target

Fixing grub

Edit the menu.list file

vi /boot/grub/menu.lst

The first two lines of the file should look like this:

serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
terminal --timeout=15 serial console

To each boot-option add the following:

console=tty0 console=ttyS0,9600n8

e.g. if it looks like this

kernel     /boot/vmlinuz-2.6.20-16-generic root=UUID=d44f2dc3-c934-431d-8254-266a282f2c27 ro

after your modification it should look like this

kernel     /boot/vmlinuz-2.6.20-16-generic root=UUID=d44f2dc3-c934-431d-8254-266a282f2c27 ro console=tty0 console=ttyS0,9600n8

Fixing getty

Create the file /etc/event.d/ttyS0 with the following content

start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5

stop on runlevel 0
stop on runlevel 1
stop on runlevel 6

respawn
exec /sbin/getty -L ttyS0 9600 vt102

Fixing initramfs

Edit the file /etc/initramfs-tools/modules and add the following two lines at the end of the file:

ext3
ide_generic

Now, you have to update your initramfs by typing

update-initramfs -u

Reboot

Type "exit" to leave your chroot-environment Type "exit" to leave the shell Select "Continue" to reboot your system. Have fun with your soekris net5501.

Known bugs

Actually, with the bios 1.32 * 20070606 there are several bugs in the soekris net5501

  • ide dma not enabled form bios
  • the hardware-clock is running to fast (use ntp) (Note: 02.10.2007 see Problem Description

  • problems with sata-drives (Note: 02.10.2007 There is a new BIOS 1.32d, but it don't fixes everything.)

The manufacturer told, that he is aware of this problems, and that they are working on bugfixes.

Additions

Finally I get the error_led to work. Thanks to Alex Hajnal it is very easy. Enable the cs5535_gpio module

modprobe cs5535_gpio major=253 mask=0xffffffff

Create a special node

mknod /dev/error_led c 253 6

To turn the LED on

echo 1 > /dev/error_led

To turn the LED off

echo 0 > /dev/error_led


CategoryHardware

Soekris (last edited 2008-08-24 05:16:59 by cpe-24-92-55-251)