Протестировано на Proxmox 8.4 Ministorum UM790 Pro ( ) AOOSTAR AG02 Nvidia GTX960
Обзор
Активируем GPU passthrough.
Заставляем работать eGPU.
Найдите GPU и отключите его от работы с ОС.
Пробросьте «сырое» PCI-устройство в виртуальную машину.
1. Редактируем модули
Отредактируйте /etc/modules и добавьте:
vfio
vfio_iommu_type1
vfio_pci
vfio_virtqfd
thunderbolt
Thunderbolt у меня работал даже без этого модуля, кажется, ядро собрано с поддержкой, так что строка с `thunderbolt` может и не понадобиться.
2. Редактируем grub
Отредактируйте /etc/default/grub, поменяйте GRUB_CMDLINE_LINUX_DEFAULT на:
GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt amd_pstate=active intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction"
Обновите grub командой update-grub.
3. Конфигурация thunderbolt
Когда вы отключаете и снова подключаете AOOSTAR eGPU, он загорается, а через пару секунд гаснет. Это потому, что ОС сначала должна авторизовать устройство.
Установите boltctl через apt-get install bolt.
Выполните boltctl list -a, чтобы найти UUID устройства AOOSTAR.
Зарегистрируйте устройство командой boltctl enroll <device uuid>.
Если появится странная ошибка:
Установите policykit командой apt install policykit-1.
Активируйте службу systemctl start polkit и включите автозапуск systemctl enable polkit.
Повторите команды boltctl.
Теперь eGPU зарегистрирован и будет оставаться включённым при повторном подключении.
Далее нужно зарегистрировать сам GPU.
Запустите boltctl list и найдите GPU — у него будет другой UUID.
Зарегистрируйте его так же: boltctl enroll <device uuid>.
Если возникают трудности с получением UUID, используйте boltctl monitor и отключите/подключите eGPU. UUID появится в выводе.
После этого проверьте, что GPU виден командой lspci -nn | grep -e 'NVIDIA'.
4. Настраиваем modeprobe
Используйте lspci -nn | grep -e 'NVIDIA', чтобы найти ID устройства.
Это будет то, что в квадратных скобках в конце, например [12ab:cd34].
Для типичного NVIDIA GPU вы найдете два ID: один для VGA-совместимого контроллера, другой — для аудиоустройства. Обычно нужен только VGA ID, но можно добавить и аудио.
Отредактируйте или создайте файл /etc/modprobe.d/vfio.conf и добавьте туда строку с найденными ID:
options vfio-pci ids=12ab:cd34,56ab:cd78
Обновите initramfs командой update-initramfs -u -k all.
Перезагрузитесь reboot.
5. Настраиваем вашу ВМ
В GUI зайдите в Hardware > Add > PCI Device.
Выберите "Raw Device", выберите GPU.
Поставьте галочки:
- All functions
- Advanced
- PCI-Express
Конфигурация в /etc/pve/qemu-server/XXX.conf должна выглядеть примерно так:
hostpci0: 0000:XX:00,pcie=1,x-vga=1
6. Настраиваем ОС ВМ
Установите драйверы NVIDIA (я использую nvcleaninstall под Windows).
Наслаждайтесь!
Обзор
Активируем GPU passthrough.
Заставляем работать eGPU.
Найдите GPU и отключите его от работы с ОС.
Пробросьте «сырое» PCI-устройство в виртуальную машину.
1. Редактируем модули
Отредактируйте /etc/modules и добавьте:
vfio
vfio_iommu_type1
vfio_pci
vfio_virtqfd
thunderbolt
Thunderbolt у меня работал даже без этого модуля, кажется, ядро собрано с поддержкой, так что строка с `thunderbolt` может и не понадобиться.
2. Редактируем grub
Отредактируйте /etc/default/grub, поменяйте GRUB_CMDLINE_LINUX_DEFAULT на:
GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt amd_pstate=active intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction"
Обновите grub командой update-grub.
3. Конфигурация thunderbolt
Когда вы отключаете и снова подключаете AOOSTAR eGPU, он загорается, а через пару секунд гаснет. Это потому, что ОС сначала должна авторизовать устройство.
Установите boltctl через apt-get install bolt.
Выполните boltctl list -a, чтобы найти UUID устройства AOOSTAR.
Зарегистрируйте устройство командой boltctl enroll <device uuid>.
Если появится странная ошибка:
Установите policykit командой apt install policykit-1.
Активируйте службу systemctl start polkit и включите автозапуск systemctl enable polkit.
Повторите команды boltctl.
Теперь eGPU зарегистрирован и будет оставаться включённым при повторном подключении.
Далее нужно зарегистрировать сам GPU.
Запустите boltctl list и найдите GPU — у него будет другой UUID.
Зарегистрируйте его так же: boltctl enroll <device uuid>.
Если возникают трудности с получением UUID, используйте boltctl monitor и отключите/подключите eGPU. UUID появится в выводе.
После этого проверьте, что GPU виден командой lspci -nn | grep -e 'NVIDIA'.
4. Настраиваем modeprobe
Используйте lspci -nn | grep -e 'NVIDIA', чтобы найти ID устройства.
Это будет то, что в квадратных скобках в конце, например [12ab:cd34].
Для типичного NVIDIA GPU вы найдете два ID: один для VGA-совместимого контроллера, другой — для аудиоустройства. Обычно нужен только VGA ID, но можно добавить и аудио.
Отредактируйте или создайте файл /etc/modprobe.d/vfio.conf и добавьте туда строку с найденными ID:
options vfio-pci ids=12ab:cd34,56ab:cd78
Обновите initramfs командой update-initramfs -u -k all.
Перезагрузитесь reboot.
5. Настраиваем вашу ВМ
В GUI зайдите в Hardware > Add > PCI Device.
Выберите "Raw Device", выберите GPU.
Поставьте галочки:
- All functions
- Advanced
- PCI-Express
Конфигурация в /etc/pve/qemu-server/XXX.conf должна выглядеть примерно так:
hostpci0: 0000:XX:00,pcie=1,x-vga=1
6. Настраиваем ОС ВМ
Установите драйверы NVIDIA (я использую nvcleaninstall под Windows).
Наслаждайтесь!
