searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

QEMU显卡直通

2024-05-20 09:44:16
207
0

0 前言

    本文重点分析显卡直通的配置与使用方法。

1 配置

1.1 宿主机

(1)打开IOMMU

    宿主机必须开启IOMMU,例如Intel平台的开启方式如下:

GRUB_CMDLINE_LINUX="intel_iommu=on"
# @file: /etc/default/grub
sudo update-grub


(2)禁用显卡驱动

    宿主机必须禁用/卸载显卡驱动,使得显卡设备不被任何程序使用(vfio驱动除外)。

1.2 虚拟机

(1)分配PCI设备

   显卡通常都属于PCI设备,可将其分配给虚拟机,其中virt-manager的配置如下:

图1.1 virt-manager显卡直通配置

    上图“PCI 0000:01:00.0”设备对应的xml配置如下:

    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
    </hostdev>
<!-- @file: /etc/libvirt/qemu/ubuntu22.04.xml -->

:PCI设备是以IOMMU组为单位进行直通的,同一组内有多个设备时,需要全部分配给虚拟机,否则会失败。

(2)安装显卡驱动

    成功将显卡直通给虚拟机之后,对其使用方法类似于宿主机,需要安装显卡的驱动的。

2 使用

2.1 计算

    可安装CUDA进行AI计算,和物理机类似。

2.2 图形

    使用方法类似于物理机,难点在于获取其图形渲染结果,其中一个方法就是虚拟机内通过X11进行截屏,然后将相关结果传给客户端。

参考资料

[1]使用Linux vfio将Nvidia GPU透传给QEMU虚拟机(同时透传NVIDIA GPU和NVIDIA Audio设备)
[2]kvm+qemu显卡直通(含IOMMU分组问题解决)
[3]如何使用Linux vfio将Nvidia GPU透传给QEMU虚拟机?(同时透传NVIDIA GPU和NVIDIA Audio设备)
[5]NVIDIA单显卡直通保姆级教程: 手把手配置和调试(无需vfio)
[6]【SR-IOV】QEMU-KVM设备热插拔机制简析
[4]kvm 透传显卡至win10虚拟机的教程(pci-stub)
[7]KVM创建windows虚拟机,并设置显卡直通
[8]虚拟机显卡直通(initrd、nvram、/etc/initramfs-tools/modules)
[9](SOLVED) GPU PASSTHROUGH ERROR UNKNOWN PCI HEADER TYPE '127'
[10]一次失败的显卡硬件穿透实验
[11]KVM+显卡直通(passthrough)配置方法及问题说明(pci-stub)
[12]NVRM: failed to copy vbios to system memory.
[13]NVRM: RmInitAdapter failed! , failed to copy vbios to system memory
[14]Linux下显卡掉卡,报错提示: rm_init_adapter failed, device minor number 7 Failed to copy vbios to system memory
[15][SOLVED] Problem with NVIDIA Drivers not loading
[16]Video-nvidia-470xx fails on kernel 6.0
[17]GPU virtualization with QEMU/KVM
[18]NVIDIA Docs Hub > NVIDIA Networking > Networking Software > NVIDIA BlueField-3 SNAP for NVMe and Virtio-blk v4.2.1 > Advanced Features
[19]lateralblast/kvm-nvidia-passthrough
[20]PCI passthrough via OVMF(Archlinux)
[21]Ubuntu 22.04 GPU passthrough (QEMU)
[22]KVM/QEMU 虛擬機器設定 GPU Passthrough 記錄
[23]GPU passthrough with libvirt qemu kvm
[24][vfio-users] "Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff" when attempting to dump PCI ROM
[25]How to dump video bios of Intel HD Graphic 630
[26]GPU Passthrough Windows Won't Work - Ubuntu VM works! (nvidia-smi) - stuck
[27]GVT-d iGPU Intel UHD 630 Boot Device Invalid PCI ROM header signature
[28]VM W/ GPU PASSTHROUGH NOT OUTPUTTING TO DISPLAY
[29]Ubuntu22.04.1 LTS系统上实现KVM虚拟机显卡直通(AMD/NVIDIA+板载显卡)
[30]KVM虚拟化win10显卡直通一例
[31]基于KVM的虚拟显卡透传技术
[32]KVM GPU直通vbios rom问题
[33]UEFI/BIOS——CSM 相关概念整理
[34]Vfio-pci driver bound to boot_vga - the monitor doesn’t go into sleep mode
[35]qubitrenegade/vfio-pci-override.sh
[36]Passing through boot_vga
[37][SOLVED] How to Read Out rMBP Mid-2014 Nvidia ROM?
[38]Nvidia Image/ROM Verification Linux
[39]Extracting the GeForce video BIOS ROM file
[41]PVE – PCI 设备的直通
[43]QEMU/Guest graphics acceleration

0条评论
0 / 1000
李****海
15文章数
0粉丝数
李****海
15 文章 | 0 粉丝
李****海
15文章数
0粉丝数
李****海
15 文章 | 0 粉丝
原创

QEMU显卡直通

2024-05-20 09:44:16
207
0

0 前言

    本文重点分析显卡直通的配置与使用方法。

1 配置

1.1 宿主机

(1)打开IOMMU

    宿主机必须开启IOMMU,例如Intel平台的开启方式如下:

GRUB_CMDLINE_LINUX="intel_iommu=on"
# @file: /etc/default/grub
sudo update-grub


(2)禁用显卡驱动

    宿主机必须禁用/卸载显卡驱动,使得显卡设备不被任何程序使用(vfio驱动除外)。

1.2 虚拟机

(1)分配PCI设备

   显卡通常都属于PCI设备,可将其分配给虚拟机,其中virt-manager的配置如下:

图1.1 virt-manager显卡直通配置

    上图“PCI 0000:01:00.0”设备对应的xml配置如下:

    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
    </hostdev>
<!-- @file: /etc/libvirt/qemu/ubuntu22.04.xml -->

:PCI设备是以IOMMU组为单位进行直通的,同一组内有多个设备时,需要全部分配给虚拟机,否则会失败。

(2)安装显卡驱动

    成功将显卡直通给虚拟机之后,对其使用方法类似于宿主机,需要安装显卡的驱动的。

2 使用

2.1 计算

    可安装CUDA进行AI计算,和物理机类似。

2.2 图形

    使用方法类似于物理机,难点在于获取其图形渲染结果,其中一个方法就是虚拟机内通过X11进行截屏,然后将相关结果传给客户端。

参考资料

[1]使用Linux vfio将Nvidia GPU透传给QEMU虚拟机(同时透传NVIDIA GPU和NVIDIA Audio设备)
[2]kvm+qemu显卡直通(含IOMMU分组问题解决)
[3]如何使用Linux vfio将Nvidia GPU透传给QEMU虚拟机?(同时透传NVIDIA GPU和NVIDIA Audio设备)
[5]NVIDIA单显卡直通保姆级教程: 手把手配置和调试(无需vfio)
[6]【SR-IOV】QEMU-KVM设备热插拔机制简析
[4]kvm 透传显卡至win10虚拟机的教程(pci-stub)
[7]KVM创建windows虚拟机,并设置显卡直通
[8]虚拟机显卡直通(initrd、nvram、/etc/initramfs-tools/modules)
[9](SOLVED) GPU PASSTHROUGH ERROR UNKNOWN PCI HEADER TYPE '127'
[10]一次失败的显卡硬件穿透实验
[11]KVM+显卡直通(passthrough)配置方法及问题说明(pci-stub)
[12]NVRM: failed to copy vbios to system memory.
[13]NVRM: RmInitAdapter failed! , failed to copy vbios to system memory
[14]Linux下显卡掉卡,报错提示: rm_init_adapter failed, device minor number 7 Failed to copy vbios to system memory
[15][SOLVED] Problem with NVIDIA Drivers not loading
[16]Video-nvidia-470xx fails on kernel 6.0
[17]GPU virtualization with QEMU/KVM
[18]NVIDIA Docs Hub > NVIDIA Networking > Networking Software > NVIDIA BlueField-3 SNAP for NVMe and Virtio-blk v4.2.1 > Advanced Features
[19]lateralblast/kvm-nvidia-passthrough
[20]PCI passthrough via OVMF(Archlinux)
[21]Ubuntu 22.04 GPU passthrough (QEMU)
[22]KVM/QEMU 虛擬機器設定 GPU Passthrough 記錄
[23]GPU passthrough with libvirt qemu kvm
[24][vfio-users] "Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff" when attempting to dump PCI ROM
[25]How to dump video bios of Intel HD Graphic 630
[26]GPU Passthrough Windows Won't Work - Ubuntu VM works! (nvidia-smi) - stuck
[27]GVT-d iGPU Intel UHD 630 Boot Device Invalid PCI ROM header signature
[28]VM W/ GPU PASSTHROUGH NOT OUTPUTTING TO DISPLAY
[29]Ubuntu22.04.1 LTS系统上实现KVM虚拟机显卡直通(AMD/NVIDIA+板载显卡)
[30]KVM虚拟化win10显卡直通一例
[31]基于KVM的虚拟显卡透传技术
[32]KVM GPU直通vbios rom问题
[33]UEFI/BIOS——CSM 相关概念整理
[34]Vfio-pci driver bound to boot_vga - the monitor doesn’t go into sleep mode
[35]qubitrenegade/vfio-pci-override.sh
[36]Passing through boot_vga
[37][SOLVED] How to Read Out rMBP Mid-2014 Nvidia ROM?
[38]Nvidia Image/ROM Verification Linux
[39]Extracting the GeForce video BIOS ROM file
[41]PVE – PCI 设备的直通
[43]QEMU/Guest graphics acceleration

文章来自个人专栏
云桌面
14 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0