kernel virtual machine

iommu unbind for kvm

Might put something like this in /etc/default/libvirtd. The iommu_group is used because all these devices might share the 1 interrupt and system complains (risk of instability) if they are split up. Then we can tell virt-manager to claim the pci devices for a guest, I left the topmost device, a pci bridge out.

This is tried on ASUS P9D WS with Intel i7-4790K CPU. In this case I have to assign both pci slots and the onboard IEEE1394 controller

for N in /sys/kernel/iommu_groups/9/devices/*
do
        P=`echo ${N} | cut -c36-`
        if L=`readlink -f /sys/bus/pci/devices/${P}/driver`
        then
                if test "${L}" != "/sys/bus/pci/drivers/pci-stub"
                then
                        if test `echo ${L} | cut -c1-21` == "/sys/bus/pci/drivers/"
                        then
                                echo ${P} > "/sys/bus/pci/devices/${P}/driver/unbind"
                        fi

                        VEN=`</sys/bus/pci/devices/${P}/vendor cut -c3-`
                        DEV=`</sys/bus/pci/devices/${P}/device cut -c3-`
                        echo "${VEN} ${DEV}" > /sys/bus/pci/drivers/pci-stub/new_id
                        #echo $BASE > /sys/bus/pci/drivers/pci-stub/bind
                fi
        fi
done

Anything else?

only ready to use qxl drivers for download, to advertise my guest interest in virtio, try to fix that.

Refer to the build guide and compile own

  1. set MSBuildEmitSolution=1
  2. start LaunchBuildEnv.cmd
  3. msbuild C:\Users\user\Documents\kvm-guest-drivers-windows.git\virtio-win.sln -p:Configuration=Win10%20Release -p:Platform="x64"
  4. msbuild C:\Users\user\Documents\kvm-guest-drivers-windows.git\viogpu\viogpu.sln -p:Configuration=Win10%20Release -p:Platform="x64"
  5. C:\Users\user\Documents\kvm-guest-drivers-windows.git\Tools\signall.bat have wrong path
  6. C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\signtool.exe
  7. cd C:\Users\user\Documents\kvm-guest-drivers-windows.git\
  8. SET "SignToolDir=C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64"
  9. for /r . %i in (*.sys)
  10. do "%SignToolDir%\signtool.exe" sign /f "Tools\VirtIOTestCert.pfx" "%i"
  11. for /r . %i in (*.cat) do "%SignToolDir%\signtool.exe" sign /f "Tools\VirtIOTestCert.pfx" "%i"

enable test mode in bcdedit for now

Then the next step is to edit viogpudo.cpp to allow modes bigger than 1024x768, like fullscreen on the kvm host such as 1920x1200, and then recompile and reinstert the driver, and therefore get virtio working equivalently to QXL, with the possibility to possibility of adding accellerated 3d to the driver