页次: 1
为了好好玩游戏,爬了两天Wiki配了KVM+QEMU+libvirt+virt-manager的虚拟机。
客户机系统Windows10,使用UEFI,配置了pci passthrough,将我的RX480分配给了虚拟机,还用USB passthrough分配了键鼠和手柄。
大多数功能都工作正常,但是有几个小问题。
第一个问题,客户机启动必定会失败,启动时转几圈就会进到故障恢复界面……但很奇怪的是,只要在故障恢复里选择重启到UEFI设置,之后在UEFI设置里面再次重启就能正常进入系统,如果在UEFI里面选择continue就会继续启动失败…
是因为显卡无法正常reset导致的,见二楼。
第二个问题,我按照Wiki配置了音频,并且配置了msi,但还是有兹拉兹啦的噪音…不过可能直接把板载音频分给虚拟机可以解决
在Windows里调下采样可以缓解,可以忍受。
第三个问题,有没有什么方法能快速把USB设备的控制权交还给宿主机?要操作宿主机就必须把虚拟机关掉这也太蠢了……
见这个帖子。Linux和Windows下各写一个脚本就好了。
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
<name>win10</name>
<uuid>f53572f9-46d2-4f4c-960a-144f9bb75792</uuid>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>4</vcpu>
<os>
<type arch='x86_64' machine='pc-i440fx-2.12'>hvm</type>
<loader readonly='yes' type='pflash'>/usr/share/ovmf/x64/OVMF_CODE.fd</loader>
<nvram>/var/lib/libvirt/qemu/nvram/win10_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-model' check='partial'>
<model fallback='allow'/>
<topology sockets='2' cores='2' threads='1'/>
</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>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/home/kurobac/virtio-win.iso'/>
<target dev='sda' bus='sata'/>
<readonly/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/home/kurobac/.deepinwine/Deepin-ThunderSpeed/drive_c/迅雷下载/cn_windows_10_consumer_editions_version_1803_updated_march_2018_x64_dvd_12063766.iso'/>
<target dev='sdb' bus='sata'/>
<readonly/>
<address type='drive' controller='0' bus='0' target='0' unit='1'/>
</disk>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/win10.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
<controller type='pci' index='0' model='pci-root'/>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</controller>
<controller type='usb' index='0' model='ich9-ehci1'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/>
</controller>
<controller type='usb' index='0' model='ich9-uhci1'>
<master startport='0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
</controller>
<controller type='usb' index='0' model='ich9-uhci2'>
<master startport='2'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
</controller>
<controller type='usb' index='0' model='ich9-uhci3'>
<master startport='4'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/>
</controller>
<interface type='direct'>
<mac address='52:54:00:c0:82:4e'/>
<source dev='enp6s0' mode='bridge'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x0d' function='0x0'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<sound model='ich6'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</sound>
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</source>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' 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='0x09' function='0x0'/>
</hostdev>
<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<vendor id='0x045e'/>
<product id='0x02d1'/>
</source>
<address type='usb' bus='0' port='6'/>
</hostdev>
<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<vendor id='0x04b4'/>
<product id='0x0823'/>
</source>
<address type='usb' bus='0' port='5'/>
</hostdev>
<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<vendor id='0x046d'/>
<product id='0xc332'/>
</source>
<address type='usb' bus='0' port='1'/>
</hostdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='4'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
</memballoon>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/>
</rng>
</devices>
<qemu:commandline>
<qemu:env name='QEMU_AUDIO_DRV' value='pa'/>
<qemu:env name='QEMU_PA_SERVER' value='/run/user/1000/pulse/native'/>
</qemu:commandline>
</domain>
最近编辑记录 Kurobac (2018-07-07 15:36:09)
# pacman -Syu
离线
我突然发现,我都不知道这玩意是怎么能跑起来的。
就重启了几次,虚拟机就再也启动不了了,必须要把qxl加回去才能启动。
重装虚拟机,GPU passthrough还是没法正常工作……然而设备管理器里RX480就好好的在那躺着。
如果删掉qxl,开机自动重启几次就会一直卡在UEFI启动画面…保留qxl就能开机,但RX480仍然没有输出。用RDP连接表现出的弱鸡性能来看,还是qxl在跑…显卡完全打酱油。
----------------------------------------------------------
不知为何,虚拟机又能正常启动了…但是显卡还是没有输出。通过RDP可以连上…可是不知道是freerdp的性能问题还是我配置有问题,体验就一个字——卡
----------------------------------------------------------
我可能是来搞笑的
为什么没信号
因为线没插好
----------------------------------------------------------
嗯…好像发现问题了
一旦虚拟机关闭之后,再次打开就会无法启动…宿主机重启即可恢复
好像找到解决办法了
https://lime-technology.com/forums/topi … issue-amd/
最近编辑记录 Kurobac (2018-07-06 17:26:16)
# pacman -Syu
离线
第三个,usb控制权的问题,如果不用USB passthrough,是不是USB设备控制权就可以随时切换到宿主机(Redirect USB device)?
开源/Linux大众化,从驿窗开始~
离线
第三个,usb控制权的问题,如果不用USB passthrough,是不是USB设备控制权就可以随时切换到宿主机(Redirect USB device)?
嗯…大概Google了一下,不是很明白passthrough和redirect之间的区别…有什么相关的文章吗?
# pacman -Syu
离线
文章没什么印象了;
你USB passthrough分配了键鼠和手柄,导致虚拟机独占键鼠,这样宿主机无法使用键鼠;所以,在操作宿主机的时候,没有键鼠可用;
我理解,你据说的 要操作宿主机就必须把虚拟机关掉应该就是指这个了;
如果是这样,那还真和redirect没什么关系,不用管;你试试,键鼠不要使用passthrough就好,虚拟机和宿主机之间无缝使用;
开源/Linux大众化,从驿窗开始~
离线
文章没什么印象了;
你USB passthrough分配了键鼠和手柄,导致虚拟机独占键鼠,这样宿主机无法使用键鼠;所以,在操作宿主机的时候,没有键鼠可用;
我理解,你据说的 要操作宿主机就必须把虚拟机关掉应该就是指这个了;如果是这样,那还真和redirect没什么关系,不用管;你试试,键鼠不要使用passthrough就好,虚拟机和宿主机之间无缝使用;
我这虚拟机的信号是独显输出的啊,virt-manager的图形控制台是看不到画面的,所以虚拟出来的键鼠并不能用…
轻度使用可以靠RDP,想要玩游戏之类的还是要把显示器信号切过去。
# pacman -Syu
离线
是我out了...
我以为和U盘一样~
是不是真的需要两套键鼠...
网上有说用synergy来解决鼠标键盘问题,不知道是不是可行,我的cpu不支持Vt-d,没试过~
https://momoka.net/posts/2017/2017-0002 … rough.html
最近编辑记录 驿窗 (2018-07-07 18:46:36)
开源/Linux大众化,从驿窗开始~
离线
是我out了...
我以为和U盘一样~是不是真的需要两套键鼠...
网上有说用synergy来解决鼠标键盘问题,不知道是不是可行,我的cpu不支持Vt-d,没试过~
https://momoka.net/posts/2017/2017-0002 … rough.html
搜了一圈,发现virsh有命令可以控制USB passthrough,Linux下写两个脚本就行了。虚拟机切回宿主机也就是一条ssh命令,写个bat绑个快捷键就OK。
# pacman -Syu
离线
离线
是。
# pacman -Syu
离线
我才知道,原来是这么用的~
开源/Linux大众化,从驿窗开始~
离线
页次: 1