Я довольно долго экспериментировал с процессом включения проброса встроенного iGPU для AMD 8700G/8700GE с Radeon 780M в Proxmox. Благодаря этому подходу вы сможете задействовать мощь интегрированной графики непосредственно внутри Windows VM. Это значительно повысит производительность при обработке видео, в играх или просто сделает работу в виртуальной машине более плавной.
В этом посте я покажу каждый шаг, помогу разобраться с частыми проблемами, такими как ошибка сброса AMD (AMD reset bug), и помогу максимально эффективно использовать ваше оборудование. В итоге вы получите полностью настроенную среду, где AMD Radeon 780M iGPU будет работать с аппаратным ускорением внутри Windows VM.
Понимание iGPU-проброса и почему это важно
Включение iGPU-проброса в Proxmox позволяет выделить интегрированную графику AMD 8700G/8700GE с Radeon 780M напрямую для Windows VM. Это значит, что виртуальная машина получит доступ к GPU с аппаратным ускорением, минуя программную эмуляцию и обеспечивая почти нативную производительность.
В результате вы получите более плавную графику в Windows, более быструю обработку видео и сможете запускать GPU-ускоренные приложения, которые раньше в виртуализированной среде работали неэффективно. Главная идея — использовать имеющееся «железо» по максимуму, сделав виртуализацию более мощной.
Ключевые компоненты iGPU-проброса
Весь процесс включает несколько уровней: Proxmox VE как гипервизор, VFIO для проброса PCI-устройств, IOMMU для аппаратного отображения, а также Windows внутри VM, настроенная с драйверами VirtIO и драйвером AMD GPU. Правильная согласованность всех этих элементов — и есть тот самый рецепт успеха.
Не переживайте, если часть терминов звучит слишком технически. Я проведу вас по шагам, чтобы вы справились с задачей, даже если у вас нет глубокого опыта в Linux или сетях.
Предварительные требования: подготовка среды Proxmox
Прежде чем начать, убедитесь, что у вас установлена рабочая версия Proxmox VE, желательно 8.x или новее. Это гарантирует более современное ядро и лучшую совместимость. Также вам понадобятся образы ISO Windows и VirtIO-драйверов.
Ваше оборудование должно поддерживать IOMMU (проверьте настройки в BIOS). Кроме того, убедитесь, что iGPU AMD 8700G/8700GE (Radeon 780M) распознаётся системой. Базовые знания Linux пригодятся, но я постараюсь сделать инструкции максимально понятными и сжатыми.
Если в тексте встречаются пути или IP, замените их на ваши реальные данные, например
Что вам понадобится
- Proxmox VE 8.x или новее
- Образ Windows ISO и VirtIO-драйверов ISO
- Процессор AMD 8700G/8700GE с iGPU Radeon 780M
- Базовые навыки работы с командной строкой
Шаг 1: Включение IOMMU на хосте Proxmox
IOMMU позволяет виртуальной машине получать прямой доступ к GPU. Без этого проброс работать не будет. Это важный шаг, чтобы Proxmox мог корректно распределять устройства.
Сначала отредактируйте конфигурацию загрузчика, чтобы включить IOMMU в режиме “pt”. Затем обновите конфигурацию и перезагрузите сервер.
Выполните на хосте Proxmox:
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet"/GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt"/g' /etc/default/grub
update-grub
reboot
После перезагрузки проверьте, что IOMMU активирован:
dmesg | grep -e DMAR -e IOMMU
Если вывод показывает строки, связанные с IOMMU, значит всё в порядке. Если нет, проверьте настройки BIOS для IOMMU или AMD-Vi.
Шаг 2: Определение iGPU AMD Radeon 780M
Для продолжения вам нужен PCI ID вашей iGPU. Это гарантирует, что хост будет знать, какое устройство пробрасывать в VM. Выполните команду:
lspci -nn | grep -e 'AMD/ATI'
Ищите строку вида “Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf].” Например, PCI ID может быть 0d:00.0, а ID устройства — 1002:15bf.
Учтите, что для iGPU AMD 8700G/8700GE обычно нет отдельного аудиоустройства, как у дискретных GPU. Это упрощает настройку, так как пробрасывать нужно только одно PCI-устройство.
Шаг 3: Настройка VFIO для проброса iGPU
VFIO обеспечивает изоляцию PCI-устройства от хоста, делая его доступным исключительно для VM. Так гость может работать с GPU так, как будто он физически установлен внутри этой системы.
Сначала загрузим необходимые модули VFIO при старте:
echo "vfio" >> /etc/modules
echo "vfio_iommu_type1" >> /etc/modules
echo "vfio_pci" >> /etc/modules
echo "vfio_virqfd" >> /etc/modules
Затем привяжем iGPU к vfio-pci:
echo "options vfio-pci ids=1002:15bf" >> /etc/modprobe.d/vfio.conf
Чтобы драйвер amdgpu не перехватил iGPU раньше времени, добавим softdep:
echo "softdep amdgpu pre: vfio-pci" >> /etc/modprobe.d/vfio.conf
Обновим initramfs и перезагрузим систему:
update-initramfs -u -k all
reboot
После перезагрузки проверьте, что GPU использует vfio-pci:
lspci -nnk | grep -A 3 '0d:00.0'
Если драйвером значится “vfio-pci”, значит всё сделано верно.
Шаг 4: Извлечение и настройка VBIOS
Для корректной инициализации GPU внутри VM часто требуется соответствующий VBIOS. Это особенно важно для некоторых AMD GPU, чтобы обеспечить правильный старт и избежать проблем вроде чёрного экрана. Чтобы корректно пробросить GPU, нам нужно указать виртуальной машине, какой BIOS использовать. Мы можем извлечь его напрямую с хоста или взять из репозитория.
Сначала создайте файл vbios.c
на вашем хосте Proxmox с кодом выше и скомпилируйте его. Затем запустите полученный бинарный файл для извлечения VBIOS. Если возникнут сложности, обратитесь к этой ссылке (nofollow): https://github.com/isc30/ryzen-7000-series-proxmox
После компиляции и запуска vbios.c
вы получите файл vbios_*.bin
. Поместите его в нужный каталог:
gcc vbios.c -o vbios
./vbios
mv vbios_*.bin /usr/share/kvm/vbios_780m.bin
Правильный VBIOS гарантирует нормальную инициализацию GPU внутри Windows VM, снижая риск отображения искажений или сбоев при установке драйверов.
Шаг 5: Создание и настройка Windows VM
Пришло время создать Windows VM в Proxmox и назначить iGPU. Использование типа машины Q35 и прошивки OVMF (UEFI BIOS) повышает совместимость и производительность. Включение Discard и эмуляции SSD для хранилища улучшает скорость и продлевает срок службы носителя.
Создайте новую VM через веб-интерфейс Proxmox. Используйте ISO Windows и VirtIO-драйверов. После создания VM отредактируйте её конфигурационный файл напрямую, чтобы добавить пробрасываемое устройство и romfile.
Откройте конфигурационный файл VM:
nano /etc/pve/qemu-server/<VM_ID>.conf
Добавьте или измените нужные строки, например:
agent: 1
args: -cpu 'host,-hypervisor,kvm=off'
bios: ovmf
boot: order=scsi0;ide2;net0
cores: 8
cpu: host
efidisk0: local-zfs:vm-<VM_ID>-disk-0,efitype=4m,pre-enrolled-keys=1,size=1M
hostpci0: 0000:0d:00.0,pcie=1,romfile=vbios_780m.bin
ide2: none,media=cdrom
machine: pc-q35-9.0
memory: 16384
name: windows
net0: virtio=<MAC_ADDRESS>,bridge=vmbr0,firewall=1
numa: 0
ostype: win11
scsi0: local-zfs:vm-<VM_ID>-disk-1,discard=on,iothread=1,size=100G
scsihw: virtio-scsi-single
smbios1: uuid=<UUID>
sockets: 1
tpmstate0: local-zfs:vm-<VM_ID>-disk-2,size=4M,version=v2.0
vmgenid: <GENID>
Подставьте свои значения VM_ID, MAC_ADDRESS, UUID и GENID. Сохраните файл, затем запустите VM и начните установку Windows. iGPU уже проброшен, но впереди установка драйверов.
Шаг 6: Установка драйверов VirtIO и драйверов AMD GPU
После установки Windows необходимо поставить оптимальные драйверы. VirtIO-драйверы улучшат работу с диском, сетью и прочим. Драйверы AMD GPU позволят Windows полноценно использовать Radeon 780M.
Сначала примонтируйте ISO с VirtIO-драйверами и установите все необходимые компоненты: VirtIO Storage, VirtIO Network, VirtIO Balloon и т.д.
Затем установите драйверы AMD GPU (используйте официальный инсталлятор от AMD, желательно оффлайн-версию). После установки GPU будет корректно отображаться в диспетчере устройств Windows.
Шаг 7: Решение проблемы сброса AMD (AMD Reset Bug)
Ошибка сброса AMD — известная проблема, при которой GPU некорректно сбрасывается после перезагрузки VM, требуя полной перезагрузки хоста. К счастью, есть обходной путь — модуль vendor-reset.
Установим и включим vendor-reset:
git clone https://github.com/gnif/vendor-reset.git
cd vendor-reset
make
make install
modprobe vendor-reset
echo "vendor-reset" >> /etc/modules
С vendor-reset шанс корректного сброса iGPU после выключения VM выше. Однако иногда все же может потребоваться перезагрузка всего хоста Proxmox.
Известные проблемы и обходные решения
Ошибка 43 в Windows
Если Windows показывает “Error 43” для GPU, это значит, что устройство не запустилось. Часто простая перезагрузка хоста решает проблему. Такая ошибка может появляться после изменения настроек или драйверов.
Remote Desktop отключает iGPU
Иногда использование Windows Remote Desktop приводит к отключению GPU в диспетчере устройств. Если это случилось, просто снова включите его вручную.
Решение проблем со сбросом
Хотя vendor-reset помогает, сбой сброса не всегда полностью устраняется. Если VM не стартует после перезагрузки, попробуйте перезагрузить весь хост Proxmox.
Оптимизация производительности и стабильности
Когда проброс iGPU заработает, можно улучшить конфигурацию. Попробуйте настроить количество CPU и оперативной памяти, включить Huge Pages для ускорения работы памяти, или использовать выделенный SSD для VM. Цель — создать для VM максимально комфортную среду.
Использование типа машины Q35 и OVMF
Q35 и OVMF (UEFI BIOS) повышают совместимость и производительность. Q35 — это современный чипсет, хорошо сочетающийся с PCIe-пробросом. OVMF обеспечивает загрузку Windows в UEFI-режиме. В итоге система работает плавнее.
Ускорение дисковых операций
Используйте VirtIO SCSI для увеличения скорости диска и включайте Discard и эмуляцию SSD. Это улучшит отзывчивость и снизит износ диска. Можно поэкспериментировать с кэшированием, но сначала убедитесь в стабильности.
Особенности сетевой настройки
Применяйте VirtIO-драйверы для сети для повышения пропускной способности и снижения задержек. Если вы запускаете GPU-ускоренные задачи, зависящие от сети или стриминга, стабильный и быстрый виртуальный сетевой интерфейс — это ключ. При необходимости выделите отдельный NIC или VLAN.
Тестирование и проверка
После настройки стоит протестировать производительность. Запустите несколько GPU-тестов внутри Windows VM и сравните результаты с “голым” железом, если есть возможность. Проверьте воспроизведение видео, игры или 3D-рендеринг. Вы заметите серьёзный прирост по сравнению с софтверной эмуляцией.
Если что-то работает не так, как ожидается, перепроверьте шаги. Убедитесь в корректной настройке IOMMU, VFIO и загрузке vendor-reset. Терпение и аккуратная отладка — ваш лучший друг.
Заключение
Следуя этим шагам, вы раскрыли весь потенциал AMD 8700G/8700GE с Radeon 780M iGPU в Proxmox Windows VM. Это не просто технический эксперимент, а реальный способ добиться почти нативной производительности GPU для виртуальных рабочих нагрузок, меняющий ваш подход к использованию системы.
Будь то редактирование медиа, лёгкий гейминг или ресурсоёмкие вычисления, прямой доступ к iGPU может сильно повлиять на опыт работы. Надеюсь, этот гайд окажется полезным и поможет вам максимально использовать вашу Proxmox-среду.
Если вас интересуют дополнительные настройки или другие модели GPU, принципы остаются те же: включите IOMMU, загрузите VFIO, предоставьте корректный VBIOS и пробросьте устройство. Успешной виртуализации!