Проброс PCI устройств в Proxmox

Всем привет!!!

В этом примере я покажу как пробросить PCI устройство в Proxmox на примере SATA контроллера и XPEnology. Но по аналогии можно пробросить что угодно.

Будет рассмотрено сначала проброс просто устройств PCI, а затем как пробросить видео карту

Без конфигураций предложенных в данной статье проброс PCI не работает, хотя и доступен в web интерфейсе управления, но виртуальная машина не заработает и выдаст ошибку.

Проброс PCI устройств

Для начала убедитесь что в BIOS у вас включена технология VT-d. У разных производителей BISO будет выглядеть по-разному.

Затем отредактируем файл загрузки ядра

Если этого файла у вас нет или он пустой, то идем чуть ниже

nano /etc/kernel/cmdline

Было так:

root=ZFS=rpool/ROOT/pve-1 boot=zfs

Для процессоров Intel нужно сделать так:

root=ZFS=rpool/ROOT/pve-1 boot=zfs intel_iommu=on iommu=pt

Для процессоров AMD нужно сделать так:

root=ZFS=rpool/ROOT/pve-1 boot=zfs amd_iommu=on iommu=pt

Теперь нужно обновить внесенные изменения

pve-efiboot-tool refresh

Если файла /etc/kernel/cmdline нет или он пустой, то редактируем настройки grub

nano /etc/default/grub

Для Intel добавляем quiet intel_iommu=on:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

Для AMD добавляем quiet amd_iommu=on:

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"

Должно получиться так

Затем обновляем grub

update-grub

Затем редактируем файл модулей:

nano /etc/modules

Добавьте в него следующие модули

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

И что бы сохраненные изменения применились введите команду:

update-initramfs -u -k all

Затем перезагрузите сервер командой

reboot

После перезагрузки можно проверить такой командой

dmesg | grep -e DMAR -e IOMMU -e AMD-Vi

Должны увидеть примерно следующие и конкретно интересует: IOMMU enabled

Если все хорошо, то можно добавить PCI устройство в виртуальную машину. Для этого ее нужно выключить. Затем перейдите в оборудование, добавить, устройство PCI

Я буду пробрасывать SATA контроллер на чипе ASM поэтому я выбираю его

После добавления устройства PCI в оборудование будет выглядеть примерно как на картинке ниже

Теперь можно запускать виртуальную машину и она увидит это устройство и все что к нему подключено

Теперь вы знаете как проброс PCI устройств в Proxmox

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

Я буду показывать проброс видео карты PCI-Express Nvidia 1650, но по аналогии можно будет пробросить любую и даже встроенную видео карту.

Для начала нужно определить идентификатор PCI устройства видео карты. Для этого введите такие команды:

lspci -v | grep VGA

В моем случаи номер шины видео карты Intel HD 00:02, а номер шины NVIDIA 01:00. Мне нужна последняя, поэтому выведу на и\экран ее идентификаторы командой:

lspci -n -s 01:00

В моем случаи идентификаторов два 10de:1f82,10de:10fa, но может быть и больше, а может быть и меньше в ваш случаи.

Теперь нужно создать файл конфигурации ядра для изоляции видеокарты. Для этого создаем такой файл и редактируем его

nano /etc/modprobe.d/vga.conf

Наполняем его следующим содержимым и не забываем поменять свои значения идентификаторы видео карты.

Чтобы сохранить файл, нажмите cntr+x затем y затем интер.

options vfio-pci ids=10de:1f82,10de:10fa disable_vga=1
options kvm ignore_msrs=1
blacklist radeon
blacklist nouveau
blacklist nvidia

После сохранения файла нужно обновить initramfs такой командой:

update-initramfs -u -k all

Затем перезагрузите сервер

reboot now

После перезагрузки установите виртуальную машину так как вы делали ранее. Я буду показывать на примере установки Xpenology. В общем у вас должна быть уже рабочая виртуальная машина, так как после проброса видео карты вы не увидите ее экран.

Рекомендую заранее выставить статический IP адрес или зарезервировать его в DHCP сервере. Если это Windows, то включить удаленное управление и заранее проверить, что оно работает.

Вам нужно настроить виртуальную машину так, что бы экран был отключен, BIOS OVMF (на картинке не отмечен стрелкой), а чипсет был обязательно q35 как на картинке ниже.

Теперь добавляем новое устройство PCI и выбираем нужную видео карту

Если будите пробрасывать встройку Intel, то к ней нужно еще добавить HD Audio иначе она работать не будет в виртуальной машине

Отмечаем опции “Все функции”, “ROM Bar”, “Основной графический процессор” и “PCI-Express”

Должно получиться примерно так

Виртуальный экран больше отображаться не будет, так как его больше нет в конфигурации ВМ

После загрузки виртуальной машины в ней будет работать проброшенная видео карта. Я пробовал запускал задачи ИИ по распознаванию лиц и они работали как и должны были работать.

Ну и на Windows я проверил, видео карта работает. Правда при первом включении пришлось вручную обновлять драйвер карты.

Теперь вы знаете как пробросить видео карту в Proxmox

Мне помог этот материал

Подписаться
Уведомить о
guest
8 Комментарий
Старые
Новые
Межтекстовые Отзывы
Посмотреть все комментарии