Image

Проброс видеокарты

Проброс физической видеокарты NVIDIA в виртуальную машину QEMU на хост системе Ubuntu 24.04

Для выполнения этой задачи необходимо убедиться, что процессор поддерживает виртуализацию Intel VT-X или AMD-V.

Это можно узнать с помощью команды:

lscpu | grep "Virtualization"

Компьютер должен иметь как минимум две видеокарты: одну для хоста, другую для виртуальной машины.

Для выполнения задачи будет использоваться VFIO (Virtual Function Input/Output) — виртуальная функция ввода-вывода, которая предоставляет прямой доступ устройства к пользовательскому пространству.

Необходимо определить идентификатор PCI для графического процессора NVIDIA. Это можно сделать с помощью команды:

lspci -nn | grep -E "NVIDIA"

Пример вывода:

07:00.0 VGA compatible controller 0300: NVIDIA Corporation GP108 GeForce GT 1030 10de:1d01 (rev a1)
07:00.1 Audio device 0403: NVIDIA Corporation GP108 High Definition Audio Controller 10de:0fb8 (rev a1)

В данном примере идентификаторы: 10de:1d01, 10de:0fb8.

Далее необходимо включить функцию IOMMU. Для этого нужно открыть файл конфигурации grub и внести следующие правки:

sudo vi etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on iommu=pt vfio-pci.ids=10de:1d01,10de:0fb8"
GRUB_CMDLINE_LINUX=""

Затем сохраните изменения, обновите конфигурацию grub и перезагрузите компьютер:

sudo grub-mkconfig -o boot/grub/grub.cfg
sudo reboot

Далее необходимо изолировать видеокарту NVIDIA от доступа ядра хостовой ОС. Для этого создайте файл конфигурации VFIO и введите параметры vfio-pci с идентификаторами:

sudo touch /etc/modprobe.d/vfio.conf
sudo vi /etc/modprobe.d/vfio.conf
options vfio-pci ids=10de:1d01,10de:0fb8
softdep nvidia pre: vfio-pci

После этого обновите initramfs и убедитесь, что обновление пройдёт без ошибок, затем перезагрузите компьютер:

sudo update-initramfs -c -k $(uname -r)
sudo reboot

Чтобы проверить изоляцию видеокарты, выполните следующую команду:

$ lspci -k | grep -E "vfio-pci|NVIDIA"

Пример вывода:

07:00.0 VGA compatible controller: NVIDIA Corporation GP108 [GeForce GT 1030] (rev a1)
    Subsystem: NVIDIA Corporation GP108 [GeForce GT 1030]
    Kernel driver in use: vfio-pci
07:00.1 Audio device: NVIDIA Corporation GP108 High Definition Audio Controller (rev a1)
    Subsystem: NVIDIA

Комментарии

Добавить комментарий