Всем привет!!!
В этом примере я покажу как пробросить 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
Мне помог этот материал