Soekris console server
danishenglishPDF-icon
Security6.net logo

Soekris console server using conserver software

Soekris systems are small and very stable. I was lucky enough to try a SIIG Inc. PCI-4S card in the summer of 2005 on the camp. This card was low profile and a perfect fit for a Soekris 4801 - and working in OpenBSD

I decided to buy such a card, but unfortunately got the new version, which did not work with OpenBSD.

I got this card to work by adding *10 to the frequency in the pucdata file *sigh* - but it works perfectly now. I can only recommend this card for OpenBSD and Linux. 

Update: this small change is now included in the OpenBSD sources, this card works "out of the box" with the stock 4.0 GENERIC kernel.

Update: December 2006

It seems that it doesn't work again ... and I had to patch the pucdata file again. Might be that my PCI ID on my specific card is different? Mine is the one
root@kris:hlk# pcitweak -l
PCI: PCI scan (all values are in hex)
PCI: 00:0a:0: chip 1415,9501 card 0000,0000 rev 00 class 07,00,06 hdr 80
PCI: 00:0a:1: chip 1415,9510 card 0000,0000 rev 00 class 06,80,00 hdr 80
ID 9501 is the serial ports the other is some extra function on the chip I think, lpt port?

Patching it

If you run into problems the file to mess with is /usr/src/sys/dev/pci

$ diff pucdata.c.orig pucdata.c 
854,857c854,857
<               { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
<               { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
<               { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
<               { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
---
>               { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10 },
>               { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10 },
>               { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 10 },
>               { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 10 },

The things I used:
  • Soekris 4801 with hard disc and OpenBSD 3.8 - with a small change
  • SIIG Inc. PCI-4S new model, but same  part. no. LP-P40011
  • Dremel for messing up the case
  • Conserver software version 8, in ports on OpenBSD, config below

Conserver config

Make sure the card is recognized:
puc0 at pci0 dev 10 function 0 "Oxford OX16PCI954" rev 0x00: com, com, com, com
pccom2 at puc0 port 0 irq 11: st16650, 32 byte fifo
pccom3 at puc0 port 1 irq 11: st16650, 32 byte fifo
pccom4 at puc0 port 2 irq 11: st16650, 32 byte fifo
pccom5 at puc0 port 3 irq 11: st16650, 32 byte fifo
Then config conserver using the conserver.cf:
console portS1 {
type device;
device /dev/cua02; parity none; baud 57600;
idlestring "#";
idletimeout 5m; # send a '#' every 5 minutes of idle
timestamp ""; # no timestamps on this console
}

Pictures


Sorry for the poor quality, the project was assembled at night time and my Nokia 6630 does not really take great pictures when the lighting is insufficient!