必须先在宿主机安装闭源nvidia/amd驱动并禁用nouveau,再配置libvirt/qemu以启用gpu直通;虚拟机内则按系统类型安装对应guest驱动:linux装virtio-gpu相关包,windows通过virtio-win或virgl加速。

在统信UOS中为KVM虚拟机启用GPU直通或宿主机显卡加速功能时,必须先确保宿主机已正确安装闭源NVIDIA/AMD驱动,再配置libvirt与QEMU参数;若仅需提升虚拟机内图形性能(如远程桌面流畅度、基础3D渲染),则应在虚拟机内部安装对应Guest驱动,而非在宿主机上重复操作。
确认宿主机驱动已就绪
虚拟机无法使用GPU直通或vGPU的前提,是宿主机本身未启用闭源显卡驱动。运行 nvidia-smi(NVIDIA)或 glxinfo | grep "OpenGL renderer"(AMD),输出中必须显示真实GPU型号,而非 llvmpipe 或 swrast。若仍为开源驱动,需先完成宿主机驱动安装——推荐优先使用APT源安装:sudo apt install nvidia-driver,安装后执行 sudo nvidia-xconfig 并重启。
【若宿主机nouveau未禁用,GPU直通将直接失败,且虚拟机启动时可能卡在PCI设备初始化阶段】
为Linux虚拟机安装Guest显卡驱动
以Ubuntu/Debian类虚拟机为例,进入虚拟机系统后执行:
更新软件源并安装基础依赖:sudo apt update && sudo apt install build-essential linux-headers-$(uname -r)。
若宿主机为NVIDIA显卡,虚拟机内无需安装NVIDIA驱动——KVM默认使用virtio-gpu或qxl模拟显卡,此时应安装virtio-gpu对应的用户态驱动:sudo apt install xserver-xorg-video-qxl(适用于较老镜像)或确保mesa-vulkan-drivers已存在(现代UOS虚拟机默认启用virgl渲染)。
重启虚拟机图形服务:sudo systemctl restart gdm3(GNOME)或sudo systemctl restart lightdm(Deepin/UOS桌面)。
为Windows虚拟机安装Guest驱动
方法一:使用virtio-win驱动盘自动安装
在“虚拟系统管理器”中选中目标Windows虚拟机→点击“硬件详情”→“添加硬件”→“存储”→选择“IDE CDROM”,镜像路径指向已下载的virtio-win.iso(需提前从https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/获取)。
启动Windows虚拟机,在设备管理器中找到带黄色感叹号的“VGA兼容控制器”和“PCI简单通信控制器”,右键→“更新驱动程序”→“浏览我的电脑”→指向光驱中vioser\w10\amd64(串口)与viogpu\w10\amd64(显卡)目录,逐项安装。
方法二:启用VirGL加速(需宿主机支持)
关闭虚拟机→编辑XML配置:sudo virsh edit 虚拟机名→定位到<video></video>段,将<model type="qxl"></model>替换为:
<model type="virtio" heads="1" primary="yes"><acceleration accel3d="yes"></acceleration></model>
并在<devices></devices>末尾追加:
<graphics type="spice" autoport="yes"><gl enable="yes" rendernode="/dev/dri/renderD128"></gl></graphics>
保存退出后启动虚拟机,Windows内需手动安装virglrenderer配套驱动(含virtio-gpu-win中的vgpu子目录驱动)。











