[libvirt-users] GPU passthrough failed to find romfile

Hello guys, this drives me insane. I am trying to pass romfile of my GPU for UEFI boot This is an error I am getting : [root@brutus-coreos opt]# virsh start winos1 error: Failed to start domain winos1 error: internal error: early end of file from monitor: possible problem: 2016-02-07T16:56:09.358285Z qemu-system-x86_64: -device vfio-pci,host=01:00.0,id=hostdev0,bus=pci.0,addr=0x6,romfile=/opt/MSI.R9380.4096.150713.rom: failed to find romfile "/opt/MSI.R9380.4096.150713. The file is there , even owned by qemu [root@brutus-coreos opt]# cd /opt [root@brutus-coreos opt]# ls -lsa total 136 4 drwxr-xr-x. 2 root root 4096 Feb 7 17:53 . 4 dr-xr-xr-x. 18 root root 4096 Feb 4 18:58 .. 128 -rw-rw-r--. 1 qemu qemu 131072 Feb 7 17:53 MSI.R9380.4096.150713.rom I have tried to put it into /var/lib/libvirt/images or /usr/share/qemu , but it ends with the same error. This is my libvirt XML [david@brutus-coreos ~]$ sudo virsh dumpxml winos1 [sudo] password for david: <domain type='kvm'> <name>winos1</name> <uuid>64dfaf21-e556-4e0c-bfc9-676f5fcf3e06</uuid> <memory unit='KiB'>15360000</memory> <currentMemory unit='KiB'>15360000</currentMemory> <vcpu placement='static'>8</vcpu> <os> <type arch='x86_64' machine='pc-i440fx-2.4'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd</loader> <nvram>/var/lib/libvirt/qemu/nvram/winos1_VARS.fd</nvram> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <hyperv> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> </hyperv> <vmport state='off'/> </features> <cpu mode='host-passthrough'> <topology sockets='1' cores='4' threads='2'/> </cpu> <clock offset='localtime'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='no'/> <timer name='hypervclock' present='yes'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <pm> <suspend-to-mem enabled='no'/> <suspend-to-disk enabled='no'/> </pm> <devices> <emulator>/usr/bin/qemu-kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='raw'/> <source file='/dev/ssd/winos1'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </disk> <disk type='file' device='disk'> <driver name='qemu' type='raw'/> <source file='/dev/hdd/windata1'/> <target dev='vdb' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0d' function='0x0'/> </disk> <controller type='usb' index='0' model='nec-xhci'> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </controller> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </controller> <controller type='pci' index='0' model='pci-root'/> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/> </controller> <interface type='direct'> <mac address='52:54:00:31:bc:b8'/> <source dev='enp0s31f6' mode='bridge'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </interface> <hostdev mode='subsystem' type='pci' managed='yes'> <source> <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </source> <rom file='/opt/MSI.R9380.4096.150713.rom'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <source> <address domain='0x0000' bus='0x01' slot='0x00' function='0x1'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <source> <address domain='0x0000' bus='0x00' slot='0x14' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <source> <address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </hostdev> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/> </memballoon> <rng model='virtio'> <backend model='random'>/dev/random</backend> <address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/> </rng> <panic> <address type='isa' iobase='0x505'/> </panic> </devices> </domain> Any help would be appreciated David Hlacik +420-777-307-745 | david@hlacik.cz [image: View David Hlacik's profile on LinkedIn] <http://cz.linkedin.com/in/hlacik>

On 02/07/2016 11:59 AM, David Hlacik wrote:
Hello guys,
this drives me insane. I am trying to pass romfile of my GPU for UEFI boot
This is an error I am getting :
[root@brutus-coreos opt]# virsh start winos1 error: Failed to start domain winos1 error: internal error: early end of file from monitor: possible problem: 2016-02-07T16:56:09.358285Z qemu-system-x86_64: -device vfio-pci,host=01:00.0,id=hostdev0,bus=pci.0,addr=0x6,romfile=/opt/MSI.R9380.4096.150713.rom: failed to find romfile "/opt/MSI.R9380.4096.150713.
Do you have selinux or apparmor enabled. If so maybe look in their audit logs to see if a violation was recorded (or temporarily disable them to see if the operation succeeds). Also, (and this is even more of a long shot than the other suggestion) did you cut off the end of the error message? Or did it really not print out the "rom" at the end? Perhaps there is something strange with qemu's commandline parser for the romfile name? Try naming it something simple, like "xyzzy".
The file is there , even owned by qemu
[root@brutus-coreos opt]# cd /opt [root@brutus-coreos opt]# ls -lsa total 136 4 drwxr-xr-x. 2 root root 4096 Feb 7 17:53 . 4 dr-xr-xr-x. 18 root root 4096 Feb 4 18:58 .. 128 -rw-rw-r--. 1 qemu qemu 131072 Feb 7 17:53 MSI.R9380.4096.150713.rom
I have tried to put it into /var/lib/libvirt/images or /usr/share/qemu , but it ends with the same error.
This is my libvirt XML
[david@brutus-coreos ~]$ sudo virsh dumpxml winos1 [sudo] password for david: <domain type='kvm'> <name>winos1</name> <uuid>64dfaf21-e556-4e0c-bfc9-676f5fcf3e06</uuid> <memory unit='KiB'>15360000</memory> <currentMemory unit='KiB'>15360000</currentMemory> <vcpu placement='static'>8</vcpu> <os> <type arch='x86_64' machine='pc-i440fx-2.4'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd</loader> <nvram>/var/lib/libvirt/qemu/nvram/winos1_VARS.fd</nvram> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <hyperv> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> </hyperv> <vmport state='off'/> </features> <cpu mode='host-passthrough'> <topology sockets='1' cores='4' threads='2'/> </cpu> <clock offset='localtime'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='no'/> <timer name='hypervclock' present='yes'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <pm> <suspend-to-mem enabled='no'/> <suspend-to-disk enabled='no'/> </pm> <devices> <emulator>/usr/bin/qemu-kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='raw'/> <source file='/dev/ssd/winos1'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </disk> <disk type='file' device='disk'> <driver name='qemu' type='raw'/> <source file='/dev/hdd/windata1'/> <target dev='vdb' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0d' function='0x0'/> </disk> <controller type='usb' index='0' model='nec-xhci'> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </controller> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </controller> <controller type='pci' index='0' model='pci-root'/> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/> </controller> <interface type='direct'> <mac address='52:54:00:31:bc:b8'/> <source dev='enp0s31f6' mode='bridge'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </interface> <hostdev mode='subsystem' type='pci' managed='yes'> <source> <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </source> <rom file='/opt/MSI.R9380.4096.150713.rom'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <source> <address domain='0x0000' bus='0x01' slot='0x00' function='0x1'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <source> <address domain='0x0000' bus='0x00' slot='0x14' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <source> <address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </hostdev> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/> </memballoon> <rng model='virtio'> <backend model='random'>/dev/random</backend> <address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/> </rng> <panic> <address type='isa' iobase='0x505'/> </panic> </devices> </domain>
Any help would be appreciated
David Hlacik +420-777-307-745 | david@hlacik.cz <mailto:david@hlacik.cz>
View David Hlacik's profile on LinkedIn <http://cz.linkedin.com/in/hlacik>
_______________________________________________ libvirt-users mailing list libvirt-users@redhat.com https://www.redhat.com/mailman/listinfo/libvirt-users
participants (2)
-
David Hlacik
-
Laine Stump