Hi all,

On my system (Debian 4, kernel 2.6.23 and user-mode-linux_2.6.18-1um-2etch2 on a 386 machine), I run
several virtual machines, each one using one or more serial ports (modems).

If I include the "standard" serial ports, ttyS0 and ttyS1, on the linux commandline, the virtual machine
starts up and the ports are accessible from inside as ttyS0 and ttyS1.

However, I need more serial ports, so I have tested several devices such as the Digi Neo PCI card and
the Edgeport USB-to-serial converter.

Problem is, that these devices are not accessible from inside the virtual machine (but they work fine if accessed
from the host system). Devices are owned by the user running the virtual machine.

In the Digi Neo case, specifying port /dev/ttyn1a on the command line
linux root=/dev/ubda ubd0=/umlroot/test.rootfs ubd1=/umlroot/test.swapfs eth0=tuntap,,,192.168.1.10 umid=test ssl0=tty:/dev/ttyn1a mem=256M con=pty con0=fd:0,fd:1
should make /dev/ttyn1a accessible as /dev/ttyS0 inside the virtual machine.

Same thing for Edgeport,
linux root=/dev/ubda ubd0=/umlroot/test.rootfs ubd1=/umlroot/test.swapfs eth0=tuntap,,,192.168.1.10 umid=test ssl0=tty:/dev/ttyUSB0 mem=256M con=pty con0=fd:0,fd:1
should make /dev/ttyUSB0 accessible as /dev/ttyS0.

The only way I get this to work is by using the following ugly workaround on the host system before booting the virtual machines:

for DEVICE in `ls -1 /dev/ttyUSB* /dev/ttyn1* `
do
  nohup /sbin/slattach -s 115200 $DEVICE & > /tmp/foo 2>&1
done

sleep 10
ps -ef| grep slattach | grep -v grep | awk '{print $2}' | while read PID
do
  echo "slattach PID is $PID , killing it" >> /tmp/foo 2>&1
  kill $PID >> /tmp/foo 2>&1
done

(slattach -e does not work, so for each device I start slattach in the background and then kill it).

I have been testing several kernel and uml versions, without luck. Any help is greatly appreciated.

/Magnus