This article is to describe how to get Ubuntu Feisty Fawn 7.04 working with the Soekris net5501.
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:
- Now reboot the Soekris box with:
- 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
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
Now, a pxe-prompt should be displayed. Just type
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".
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
To make the necessary corrections, you have to chroot to your newly installed system
mount -tproc none /proc chroot /target
Edit the menu.list file
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:
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
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
Edit the file /etc/initramfs-tools/modules and add the following two lines at the end of the file:
Now, you have to update your initramfs by typing
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.
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.
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