Проброс дискретной видеокарты в виртуальной машине KVM

Ответить
artemvav512
Сообщения: 11
Зарегистрирован: 10 авг 2023, 02:25
Operating system: ROSA Fresh Desktop 2021.1

Проброс дискретной видеокарты в виртуальной машине KVM

Сообщение artemvav512 » 11 сен 2023, 10:09

Данный пост поможет вам сделать проброс дискретной видеокарты AMD/Nvidia. Данная инструкция сделана в расчете на то, что у вас есть встроенный видеопроцессор, помимо дискретной видеокарты.
Чтобы это сделать, нужно:
1. Установка пакетов с помощью команды в терминале:

Код: Выделить всё

sudo dnf install qemu virt-manager libvirt virt-install edk2-ovmf
2. Добавить пользователя в группу libvirt с помощью команды в терминале:

Код: Выделить всё

sudo usermod -a -G libvirt ВАШЕ_ИМЯ_ПОЛЬЗОВАТЕЛЯ
3. Создайте файл с помощью команды в терминале nano iommu.sh , вставьте данный скрипт и сохраните файл с помощью Ctrl+O:

Код: Выделить всё

#!/bin/bash
for d in /sys/kernel/iommu_groups/*/devices/*; do
  n=${d#*/iommu_groups/*}; n=${n%%/*}
  printf 'IOMMU Group %s ' "$n"
  lspci -nns "${d##*/}"
done
4. Запустите данный скрипт с помощью команды в терминале

Код: Выделить всё

sh iommu.sh
5. Найдите строки, в котором имеются слова VGA compatible controller и Audio device под VGA compatible controller, и сохраните их, например, в блокноте (пример:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU117M [GeForce GTX 1650 Ti Mobile] [10de:1f95] (rev a1)01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:10fa] (rev a1) )
6. Найдите строки, в котором имеются слова USB controller, и сохраните их, например, в блокноте (пример:
00:14.0 USB controller [0c03]: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller [8086:a36d] (rev 10) )
7. Добавьте драйвера с помощью Dracut с помощью команды в терминале

Код: Выделить всё

sudo nano /etc/dracut.conf.d/vfio.conf
8. Вставьте данную строку в данном файле, и сохраните его с помощью Ctrl+O:

Код: Выделить всё

add_drivers+=" vfio vfio_iommu_type1 vfio_pci vfio_virqfd "
9. Сделайте сборку с помощью Dracut с помощью команды в терминале:

Код: Выделить всё

sudo dracut -f
10. Измените файл конфигурации GRUB с помощью команды в терминале:

Код: Выделить всё

sudo nano /etc/default/grub
11. В данном файле нужно достать некоторые значения, которые вы сохранили в пункте 5 и 6 (если же вы их не сохранили, то выполните повторно 5 и 6 пункты). Нам нужно взять оттуда то, что в скобках (у меня 10de:1f95 – это на видеокарту (обозначу как ВАШ_GPU1), 10de:10fa – это на аудио устройство на видеокарте (обозначу как ВАШ_GPU2), 8086:a36d – это на USB-контроллер (обозначу как ВАШ_USB), и вставить это вместо ВАШ_GPU1, ВАШ_GPU2, ВАШ_USB в данной строке:

Код: Выделить всё

GRUB_CMDLINE_LINUX="rhgb quiet selinux=0"
Вставить нужно после selinux=0 вот это:
А) Если у вас процессор Intel:

Код: Выделить всё

intel_iommu=on intel_iommu=pt rd.driver.pre=vfio-pci vfio-pci.ids=ВАШ_GPU1,ВАШ_GPU2 pci-stub.ids=ВАШ_USB"
Б) Если у вас процессор AMD:

Код: Выделить всё

amd_iommu=on amd_iommu=pt rd.driver.pre=vfio-pci vfio-pci.ids=ВАШ_GPU1,ВАШ_GPU2 pci-stub.ids=ВАШ_USB"
Сохраняйте с помощью Ctrl+O
12. Нужно тепепь сгенерировать конфигурацию GRUB, это нужно сделать с помощью команды в терминале:

Код: Выделить всё

sudo update-grub2
ВНИМАНИЕ! ПОСЛЕ ЭТИХ ШАГОВ У ВАС НЕ БУДЕТ РАБОТАТЬ ДИСКРЕТНАЯ ВИДЕОКАРТА, ЧТОБЫ РАБОТАЛА ДИСКРЕТНАЯ ВИДЕОКАРТА, НУЖНО СОЗДАТЬ ОТДЕЛЬНУЮ ЗАПИСЬ В GRUB ДЛЯ ЗАПУСКА ВИДЕОКАРТЫ БЕЗ ПРОБРОСА. КАК ЭТО СДЕЛАТЬ, Я ПОЗЖЕ СДЕЛАЮ ДОПОЛНЕНИЯ. ЛИБО, ЧТОБЫ РАБОТАЛА ВИДЕОКАРТА ДИСКРЕТНАЯ В РОСЕ, НУЖНО ПЕРЕД ЗАГРУЗКОЙ В GRUB НАЖАТЬ E, ПОТОМ УБРАТЬ СТРОКИ, КОТОРЫЕ ОПИСАНЫ В ПУНКТЕ 11 (КОТОРЫЕ ПОД ПОДПУНКТАМИ А ИЛИ Б) и загрузиться с помощью Ctrl+X
13. Перезагрузите ПК, после перезагрузки наберите команду в терминале

Код: Выделить всё

lspci -nnv
14. Где у вас VGA compatible controller и Audio device в секции Kernel driver in use должно быть написано vfio-pci – если оно так, то поздравляю, вы всё правильно сделали.

Для создания виртуальной машины смотрите данную инструкцию: https://disk.yandex.ru/d/V5vIDvcRVnlBWg

Ответить

Вернуться в «Обсуждение ROSA Fresh R12 (платформа 2021.1)»