I assume you are using either RHEL-5.1 or Centos 5.1 as dom0.
Apply the below patch on pciif.py and restart xend.
--- /usr/lib/python2.4/site-packages/xen/xend/server/pciif.py.orig
2006-10-15 21:22:03.000000000 +0900
+++ /usr/lib/python2.4/site-packages/xen/xend/server/pciif.py 2007-10-16
18:37:39.000000000 +0900
@@ -157,7 +157,7 @@ class PciController(DevController):
for (start, size) in dev.ioports:
log.debug('pci: enabling ioport 0x%x/0x%x'%(start,size))
- rc = xc.domain_ioport_permission(dom = fe_domid, first_port =
start,
+ rc = xc.domain_ioport_permission(domid = fe_domid, first_port =
start,
nr_ports = size, allow_access = True)
if rc<0:
raise VmError(('pci: failed to configure I/O ports on device '+
@@ -171,7 +171,7 @@ class PciController(DevController):
log.debug('pci: enabling iomem 0x%x/0x%x pfn 0x%x/0x%x'% \\
(start,size,start_pfn,nr_pfns))
- rc = xc.domain_iomem_permission(dom = fe_domid,
+ rc = xc.domain_iomem_permission(domid = fe_domid,
first_pfn = start_pfn,
nr_pfns = nr_pfns,
allow_access = True)
@@ -181,7 +181,7 @@ class PciController(DevController):
if dev.irq>0:
log.debug('pci: enabling irq %d'%dev.irq)
- rc = xc.domain_irq_permission(dom = fe_domid, pirq = dev.irq,
+ rc = xc.domain_irq_permission(domid = fe_domid, pirq = dev.irq,
allow_access = True)
if rc<0:
raise VmError(('pci: failed to configure irq on device '+
See details at
http://lists.xensource.com/archives/html/xen-changelog/2006-11/msg00086.html
--Sadique
Hans Rakers wrote:
Woops forgot to cc the list
See:
http://bugs.centos.org/view.php?id=2485
http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=1053
Greetings,
Hans Rakers
Foo Bar wrote:
Hi all,
I'm trying to get a pci card working on a guest os (ast01)
on dum0 I hided the pci card w/:
# modprobe pciback hide='(0b:08.0)'
then added this line to the guest os config file (/etc/xen/ast01)
pci = [ "0000:08:0e.0" ]
Whenever I try to start it fails w/:
# xm create ast01
Using config file "/etc/xen/ast01".
Error: function takes exactly 4 arguments (3 given)
"xm log" shows:
[2007-12-13 17:26:20 xend 8789] DEBUG (DevController:110)
DevController: writing {\047protocol\047: \047x86_64-abi\047,
\047state\047: \0471\047, \047backend-id\047: \0470\047,
\047backend\047: \047/local/domain/0/backend/vkbd/6/0\047} to
/local/domain/6/device/vkbd/0.
[2007-12-13 17:26:20 xend 8789] DEBUG (DevController:112)
DevController: writing {\047frontend-id\047: \0476\047,
\047domain\047: \047ast01\047, \047frontend\047:
\047/local/domain/6/device/vkbd/0\047, \047state\047: \0471\047,
\047online\047: \0471\047} to /local/domain/0/backend/vkbd/6/0.
[2007-12-13 17:26:20 xend 8789] DEBUG (blkif:24) exception looking up
device number for xvda: [Errno 2] No such file or directory:
\047/dev/xvda\047
[2007-12-13 17:26:20 xend 8789] DEBUG (DevController:110)
DevController: writing {\047virtual-device\047: \04751712\047,
\047device-type\047: \047disk\047, \047protocol\047:
\047x86_64-abi\047, \047backend-id\047: \0470\047, \047state\047:
\0471\047, \047backend\047:
\047/local/domain/0/backend/tap/6/51712\047} to
/local/domain/6/device/vbd/51712.
[2007-12-13 17:26:20 xend 8789] DEBUG (DevController:112)
DevController: writing {\047domain\047: \047ast01\047,
\047frontend\047: \047/local/domain/6/device/vbd/51712\047,
\047dev\047: \047xvda\047, \047state\047: \0471\047, \047params\047:
\047aio:/tmp/ast01.img\047, \047mode\047: \047w\047, \047online\047:
\0471\047, \047frontend-id\047: \0476\047, \047type\047: \047tap\047}
to /local/domain/0/backend/tap/6/51712.
[2007-12-13 17:26:20 xend 8789] INFO (pciquirk:91) NO quirks found
for PCI device [1166:024b:1028:0205]
[2007-12-13 17:26:20 xend 8789] DEBUG (pciquirk:131) Permissive mode
NOT enabled for PCI device [1166:024b:1028:0205]
[2007-12-13 17:26:20 xend 8789] DEBUG (pciif:159) pci: enabling
ioport 0xecb0/0x8
[2007-12-13 17:26:20 xend.XendDomainInfo 8789] ERROR
(XendDomainInfo:212) Domain construction failed
Traceback (most recent call last):
File
"/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line
205, in create
vm.initDomain()
File
"/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line
1463, in initDomain
self.createDevices()
File
"/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line
1679, in createDevices
self.createDevice(n, c)
File
"/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line
1154, in createDevice
return self.getDeviceController(deviceClass).createDevice(devconfig)
File
"/usr/lib64/python2.4/site-packages/xen/xend/server/DevController.py",
line 80, in createDevice
(devid, back, front) = self.getDeviceDetails(config)
File "/usr/lib64/python2.4/site-packages/xen/xend/server/pciif.py",
line 90, in getDeviceDetails
self.setupDevice(domain, bus, slot, func)
File "/usr/lib64/python2.4/site-packages/xen/xend/server/pciif.py",
line 161, in setupDevice
nr_ports = size, allow_access = True)
TypeError: function takes exactly 4 arguments (3 given)
[2007-12-13 17:26:20 xend.XendDomainInfo 8789] DEBUG
(XendDomainInfo:1557) XendDomainInfo.destroy: domid=6
[2007-12-13 17:26:20 xend.XendDomainInfo 8789] DEBUG
(XendDomainInfo:1566) XendDomainInfo.destroyDomain(6)
[2007-12-13 17:26:21 xend 8789] ERROR (xmlrpclib2:184) function takes
exactly 4 arguments (3 given)
Traceback (most recent call last):
File "/usr/lib64/python2.4/site-packages/xen/util/xmlrpclib2.py",
line 162, in _marshaled_dispatch
response = self._dispatch(method, params)
File "/usr/lib64/python2.4/SimpleXMLRPCServer.py", line 406, in
_dispatch
return func(*params)
File
"/usr/lib64/python2.4/site-packages/xen/xend/server/XMLRPCServer.py",
line 64, in domain_create
info = XendDomain.instance().domain_create(config)
File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomain.py",
line 228, in domain_create
dominfo = XendDomainInfo.create(config)
File
"/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line
205, in create
vm.initDomain()
File
"/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line
1463, in initDomain
self.createDevices()
File
"/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line
1679, in createDevices
self.createDevice(n, c)
File
"/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line
1154, in createDevice
return self.getDeviceController(deviceClass).createDevice(devconfig)
File
"/usr/lib64/python2.4/site-packages/xen/xend/server/DevController.py",
line 80, in createDevice
(devid, back, front) = self.getDeviceDetails(config)
File "/usr/lib64/python2.4/site-packages/xen/xend/server/pciif.py",
line 90, in getDeviceDetails
self.setupDevice(domain, bus, slot, func)
File "/usr/lib64/python2.4/site-packages/xen/xend/server/pciif.py",
line 161, in setupDevice
nr_ports = size, allow_access = True)
TypeError: function takes exactly 4 arguments (3 given)
the python file where it fails :
158 for (start, size) in dev.ioports:
159 log.debug('pci: enabling ioport
0x%x/0x%x'%(start,size))
160 rc = xc.domain_ioport_permission(dom = fe_domid,
first_port = start,
161 nr_ports = size, allow_access = True)
162 if rc<0:
163 raise VmError(('pci: failed to configure I/O
ports on device '+
164 '%s - errno=%d')%( dev.name
<http://dev.name>,rc))
I tried out an other pci card to test, and got the same error.
Any ideas?
Thx
FB
------------------------------------------------------------------------
_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users
_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users
_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users
|