[CentOS-virt] working config for xen which would transfer a serial interface

Thu Aug 5 13:31:21 UTC 2010
Manuel Wolfshant <wolfy at nobugconsulting.ro>

  Hello

     Can anyone share a known working config for xen which would 
transfer a serial interface ( add-on card preferably, mine uses   
e880-e887 : 0000:03:05.0 /   ec00-ec07 : 0000:03:05.0 ) to a DomU ?
     I've been trying with the stock packages from Centos 5.5 ( fully 
updated) and also with gitco's 3.4.3 but after 2 days of googling and 
testing we still fail to access the serial interface from DomU.
     No matter what we've tried,
- in DomU there is no reference to any kind of serial ports in 
/proc/{interrupts,ioports}
- the test program which accesses ttyS0 fails ( it works just fine in 
dom0) even after manually loading parport_serial in DomU

     /dev/ttyS{0..3} do get created by default, if that matters.



     Here is the content of the config file, after the last attempt 
(which uses gitco's xen, but we failed similarly with the stock packages):

name = "testr"
uuid = "57baf51a-e293-fa35-9f2e-056a1c0e322a"
maxmem = 512
memory = 512
vcpus = 1
bootloader = "/usr/bin/pygrub"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
vfb = [ "type=vnc,vncunused=1,keymap=en-us" ]
disk = [ "tap:aio:/var/lib/xen/images/testr,xvda,w" ]
vif = [ "mac=00:16:36:0c:aa:1a,bridge=xenbr0,script=vif-bridge" ]
irq = [11 ]
ioports = [ "ec00-ec07","e080-e08f" ] // we also tried to pass all the 
IO ports referenced in lspci -vvv

[root at Dom0]#lspci -vvv
03:05.0 Communication controller: NetMos Technology PCI 9835 Multi-I/O 
Controller (rev 01)
         Subsystem: LSI Logic / Symbios Logic 1P2S
         Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- 
ParErr- Stepping- SERR+ FastB2B-
         Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium 
 >TAbort- <TAbort- <MAbort- >SERR- <PERR-
         Interrupt: pin A routed to IRQ 11
         Region 0: I/O ports at ec00 [size=8]
         Region 1: I/O ports at e880 [size=8]
         Region 2: I/O ports at e800 [size=8]
         Region 3: I/O ports at e480 [size=8]
         Region 4: I/O ports at e400 [size=8]
         Region 5: I/O ports at e080 [size=16]

[root at Dom0 ~]# dmesg | grep ttyS

[root at Dom0 ~]# cat /etc/modprobe.d/blacklist
#[...]
blacklist 8250
blacklist 8250_pnp
blacklist serial_core
blacklist parport_serial
blacklist 8250_pci



[root at Dom0 ~]# grep xen /etc/grub.conf
title CentOS (2.6.18-194.el5xen)
         kernel /xen.gz-3.4.3
         module /vmlinuz-2.6.18-194.el5xen ro root=/dev/VolGroup00/LogVol00
         module /initrd-2.6.18-194.el5xen.img
title CentOS (2.6.18-194.8.1.el5xen)
         kernel /xen.gz-3.4.3
         module /vmlinuz-2.6.18-194.8.1.el5xen ro 
root=/dev/VolGroup00/LogVol00 xencons=off
         module /initrd-2.6.18-194.8.1.el5xen.img

[root at Dom0 ~]# uname -a
Linux Dom0 3 2.6.18-194.8.1.el5xen #1 SMP Thu Jul 1 19:41:05 EDT 2010 
x86_64 x86_64 x86_64 GNU/Linux

sniff from the boot messages in tge DomU:

XENBUS: Device with no driver: device/vbd/51712
XENBUS: Device with no driver: device/vif/0
XENBUS: Device with no driver: device/ioports/0
XENBUS: Device with no driver: device/ioports/1
XENBUS: Device with no driver: device/ioports/2
XENBUS: Device with no driver: device/ioports/3
XENBUS: Device with no driver: device/ioports/4
XENBUS: Device with no driver: device/ioports/5
XENBUS: Device with no driver: device/irq/0
XENBUS: Device with no driver: device/console/0




[root at DomU ~]# cat /proc/interrupts
            CPU0
256:       7433     Dynamic-irq  timer0
257:          0     Dynamic-irq  resched0
258:          0     Dynamic-irq  callfunc0
259:        554     Dynamic-irq  xenbus
260:        705     Dynamic-irq  xencons
261:        802     Dynamic-irq  xenfb
262:          0     Dynamic-irq  xenkbd
263:       6607     Dynamic-irq  blkif
264:       8959     Dynamic-irq  eth0
NMI:          0
LOC:          0
ERR:          0
MIS:          0

[root at DomU ~]# cat /proc/ioports
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-0060 : keyboard
0064-0064 : keyboard
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu

[root at DomU ~]# lsmod
Module                  Size  Used by
8250_pnp               43969  0
parport_serial         41153  0
8250_pci               56257  1 parport_serial
8250                   86057  2 8250_pnp,8250_pci
serial_core            56385  1 8250
[...]

[root at DomU ~]# uname -a
Linux DomU 2.6.18-194.8.1.el5xen #1 SMP Thu Jul 1 19:41:05 EDT 2010 
x86_64 x86_64 x86_64 GNU/Linux




     TIA

                 manuel