You are not logged in.
Unfortunately, I'm still with error 43. Version 340.52.
Maybe it's a hardware issue , did others have success passing through the same GPU as yours ?
Anyway , you're missing an extra line regarding OVMF . You need two files , please see my post :
https://bbs.archlinux.org/viewtopic.php … 9#p1466309
Best of luck
Offline
Unfortunately, I'm still with error 43. Version 340.52.
Maybe it's a hardware issue , did others have success passing through the same GPU as yours ?
Anyway , you're missing an extra line regarding OVMF . You need two files , please see my post :
https://bbs.archlinux.org/viewtopic.php … 9#p1466309
Best of luck
Hello sir
It's truth, I forgot the second bios parameter...
I made a copy of the bin fine and put it inseide my VM directory with the win7_bios.bin name
Started the whole thing with:
sudo qemu-system-x86_64 -name main -enable-kvm -localtime -m 8192 -cpu host,kvm=off -drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/ovmf_code_x64.bin -drive if=pflash,format=raw,file=/home/jgomez/VM/win7_bios.bin -smp sockets=1,cores=4 -serial none -parallel none -nodefconfig -drive file=/home/jgomez/VM/win7.img,cache=writeback,if=none,id=drive0,aio=native -device virtio-blk-pci,drive=drive0,ioeventfd=on,bootindex=1 -device virtio-scsi-pci,id=scsi -drive file=/home/jgomez/Downloads/win8.iso,id=iso_install,if=none -device scsi-cd,drive=iso_install -device vfio-pci,host=01:00.0,multifunction=on -device vfio-pci,host=01:00.1 -cdrom /home/jgomez/Downloads/virtio.iso -vga none
But even when the QEMU monitor starts, seems like is not booting or nothing happens (teamviewer does not see the computer).
I also tried with -vga cirrus but black screen. If I remove the "sencond" bios parameters works as usual.
Regards,
TheArcher
Offline
Hi all,
I have a working setup based on Intel CPU and Z77 chipset + GTX 970 as graphic cards. However I have one question, and one issue.
First, here is my question: whats the point using a bios dump (from graphic card) in the qemu command-line? I am not doing it yet and everything seems ok. Good performance, VM reboots ok, etc.
Then, my little issue. I have an USB sound card : Asus Xonar U7. If I use it on a USB hub (shared with my mouse + keyboard), then I have some sound issues. It stutters sometimes, and causes lag. Only happens during games; never while watching a movie / youtube / listening to music.
I decided to go with emulated audio (cf. command line below). Now i non longer have those sound / lags issue. However I have a little latency in sound. All the time. The sound occurs half a second (or even less) after the real action. I tried with various PA samples from 128 to 16384 (cf. command line). 128 to 512 is unusable, audio lag and video lag. And high values (above 4096) make the latency higher. So far, it seems that the best value is 1024.
Do you have any idea what to do?
Let me know if you need additional information.
Thanks in advance.
Edit ; HDMI audio is not a solution since my screen as no audio jack output (and on screen's speaker are just horrible).
Command line:
QEMU_PA_SAMPLES=1024 QEMU_AUDIO_DRV=pa \
qemu-system-x86_64 -name game -M q35 -enable-kvm \
-mem-path /dev/hugepages \
-balloon virtio \
-nographic \
-m 16384 \
-cpu host,kvm=off -smp 4,sockets=1,cores=4,threads=1 \
-bios /usr/share/qemu/bios.bin -realtime mlock=on -vga none \
-device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
-device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=01:00.1,bus=pcie.0 \
-device virtio-scsi-pci,id=scsi \
-drive file=/dev/guest/Windaube_7,id=sys,format=raw -device scsi-hd,drive=sys \
-drive file=/dev/guest/win7,id=data,format=raw -device scsi-hd,drive=data \
-device vfio-pci,host=00:1d.0,bus=pcie.0 \
-device virtio-scsi-pci,id=scsi2 \
-net nic,model=virtio,macaddr=52:54:00:7c:3c:42 -net bridge,br=virbr0 \
-device ich9-intel-hda,bus=pcie.0,addr=1b.0,id=sound0 \
-device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0
Last edited by Nesousx (2014-11-23 15:23:59)
Offline
I also tried with -vga cirrus but black screen. If I remove the "sencond" bios parameters works as usual.
I think it is because you've already installed Windows . Windows writes its VARS during the installation process .
First, here is my question: whats the point using a bios dump (from graphic card) in the qemu command-line? I am not doing it yet and everything seems ok. Good performance, VM reboots ok, etc.
BIOS dumps are not needed if your VGA passthrough is working correctly . You won't notice any difference in performance if you provided a BIOS ROM file for your GPU .
Sorry , I passthrough-ed the onboard sound to my VM and it is working perfectly . Also HDMI (GPU) sound works aswell . I can't help with emulated sound cards .
Offline
I also tried with -vga cirrus but black screen. If I remove the "sencond" bios parameters works as usual.
I think it is because you've already installed Windows . Windows writes its VARS during the installation process .
First, here is my question: whats the point using a bios dump (from graphic card) in the qemu command-line? I am not doing it yet and everything seems ok. Good performance, VM reboots ok, etc.
BIOS dumps are not needed if your VGA passthrough is working correctly . You won't notice any difference in performance if you provided a BIOS ROM file for your GPU .
Sorry , I passthrough-ed the onboard sound to my VM and it is working perfectly . Also HDMI (GPU) sound works aswell . I can't help with emulated sound cards .
Ok, thanks for info. However, can you let me know how do you get sound in Linux then?
At some point I wanted to used onboard sound for Windows, but then I have no sound in Linux unless I plug / unplug an audio cable or buy some expensive KVM (I use DP and WQHD resolution).
Last edited by Nesousx (2014-11-23 15:27:31)
Offline
Ok, thanks for info. However, can you let me know how do you get sound in Linux then?
I didn't need to , it's a headless VM + File server .
All of my gaming + daily + email needs are served from VMs . This way I kept my Arch as clean as possible .
Offline
Hello again,
Windows 8 reinstalled, using the following command:
sudo qemu-system-x86_64 -name main -enable-kvm -localtime -m 8192 -cpu host,kvm=off -drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/ovmf_x64.bin -drive if=pflash,format=raw,file=/home/jgomez/VM/ovmf_x64.bin -smp sockets=1,cores=4 -serial none -parallel none -nodefconfig -drive file=/home/jgomez/VM/win7.img,cache=writeback,if=none,id=drive0,aio=native -device virtio-blk-pci,drive=drive0,ioeventfd=on,bootindex=1 -device virtio-scsi-pci,id=scsi -drive file=/home/jgomez/Downloads/win8.iso,id=iso_install,if=none -device scsi-cd,drive=iso_install -device vfio-pci,host=01:00.0,multifunction=on -device vfio-pci,host=01:00.1 -cdrom /home/jgomez/Downloads/virtio.iso -vga none
Error Code 43 with several drivers... Feeling so close and so far XD
Offline
Hello again,
Windows 8 reinstalled, using the following command:
sudo qemu-system-x86_64 -name main -enable-kvm -localtime -m 8192 -cpu host,kvm=off -drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/ovmf_x64.bin -drive if=pflash,format=raw,file=/home/jgomez/VM/ovmf_x64.bin -smp sockets=1,cores=4 -serial none -parallel none -nodefconfig -drive file=/home/jgomez/VM/win7.img,cache=writeback,if=none,id=drive0,aio=native -device virtio-blk-pci,drive=drive0,ioeventfd=on,bootindex=1 -device virtio-scsi-pci,id=scsi -drive file=/home/jgomez/Downloads/win8.iso,id=iso_install,if=none -device scsi-cd,drive=iso_install -device vfio-pci,host=01:00.0,multifunction=on -device vfio-pci,host=01:00.1 -cdrom /home/jgomez/Downloads/virtio.iso -vga none
Error Code 43 with several drivers... Feeling so close and so far XD
Have you ever told us what model GPU you're trying to assign? I'm starting to wonder if your BIOS is set correctly to make the assigned GPU a secondary device on the host, whether you've got the host drivers blacklisted or excluded from the device with pci-stub.ids, or whether dmesg reports errors loading the device ROM.
http://vfio.blogspot.com
Looking for a more open forum to discuss vfio related uses? Try https://www.redhat.com/mailman/listinfo/vfio-users
Offline
thearcherblog wrote:Hello again,
Windows 8 reinstalled, using the following command:
sudo qemu-system-x86_64 -name main -enable-kvm -localtime -m 8192 -cpu host,kvm=off -drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/ovmf_x64.bin -drive if=pflash,format=raw,file=/home/jgomez/VM/ovmf_x64.bin -smp sockets=1,cores=4 -serial none -parallel none -nodefconfig -drive file=/home/jgomez/VM/win7.img,cache=writeback,if=none,id=drive0,aio=native -device virtio-blk-pci,drive=drive0,ioeventfd=on,bootindex=1 -device virtio-scsi-pci,id=scsi -drive file=/home/jgomez/Downloads/win8.iso,id=iso_install,if=none -device scsi-cd,drive=iso_install -device vfio-pci,host=01:00.0,multifunction=on -device vfio-pci,host=01:00.1 -cdrom /home/jgomez/Downloads/virtio.iso -vga none
Error Code 43 with several drivers... Feeling so close and so far XD
Have you ever told us what model GPU you're trying to assign? I'm starting to wonder if your BIOS is set correctly to make the assigned GPU a secondary device on the host, whether you've got the host drivers blacklisted or excluded from the device with pci-stub.ids, or whether dmesg reports errors loading the device ROM.
Hello,
Thanks a lot for your reply!
I think everything is correct but I will show you all my configuration and logs if necessary
My processor is an intel 4790K and the motherboard is a Z97 Extreme 6 from Asrock.
Vt-d is enabled on UEFI.
My graphic card is a 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK104 [GeForce GTX 770] [10de:1184] (rev a1)
My Linux (Arch) is configured with the Intel driver and the Kernel options are:
options root=/dev/sda2 rw pcie_aspm=force acpi_osi=Linux acpi=force acpi_enforce_resources=lax i915.enable_rc6=1 i915.enable_fbc=1 i915.lvds_downclock=1 i915.semaphores=1 drm.vblankoffdelay=1 acpi_backlight=vendor intel_pstate=disable pci-stub.ids=10de:1184,10de:030a intel_iommu=on,igfx_off rdblacklist=nouveau nouveau.modeset=0 elevator=noop intremap=no_x2apic_optout libata.force=noncq loglevel=3 i915.enable_hd_vgaarb=1 libata.noacpi=1 pcie_acs_override=downstream vfio_iommu_type1.allow_unsafe_interrupts=1 quiet
Kernel downloaded from the first post:
journalctl -b | grep vgaarb
Nov 23 11:59:00 myArch kernel: vgaarb: setting as boot device: PCI:0000:00:02.0
Nov 23 11:59:00 myArch kernel: vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
Nov 23 11:59:00 myArch kernel: vgaarb: device added: PCI:0000:01:00.0,decodes=io+mem,owns=none,locks=none
Nov 23 11:59:00 myArch kernel: vgaarb: loaded
Nov 23 11:59:00 myArch kernel: vgaarb: bridge control possible 0000:01:00.0
Nov 23 11:59:00 myArch kernel: vgaarb: no bridge control possible 0000:00:02.0
Nov 23 11:59:01 myArch kernel: vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io:owns=io+mem
The only error I can find, at the moment, is running dmesg:
[21438.474193] dmar: DMAR:[DMA Read] Request device [01:00.0] fault addr 228fa5000
DMAR:[fault reason 12] non-zero reserved fields in PTE
Please, do not hesitate to request me any log
Thanks a lot and best regards,
TheArcher
Offline
My Linux (Arch) is configured with the Intel driver and the Kernel options are:
Wow , lots of parameters ! Why would you need all of these ? I have the same GTX 770 (EVGA SC) , and they work good . With only "intel_iommu=on" and correct "pci-stub.ids" .
Please , trim your boot parameters , I'm sure you don't need OR want all of those .
EDIT : here is my boot line :
intel_iommu=on elevator=noop modprobe.blacklist=nouveau pci-stub.ids=10de:104a,10de:0e08,10de:1184,10de:0e0a,1912:0015
The only thing I imagine you would need to add is the "i915.enable_hd_vgaarb=1" and the "pcie_acs_override=downstream" parameters .
Last edited by Denso (2014-11-23 17:23:10)
Offline
My Linux (Arch) is configured with the Intel driver and the Kernel options are:
Wow , lots of parameters ! Why would you need all of these ? I have the same GTX 770 (EVGA SC) , and they work good . With only "intel_iommu=on" and correct "pci-stub.ids" .
Please , trim your boot parameters , I'm sure you don't need OR want all of those .
EDIT : here is my boot line :
intel_iommu=on elevator=noop modprobe.blacklist=nouveau pci-stub.ids=10de:104a,10de:0e08,10de:1184,10de:0e0a,1912:0015
The only thing I imagine you would need to add is the "i915.enable_hd_vgaarb=1" and the "pcie_acs_override=downstream" parameters .
Hello
I removed all my kernel boot parameters but still on the same situation:
intel_iommu=on,igfx_off elevator=noop modprobe.blacklist=nouveau pci-stub.ids=10de:1184,10de:030a rdblacklist=nouveau nouveau.modeset=0 i915.enable_hd_vgaarb=1 pcie_acs_override=downstream quiet
I kept only the nouveau related ones and the igfx_off to have sound on host with HDMI
I'm open to the next step
Edit: I have a question but not sure if will help
Seems like if I'm running the qemu with the -vga qxl then shows the nvidia graphic card well installed... Don't know for sure if that means that is working fine or not and I do not know if I can force to use the Nvidia one for gaming... Maybe I'm just crazy and I need to sleep
Thanks a lot and regards,
TheArcher
Last edited by thearcherblog (2014-11-23 19:30:01)
Offline
The only error I can find, at the moment, is running dmesg:
[21438.474193] dmar: DMAR:[DMA Read] Request device [01:00.0] fault addr 228fa5000 DMAR:[fault reason 12] non-zero reserved fields in PTE
That doesn't look good. The only thing I can think that would get that particular error was fixed in v3.15, what kernel version are you using?
EDIT: And if it's the bit I'm thinking of, it could definitely contribute to the Code 43 problem
Last edited by aw (2014-11-23 20:40:52)
http://vfio.blogspot.com
Looking for a more open forum to discuss vfio related uses? Try https://www.redhat.com/mailman/listinfo/vfio-users
Offline
Seems like if I'm running the qemu with the -vga qxl then shows the nvidia graphic card well installed... Don't know for sure if that means that is working fine or not and I do not know if I can force to use the Nvidia one for gaming... Maybe I'm just crazy and I need to sleep
You can passthrough it as a secondary GPU for your VM . I tried it , and it switches to the nvidia GPU as soon as Windows enters to desktop . I don't think its related to Code 43 issue .
Any special errors in dmesg when you run the VM ? Maybe ROM errors would appear when you launch the VM . Have you tried passing a ROM file along the QEMU command line ?
EDIT :
Didn't notice the DMAR error you posted earlier .
I used to recieve a similar error , and if I remember correctly , setting some modules parameters helped :
try to create a file as :
/etc/modprobe.d/qemu_kvm.conf
Inside it paste the following :
options kvm ignore_msrs=1
options intel_kvm emulate_invalid_guest_state=0
options intel_kvm nested=1
options intel_kvm enable_shadow_vmcs=1
options intel_kvm enable_apicv=1
options intel_kvm ept=1
options vfio_pci nointxmask=1
options vfio_iommu_type1 disable_hugepages=1
options vfio_iommu_type1 allow_unsafe_interrupts=1
Honestly , there is a line among these that helped stopping the DMAR error I had with my X99 . Can you test it ? You need to reboot the host after creating the file .
Last edited by Denso (2014-11-23 20:49:24)
Offline
Seems like if I'm running the qemu with the -vga qxl then shows the nvidia graphic card well installed... Don't know for sure if that means that is working fine or not and I do not know if I can force to use the Nvidia one for gaming... Maybe I'm just crazy and I need to sleep
You can passthrough it as a secondary GPU for your VM . I tried it , and it switches to the nvidia GPU as soon as Windows enters to desktop . I don't think its related to Code 43 issue .
Any special errors in dmesg when you run the VM ? Maybe ROM errors would appear when you launch the VM . Have you tried passing a ROM file along the QEMU command line ?
EDIT :
Didn't notice the DMAR error you posted earlier .
I used to recieve a similar error , and if I remember correctly , setting some modules parameters helped :
try to create a file as :
/etc/modprobe.d/qemu_kvm.conf
Inside it paste the following :
options kvm ignore_msrs=1 options intel_kvm emulate_invalid_guest_state=0 options intel_kvm nested=1 options intel_kvm enable_shadow_vmcs=1 options intel_kvm enable_apicv=1 options intel_kvm ept=1 options vfio_pci nointxmask=1 options vfio_iommu_type1 disable_hugepages=1 options vfio_iommu_type1 allow_unsafe_interrupts=1
Honestly , there is a line among these that helped stopping the DMAR error I had with my X99 . Can you test it ? You need to reboot the host after creating the file .
Hello all
I tried this and this is the result:
sudo qemu-system-x86_64 -name main -enable-kvm -localtime -m 8192 -cpu host,kvm=off -drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/ovmf_x64.bin -drive if=pflash,format=raw,file=/home/jgomez/VM/ovmf_x64.bin -smp sockets=1,cores=4 -serial none -parallel none -nodefconfig -drive file=/home/jgomez/VM/win7.img,cache=writeback,if=none,id=drive0,aio=native -device virtio-blk-pci,drive=drive0,ioeventfd=on,bootindex=1 -device virtio-scsi-pci,id=scsi -drive file=/home/jgomez/Downloads/win8.iso,id=iso_install,if=none -device scsi-cd,drive=iso_install -device vfio-pci,host=01:00.0,multifunction=on -device vfio-pci,host=01:00.1 -cdrom /home/jgomez/Downloads/virtio.iso -vga none
qemu-system-x86_64: -device vfio-pci,host=01:00.0,multifunction=on: vfio: Error: Failed to setup INTx fd: Device or resource busy
qemu-system-x86_64: -device vfio-pci,host=01:00.0,multifunction=on: Device initialization failed.
qemu-system-x86_64: -device vfio-pci,host=01:00.0,multifunction=on: Device 'vfio-pci' could not be initialized
BTW, my kernel (from the first post) is:
[jgomez@myArch ~]$ uname -r
3.17.2-1-mainline
I guess one of the options conflicts but I will check them tomorrow
I would like to give to all of you a big thanks before going to sleep... all day helping me, really thanks
Regards,
TheArcher
Last edited by thearcherblog (2014-11-23 21:59:48)
Offline
I guess one of the options conflicts but I will check them tomorrow
It is this option :
options vfio_pci nointxmask=1
Comment it out and reboot the host . See if that resolves these errors .
Offline
thearcherblog wrote:I guess one of the options conflicts but I will check them tomorrow
It is this option :
options vfio_pci nointxmask=1
Comment it out and reboot the host . See if that resolves these errors .
Thanks a lot!
I willl test it as soon as I arrive home (near 18h (are 7:37 here now) and I will let you know
Thanks a lot again!!
Regards,
TheArcher
Offline
OMG... Today will be a party day!!!!! It's working!!!
All of you are the masters of knowledge and the kings of wisdom!!!!
There are not enough words to express my happiness right now!
If exists a donation place I will do it right now and if not, please, let me know if any of you is in Norway and I will invite him/her to a beer!!!!
Amazing!!!!!! Thanks a lot!!!!!
Last edited by thearcherblog (2014-11-24 07:05:49)
Offline
If exists a donation place I will do it right now and if not, please, let me know if any of you is in Norway and I will invite him/her to a beer!!!!
Offline
I've noticed that my disk subsystem is bottlenecking my game.
I'm using a virtio-blk-pci device with 60GB raw image cache=none(i thought that windows would cache disk adequately, foolish me) on my 750GB 5-years-old-with-few-badsectors-louder-than-a-CNC-mill WD caviar black hdd.
So i've created a new image sized 10GB in some directory mounted on the system SSD disk, sized 10GB. Attached it as an another virtio-blk-pci device to my windows VM and...
The disk image had 10GB of zeroes inside, so windows suggested initializing it in diskmgmt.msc, allowing me to choose between MBR and GPT(windows 7!). That again proves that i am right saying you do not need windows 8 to run on pure EFI.
So i've moved my steam library to the new disk image, and i want to show you a neat little trick: windows has symlinks. Kind of. You can attach a drive as an empty NTFS folder, which is useful for some applications that load their data from a fixed location(like user's documents folder), but the folder must be empty.
Now the disk IO lags are gone, yay for me.
The forum rules prohibit requesting support for distributions other than arch.
I gave up. It was too late.
What I was trying to do.
The reference about VFIO and KVM VGA passthrough.
Offline
thearcherblog wrote:If exists a donation place I will do it right now and if not, please, let me know if any of you is in Norway and I will invite him/her to a beer!!!!
Done
Btw, I made a mistake on the donation... can I chat with you privately?
Offline
jasonwryan wrote:thearcherblog wrote:If exists a donation place I will do it right now and if not, please, let me know if any of you is in Norway and I will invite him/her to a beer!!!!
Done
Btw, I made a mistake on the donation... can I chat with you privately?
Sure. Or you can just email Aaron: he looks after the donations.
Offline
Thanks a lot
Can you give me his mail address in a private message?
Thanks!
Offline
Offline
Perfect and thanks a lot!!!
Offline
OMG... Today will be a party day!!!!! It's working!!!
All of you are the masters of knowledge and the kings of wisdom!!!!
There are not enough words to express my happiness right now!
If exists a donation place I will do it right now and if not, please, let me know if any of you is in Norway and I will invite him/her to a beer!!!!
Amazing!!!!!! Thanks a lot!!!!!
So setting those options seems necessary on new Intel platforms (X99-Z97) .
Happy to see that you got it working
Offline