Ik heb Fedora 19 draaiend met kernel 3.11.1-200 (ivm ZFS on Linux*). Verder is mijn systeem volledig up-to-date. In dit systeem zit een Xeon E3-1265LV2 als kloppend hard, op een Intel DH77DF moederbord. So far, so good. Het BIOS ondersteunt VT-x en VT-d, dus ik zou helemaal goed moeten zitten voor PCIe passtrough. Nu heb ik een mPCIe kaart met daarop 2 Realtek NICs (r8168/r8169 driver), en deze wil ik doorgeven aan een Windows VM zodat ik kan kijken of die er beter mee om kan gaan dan Linux.
Ik heb dus virt-manager opgestart, de eigenschappen van de VM erbij gezocht en daar twee PCI apparaten toegevoegd, namelijk PCI 05:00.0 en 06:00.0. Deze twee zitten beiden achter een PCIe bridge, maargoed, eerdere ervaring leert me dat ik die PCIe bridge met rust moet laten. Helaas wil dit niet werken, en ik krijg de foutmelding Error starting domain: Requested operation is not valid: PCI device 0000:05:00.0 is not assignable. Okay... Ik was dus vergeten om de interfaces op de host down te brengen en uit de bridge te gooien. Dat gedaan, nog steeds niets. Ook de drivers verwijderd met rmmod r8168 r8169, maar dat mocht ook niet helpen.
Dan maar de bridge ook doorgeven (PCI apparaat 03:00.0, 04:01.0 en 04:02.0), maar dat gaat mis met dezelfde foutmelding omdat PCI apparaat 05:00.0 nog steeds erin staat. Die eruit gehaald, en toen... Error starting domain: internal error Unable to reset PCI device 0000:04:01.0: internal error Active 0000:04:02.0 devices on bus with 0000:04:01.0, not doing bus reset... Hmm, okay, kan ik inkomen. Dan alleen PCI apparaat 03:00.0? Nope! Error starting domain: Unable to read from monitor: Connection reset by peer.
Eens een willekeurig ander PCI apparaat proberen dan, ik heb tenslotte nog een Firewire chip rondzwerven op het moederbord: Error starting domain: Unable to read from monitor: Connection reset by peer.
dmesg laat niets interessants zien, dus dan maar eens in /var/log/messages zoeken. En jawel: Jan 7 23:29:03 server libvirtd[1888]: internal error Device 0000:05:00.0 is behind a switch lacking ACS and cannot be assigned. Just my luck. Maar gelukkig is ACS checking uit te zetten
Alles wat nodig is, is relaxed_acs_check = 1 in het bestand /etc/libvirt/qemu.conf.
Blijft enkel nog over dat ik nu weer zit met Error starting domain: Unable to read from monitor: Connection reset by peer
Dit gebeurd alleen als ik gebruik maak van PCI passtrough
/var/log/messages van poging tot starten op pastebin.com. Iemand ervaring daarmee?
tl;dr Ik krijg van libvirt de melding Error starting domain: Unable to read from monitor: Connection reset by peer, halp?
*) Lang verhaal kort: Fedora en ZoL leveren allebei een DKMS pakket die met elkaar conflicteerd. Resultaat is dat ik met nieuwere kernels geen DKMS modules meer kan bouwen.
EDIT: Okay, ik ben een drupje verder in het vinden van de fout, maar nog niet in het oplossen... Dit staat er in de log van de VM (/var/log/libvirt/qemu/WinServ2012r2.log). Wat nu?
EDIT2: Ook dit al geprobeerd (qemu draaien als root, zonder permissies te droppen) maar ook dat mag niet helpen
Ik heb dus virt-manager opgestart, de eigenschappen van de VM erbij gezocht en daar twee PCI apparaten toegevoegd, namelijk PCI 05:00.0 en 06:00.0. Deze twee zitten beiden achter een PCIe bridge, maargoed, eerdere ervaring leert me dat ik die PCIe bridge met rust moet laten. Helaas wil dit niet werken, en ik krijg de foutmelding Error starting domain: Requested operation is not valid: PCI device 0000:05:00.0 is not assignable. Okay... Ik was dus vergeten om de interfaces op de host down te brengen en uit de bridge te gooien. Dat gedaan, nog steeds niets. Ook de drivers verwijderd met rmmod r8168 r8169, maar dat mocht ook niet helpen.
Dan maar de bridge ook doorgeven (PCI apparaat 03:00.0, 04:01.0 en 04:02.0), maar dat gaat mis met dezelfde foutmelding omdat PCI apparaat 05:00.0 nog steeds erin staat. Die eruit gehaald, en toen... Error starting domain: internal error Unable to reset PCI device 0000:04:01.0: internal error Active 0000:04:02.0 devices on bus with 0000:04:01.0, not doing bus reset... Hmm, okay, kan ik inkomen. Dan alleen PCI apparaat 03:00.0? Nope! Error starting domain: Unable to read from monitor: Connection reset by peer.
Eens een willekeurig ander PCI apparaat proberen dan, ik heb tenslotte nog een Firewire chip rondzwerven op het moederbord: Error starting domain: Unable to read from monitor: Connection reset by peer.
dmesg laat niets interessants zien, dus dan maar eens in /var/log/messages zoeken. En jawel: Jan 7 23:29:03 server libvirtd[1888]: internal error Device 0000:05:00.0 is behind a switch lacking ACS and cannot be assigned. Just my luck. Maar gelukkig is ACS checking uit te zetten
Blijft enkel nog over dat ik nu weer zit met Error starting domain: Unable to read from monitor: Connection reset by peer
tl;dr Ik krijg van libvirt de melding Error starting domain: Unable to read from monitor: Connection reset by peer, halp?
*) Lang verhaal kort: Fedora en ZoL leveren allebei een DKMS pakket die met elkaar conflicteerd. Resultaat is dat ik met nieuwere kernels geen DKMS modules meer kan bouwen.
EDIT: Okay, ik ben een drupje verder in het vinden van de fout, maar nog niet in het oplossen... Dit staat er in de log van de VM (/var/log/libvirt/qemu/WinServ2012r2.log). Wat nu?
code:
1
2
3
4
5
| 2014-01-07 22:42:33.309+0000: starting up LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin QEMU_AUDIO_DRV=none /usr/bin/qemu-kvm -name WinServ2012r2 -S -machine pc-i440fx-1.4,accel=kvm,usb=off -m 2048 -smp 2,sockets=2,cores=1,threads=1 -uuid 196eb5a9-2f07-fa4b-4f9a-24a07a591703 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/WinServ2012r2.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 -drive file=/tank/vm_images/WinServ2012r2.img,if=none,id=drive-virtio-disk0,format=raw -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive file=/tank/Documents/Dreamspark/Windows Server 2012 R2 (x64) - DVD (English)/en_windows_server_2012_r2_x64_dvd_2707946.iso,if=none,id=drive-ide0-1-0,readonly=on,format=raw -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=23,id=hostnet0,vhost=on,vhostfd=24 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:f3:94:5e,bus=pci.0,addr=0x3 -vnc 127.0.0.1:0 -vga std -device pci-assign,configfd=25,host=05:00.0,id=hostdev0,bus=pci.0,addr=0x9 -device pci-assign,configfd=26,host=06:00.0,id=hostdev1,bus=pci.0,addr=0xa -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 qemu-system-x86_64: -device pci-assign,configfd=25,host=05:00.0,id=hostdev0,bus=pci.0,addr=0x9: assigned_dev_register_regions: Error: Couldn't mmap 0xf0104000! qemu-system-x86_64: -device pci-assign,configfd=25,host=05:00.0,id=hostdev0,bus=pci.0,addr=0x9: Device 'kvm-pci-assign' could not be initialized 2014-01-07 22:42:33.640+0000: shutting down |
EDIT2: Ook dit al geprobeerd (qemu draaien als root, zonder permissies te droppen) maar ook dat mag niet helpen
[ Voor 30% gewijzigd door Xudonax op 08-01-2014 00:04 ]