На хосте Proxmox:
Code: root@pve3:~# cat /etc/default/grub
# Если вы изменяете этот файл, запустите 'update-grub' после этого, чтобы обновить
# /boot/grub/grub.cfg.
# Для полной документации по опциям этого файла смотрите:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX_DEFAULT="iommu=pt intel_iommu=on quiet"
GRUB_CMDLINE_LINUX=""
Code: root@pve3:~# cat /etc/modules
# /etc/modules: модули ядра для загрузки во время загрузки системы.
#
# Этот файл содержит имена модулей ядра, которые должны быть загружены
# во время загрузки системы, по одному на строку. Строки, начинающиеся с "#", игнорируются.
# Параметры могут быть указаны после имени модуля.
# Модули, необходимые для PCI Passthrough
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
Code: root@pve3:~# cat /etc/modprobe.d/vfio.conf
options vfio-pci ids=8086:3e92
softdep i915 pre: vfio-pci
Code: root@pve3:~# lspci -nnks 00:02.0
00:02.0 VGA compatible controller [0300]: Intel Corporation CoffeeLake-S GT2 [UHD Graphics 630] [8086:3e92]
DeviceName: Onboard - Video
Subsystem: Lenovo CoffeeLake-S GT2 [UHD Graphics 630] [17aa:312d]
Kernel driver in use: vfio-pci
Kernel modules: i915
Как видно, видеокарта успешно передана vfio-pci, вот как я передаю igpu в VM:
Code: root@pve3:~# cat /etc/pve/qemu-server/101.conf
agent: enabled=1,fstrim_cloned_disks=1
bios: ovmf
boot: order=scsi0;scsi1
cores: 1
cpu: x86-64-v2-AES
efidisk0: truenas-vhd:vm-101-disk-1,efitype=4m,pre-enrolled-keys=1,size=1M
hostpci0: 0000:00:02.0,pcie=1
ipconfig0: ip=dhcp
machine: q35
memory: 512
meta: creation-qemu=9.0.2,ctime=1723642736
name: deb12-test
nameserver: 172.16.100.2
net0: virtio=BC:24:11:94:A8:BC,bridge=vmbr100
onboot: 1
scsi0: truenas-vhd:vm-101-disk-2,discard=on,size=10G,ssd=1
scsi1: truenas-vhd:vm-101-cloudinit,media=cdrom,size=4M
scsihw: virtio-scsi-single
Однако консоль VM зависает, но VM по-прежнему работает нормально со следующим сообщением об ошибке:
Code: admin@deb12-test:~$ sudo dmesg | grep i915
[ 5.127654] i915 0000:01:00.0: [drm] VT-d активен для доступа к графике
[ 5.129449] i915 0000:01:00.0: [drm] Использование Transparent Hugepages
[ 5.139907] i915 0000:01:00.0: BAR 6: не удалось назначить [??? 0x00000000 flags 0x20000000] (неверное выравнивание)
[ 5.141184] i915 0000:01:00.0: [drm] Не удалось найти таблицы VBIOS (VBT)
[ 5.148537] i915 0000:01:00.0: vgaarb: изменились VGA декоды: старые декоды=io+mem, декоды=none:owns=none
[ 5.297392] i915 0000:01:00.0: firmware: не удалось загрузить i915/kbl_dmc_ver1_04.bin (-2)
[ 5.299844] i915 0000:01:00.0: firmware: не удалось загрузить i915/kbl_dmc_ver1_04.bin (-2)
[ 5.300823] i915 0000:01:00.0: Direct firmware load for i915/kbl_dmc_ver1_04.bin failed with error -2
[ 5.308235] i915 0000:01:00.0: [drm] Failed to load DMC firmware i915/kbl_dmc_ver1_04.bin. Disabling runtime power management.
[ 5.309512] i915 0000:01:00.0: [drm] DMC firmware homepage:
[ 12.797385] i915 0000:01:00.0: [drm] failed to retrieve link info, disabling eDP
[ 17.922751] [drm] Initialized i915 1.6.0 20201103 for 0000:01:00.0 on minor 1
[ 23.121933] i915 0000:01:00.0: [drm] Cannot find any crtc or sizes
[ 28.288034] i915 0000:01:00.0: [drm] Cannot find any crtc or sizes
[ 33.490732] i915 0000:01:00.0: [drm] Cannot find any crtc or sizes
Я даже вижу, что устройство отображает renderD128, и драйвер загружается нормально.
Code: admin@deb12-test:~$ lspci -nnks 01:00.0
01:00.0 VGA compatible controller [0300]: Intel Corporation CoffeeLake-S GT2 [UHD Graphics 630] [8086:3e92]
Subsystem: Lenovo CoffeeLake-S GT2 [UHD Graphics 630] [17aa:312d]
Kernel driver in use: i915
Kernel modules: i915
admin@deb12-test:~$ ls /dev/dri
by-path card0 card1 renderD128
Code: root@pve3:~# cat /etc/default/grub
# Если вы изменяете этот файл, запустите 'update-grub' после этого, чтобы обновить
# /boot/grub/grub.cfg.
# Для полной документации по опциям этого файла смотрите:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX_DEFAULT="iommu=pt intel_iommu=on quiet"
GRUB_CMDLINE_LINUX=""
Code: root@pve3:~# cat /etc/modules
# /etc/modules: модули ядра для загрузки во время загрузки системы.
#
# Этот файл содержит имена модулей ядра, которые должны быть загружены
# во время загрузки системы, по одному на строку. Строки, начинающиеся с "#", игнорируются.
# Параметры могут быть указаны после имени модуля.
# Модули, необходимые для PCI Passthrough
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
Code: root@pve3:~# cat /etc/modprobe.d/vfio.conf
options vfio-pci ids=8086:3e92
softdep i915 pre: vfio-pci
Code: root@pve3:~# lspci -nnks 00:02.0
00:02.0 VGA compatible controller [0300]: Intel Corporation CoffeeLake-S GT2 [UHD Graphics 630] [8086:3e92]
DeviceName: Onboard - Video
Subsystem: Lenovo CoffeeLake-S GT2 [UHD Graphics 630] [17aa:312d]
Kernel driver in use: vfio-pci
Kernel modules: i915
Как видно, видеокарта успешно передана vfio-pci, вот как я передаю igpu в VM:
Code: root@pve3:~# cat /etc/pve/qemu-server/101.conf
agent: enabled=1,fstrim_cloned_disks=1
bios: ovmf
boot: order=scsi0;scsi1
cores: 1
cpu: x86-64-v2-AES
efidisk0: truenas-vhd:vm-101-disk-1,efitype=4m,pre-enrolled-keys=1,size=1M
hostpci0: 0000:00:02.0,pcie=1
ipconfig0: ip=dhcp
machine: q35
memory: 512
meta: creation-qemu=9.0.2,ctime=1723642736
name: deb12-test
nameserver: 172.16.100.2
net0: virtio=BC:24:11:94:A8:BC,bridge=vmbr100
onboot: 1
scsi0: truenas-vhd:vm-101-disk-2,discard=on,size=10G,ssd=1
scsi1: truenas-vhd:vm-101-cloudinit,media=cdrom,size=4M
scsihw: virtio-scsi-single
Однако консоль VM зависает, но VM по-прежнему работает нормально со следующим сообщением об ошибке:
Code: admin@deb12-test:~$ sudo dmesg | grep i915
[ 5.127654] i915 0000:01:00.0: [drm] VT-d активен для доступа к графике
[ 5.129449] i915 0000:01:00.0: [drm] Использование Transparent Hugepages
[ 5.139907] i915 0000:01:00.0: BAR 6: не удалось назначить [??? 0x00000000 flags 0x20000000] (неверное выравнивание)
[ 5.141184] i915 0000:01:00.0: [drm] Не удалось найти таблицы VBIOS (VBT)
[ 5.148537] i915 0000:01:00.0: vgaarb: изменились VGA декоды: старые декоды=io+mem, декоды=none:owns=none
[ 5.297392] i915 0000:01:00.0: firmware: не удалось загрузить i915/kbl_dmc_ver1_04.bin (-2)
[ 5.299844] i915 0000:01:00.0: firmware: не удалось загрузить i915/kbl_dmc_ver1_04.bin (-2)
[ 5.300823] i915 0000:01:00.0: Direct firmware load for i915/kbl_dmc_ver1_04.bin failed with error -2
[ 5.308235] i915 0000:01:00.0: [drm] Failed to load DMC firmware i915/kbl_dmc_ver1_04.bin. Disabling runtime power management.
[ 5.309512] i915 0000:01:00.0: [drm] DMC firmware homepage:
[ 12.797385] i915 0000:01:00.0: [drm] failed to retrieve link info, disabling eDP
[ 17.922751] [drm] Initialized i915 1.6.0 20201103 for 0000:01:00.0 on minor 1
[ 23.121933] i915 0000:01:00.0: [drm] Cannot find any crtc or sizes
[ 28.288034] i915 0000:01:00.0: [drm] Cannot find any crtc or sizes
[ 33.490732] i915 0000:01:00.0: [drm] Cannot find any crtc or sizes
Я даже вижу, что устройство отображает renderD128, и драйвер загружается нормально.
Code: admin@deb12-test:~$ lspci -nnks 01:00.0
01:00.0 VGA compatible controller [0300]: Intel Corporation CoffeeLake-S GT2 [UHD Graphics 630] [8086:3e92]
Subsystem: Lenovo CoffeeLake-S GT2 [UHD Graphics 630] [17aa:312d]
Kernel driver in use: i915
Kernel modules: i915
admin@deb12-test:~$ ls /dev/dri
by-path card0 card1 renderD128
