Ubuntu26.04下给虚拟机分配宿主机的物理显卡来做硬件加速

如何让虚拟机用上宿主机的显卡,一般情况需要两个显卡,大部分人都会有一个CPU集显和一张独立的显卡,这种环境就可以使用以下方法 。原理:把整块显卡完整分配给虚拟机,宿主机无法再使用这张显卡。所以为了保证物理机上能正常显示使用,我把宿主机显示接到集成显卡,而虚拟机则使用独立显卡GTX 750Ti。

前提条件

一、BIOS/UEFI 必须先改

重启进 BIOS,把这些打开:

  • VT-x / VT-d(Intel 虚拟化、IOMMU 直通,开启enable)
  • Primary Display / 首选显卡:设为 iGPU / 集成显卡
  • 如有:CSM = 关闭Secure Boot = 关闭

显示器现在就要插到主板的视频口(HDMI/DP),不要插在 GTX750Ti 上。


步骤

宿主机开启 IOMMU

  • Intel CPU:

GRUB修改开启IOMMU
sudo vim /etc/default/grub 
# 修改 GRUB_CMDLINE_LINUX_DEFAULT 为: 
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_iommu=on iommu=pt"

  • AMD CPU:

sudo vim /etc/default/grub 
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amd_iommu=on iommu=pt"
 #更新 GRUB 并重启:sudo update-grub 
sudo reboot

获取显卡的 PCIe 地址

 lspci | grep -E 'VGA|3D controller'
# 输出类似 
swper@Mt:~$ lspci | grep -E 'VGA|3D controller'

0000:00:02.0 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 730] (rev 0c)
0000:01:00.0 VGA compatible controller: NVIDIA Corporation GM107 [GeForce GTX 750 Ti] (rev a2)

需要记住前面的ID,如我的机器:0000:00:02.0为CPU集显,0000:01:00.0为GTX 750Ti显卡ID,下边添加时用到。

在 virt-manager 中直通显卡

关闭虚拟机,虚拟机设置 → 添加硬件 → PCI 主机设备 → 选择你的显卡(01:00.0)

KIM虚拟机添加宿主机上的物理显卡

同时添加显卡对应的音频设备(如 01:00.1 Audio device

启动虚拟机,安装对应驱动即可。

同时配置一下显卡Virtio,去掉3D加速。

KVM显卡 VIrtio设置

显示协议Spice ,选择地址,所有接口,不钩OpenGL

KVM显示协议Spice配置

这样就把物理显卡GTX 750Ti给到虚拟机使用了,虚拟机上要使用这张显卡就像平常一样安装相应的驱动即可。

本文首发于 58Linux技术博客,专注Ubuntu桌面使用、Linux服务器运维与网站搭建实战。
       本系列的一部分

ubuntu桌面

Post 77 of 77

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress