Ich versuche gerade eine PCI Karte an einen KVM Gast weiterzureichen.
Ich habe schon einiges probiert, mir einen Passenden Kernel gebastelt, usw...
Das ganze verhält sich folgendermaßen:
Ich starte den Gast (WinXP) der fängt fröhlich an zu booten, aber dann geht die VM einfach aus.
Im syslog sehe ich folgendes:
Code: Alles auswählen
Dec 18 22:39:08 fileserver kernel: [33224.173389] pci-stub 0000:0e:00.0: claimed by stub
Dec 18 22:39:08 fileserver kernel: [33224.173474] pci-stub 0000:0e:00.0: claimed by stub
Dec 18 22:39:08 fileserver libvirtd: 22:39:08.480: 1800: warning : qemudParsePCIDeviceStrs:1513 : Unexpected exit status '1', qemu probably failed
Dec 18 22:39:08 fileserver kernel: [33224.329165] pci-stub 0000:0e:00.0: PCI INT A -> GSI 21 (level, low) -> IRQ 21
Dec 18 22:39:08 fileserver kernel: [33224.359103] pci-stub 0000:0e:00.0: restoring config space at offset 0xf (was 0x38080100, writing 0x38080107)
Dec 18 22:39:08 fileserver kernel: [33224.359114] pci-stub 0000:0e:00.0: restoring config space at offset 0xc (was 0x0, writing 0xfbfe0000)
Dec 18 22:39:08 fileserver kernel: [33224.359128] pci-stub 0000:0e:00.0: restoring config space at offset 0x6 (was 0x0, writing 0xfbfc0000)
Dec 18 22:39:08 fileserver kernel: [33224.359135] pci-stub 0000:0e:00.0: restoring config space at offset 0x5 (was 0x1, writing 0xec01)
Dec 18 22:39:08 fileserver kernel: [33224.359142] pci-stub 0000:0e:00.0: restoring config space at offset 0x4 (was 0x0, writing 0xfbffe000)
Dec 18 22:39:08 fileserver kernel: [33224.359148] pci-stub 0000:0e:00.0: restoring config space at offset 0x3 (was 0x0, writing 0x2008)
Dec 18 22:39:08 fileserver kernel: [33224.359156] pci-stub 0000:0e:00.0: restoring config space at offset 0x1 (was 0x2900000, writing 0x2900013)
Dec 18 22:39:08 fileserver kernel: [33224.547561] assign device: host bdf = e:0:0
Dec 18 22:39:29 fileserver kernel: [33244.994455] pci-stub 0000:0e:00.0: restoring config space at offset 0xf (was 0x38080100, writing 0x38080107)
Dec 18 22:39:29 fileserver kernel: [33244.994466] pci-stub 0000:0e:00.0: restoring config space at offset 0xc (was 0x0, writing 0xfbfe0000)
Dec 18 22:39:29 fileserver kernel: [33244.994474] pci-stub 0000:0e:00.0: restoring config space at offset 0x6 (was 0x0, writing 0xfbfc0000)
Dec 18 22:39:29 fileserver kernel: [33244.994478] pci-stub 0000:0e:00.0: restoring config space at offset 0x5 (was 0x1, writing 0xec01)
Dec 18 22:39:29 fileserver kernel: [33244.994482] pci-stub 0000:0e:00.0: restoring config space at offset 0x4 (was 0x0, writing 0xfbffe000)
Dec 18 22:39:29 fileserver kernel: [33244.994486] pci-stub 0000:0e:00.0: restoring config space at offset 0x3 (was 0x0, writing 0x2008)
Dec 18 22:39:29 fileserver kernel: [33244.994490] pci-stub 0000:0e:00.0: restoring config space at offset 0x1 (was 0x2900000, writing 0x2900017)
Dec 18 22:39:29 fileserver kernel: [33244.994509] pci-stub 0000:0e:00.0: PCI INT A disabled
Code: Alles auswählen
2010-12-18 22:39:08.480: starting up
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin HOME=/ QEMU_AUDIO_DRV=none /usr/bin/kvm -S -M pc-0.12 -enable-kvm -m 512 -smp 1,sockets=1,cores=1,threads=1 -name vmtestxp -uuid 8b619f44-dc31-bdb1-b14a-5c9d46f11d29 -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/vmtestxp.monitor,server,nowait -mon chardev=monitor,mode=readline -rtc base=localtime -boot cd -drive file=/dev/vg00/lvtestxp,if=none,id=drive-ide0-0-0,format=raw -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb -device usb-tablet,id=input0 -vnc 0.0.0.0:0 -vga cirrus -device pci-assign,host=0e:00.0,id=hostdev0,bus=pci.0,addr=0x3 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
char device redirected to /dev/pts/3
Failed to assign irq for "hostdev0": Operation not permitted
Perhaps you are assigning a device that shares an IRQ with another device?
Failed to assign irq for "hostdev0": Operation not permitted
Perhaps you are assigning a device that shares an IRQ with another device?
Failed to assign irq for "hostdev0": Operation not permitted
Perhaps you are assigning a device that shares an IRQ with another device?
Failed to assign irq for "hostdev0": Operation not permitted
Perhaps you are assigning a device that shares an IRQ with another device?
Failed to assign irq for "hostdev0": Operation not permitted
Perhaps you are assigning a device that shares an IRQ with another device?
Failed to assign irq for "hostdev0": Operation not permitted
Perhaps you are assigning a device that shares an IRQ with another device?
Failed to assign irq for "hostdev0": Operation not permitted
Perhaps you are assigning a device that shares an IRQ with another device?
Failed to assign irq for "hostdev0": Operation not permitted
Perhaps you are assigning a device that shares an IRQ with another device?
Failed to assign irq for "hostdev0": Operation not permitted
Perhaps you are assigning a device that shares an IRQ with another device?
Failed to assign irq for "hostdev0": Operation not permitted
Perhaps you are assigning a device that shares an IRQ with another device?
Failed to assign irq for "hostdev0": Operation not permitted
Perhaps you are assigning a device that shares an IRQ with another device?
assigned_dev_pci_read_config: pread failed, ret = 0 errno = 1
2010-12-18 22:39:30.176: shutting down
Wenn ich versuche die VM ohne libvirt, mit dem im obigen Log vermerkten Befehl zu starten läuft alles wunderbar und die PCI Karte ist im Gastsystem verfügbar und funktioniert.
Hier mal den Befehl den ich einfach als Root absetze:
Code: Alles auswählen
/usr/bin/kvm -M pc-0.12 -enable-kvm -m 512 -smp 1,sockets=1,cores=1,threads=1 -name vmtestxp -uuid 8b619f44-dc31-bdb1-b14a-5c9d46f11d29 -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/vmtestxp.monitor,server,nowait -mon chardev=monitor,mode=readline -rtc base=localtime -boot cd -drive file=/dev/vg00/lvtestxp,if=none,id=drive-ide0-0-0,format=raw -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb -device usb-tablet,id=input0 -vnc 0.0.0.0:0 -vga cirrus -device pci-assign,host=0e:00.0,id=hostdev0,bus=pci.0,addr=0x3 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
Jetzt habe ich schon eine weile nach dem Problem gegoogelt, konnte aber nichts vernünftiges finden.
Ich habe andere Kernel Probiert (den aktuellen 35er und 36er), das Aktuelle libvirt aus unstable (libvirt0_0.8.6-1_amd64.deb und libvirt-bin_0.8.6-1_amd64.deb)
Hat aber alles nichts geholfen
Habt ihr eine idee wo das Problem liegen könnte?
mfg thomas