QEMU/KVM 在 Virt-Manager 启用 SPICE 显示服务器并使用 USB 热插拔重定向
使用 Virt-Manager 配置好虚拟机后,默认是使用的是 VNC 显示服务器,更换到 SPICE 显示服务器后可以得到更流畅的远程画面,还有更方便的热插拔 USB 重定向,这个相比使用 qemu-hw-usb-host (qemu-base 所不自带的,仅限 Arch Linux 的依赖包) 在 Virt-Manager 配置中添加 USB 设备后还要重启虚拟机要方便不少。
注意依赖包版本
接下来要建立在安装好虚拟机的基础上。
同时如果使用的是 Arch Linux,注意如果安装虚拟机时安装的 QEMU 是 qemu-base
这个默认的基础版,最好重新下载 qemu-desktop
,里面包含了 USB主机设备、 USB 重定向、 qxl 显示加速包等,不然选择下面的选项就会报错,像我一样连添加 USB 设备都搞了一整天就不好了…(>﹏<)
Virt-Manager 配置
打开虚拟机的配置面板
-
首先要将
显卡
设置为 SPICE 推荐的qxl
-
然后在
显示协议
中将显示服务器
更换为SPICE
-
在虚拟机配置中添加
USB 重定向
设备即可,是这么简单,前提是你的 qemu 依赖包要完整(又是不堪回首的往事TAT…)
虚拟机安装驱动
安装完后还需要在虚拟机装一些驱动,应该是作为客户机与 SPICE 显示服务器通信的基础。这里列出Windows的驱动,其他可以在 SPICE 的下载界面找到。
- 客户机工具
- USB 重定向驱动
使用
安装完成后,重启虚拟机应该就能开始使用了
拿热插拔 USB 重定向来说,只要打开虚拟机,点击 Virt-Manager 虚拟机控制台上方的 虚拟机
里的 重定向 USB 设备
即可将插在主机上的 USB 设备重定向到虚拟机,非常方便
但是没做其他设置的情况下只能重定向一个设备,然后就提示端口不足了,不过可以在设置中添加其他 USB 设备,或添加 USB 拓展坞设备解决(
附录
本来想使用 WinApps 实现在 Linux 上无缝使用 Windows 应用的,没想到从 Podman 的方案不好弄 USB 直通转过 QEMU/KVM 方案这么费力,期间 WinApps 还得删了重装,不过这下应该是可以正常使用了。
我的参考资料(不是很相关):
- https://wiki.archlinuxcn.org/wiki/QEMU#%E5%9C%A8%E5%AE%BF%E4%B8%BB%E6%9C%BA%E4%B8%8A%E5%90%AF%E7%94%A8_SPICE_%E6%94%AF%E6%8C%81
- https://blog.chyk.ink/2022/04/20/run-windows-apps-in-kvm-on-linux/
- https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md