arbrspb,
Имеется сервер с установленным на него ubuntu linux. Суть задачи заключается в том чтобы на него поставить виртуальную машину в которой можно будет пробросить физическую видеокарту nvidia для использования ее в майнинге. На виртуальную машину планируется установить wondows 10. Возможно ли такое реализовать?
1. О главном! За железо.
- К серверу должен быть физический доступ для первоначальной настройки. Все эти конфигурации, включение-выключения и подсоединения к монитору для того что бы видеть воочию.
- Железо должно поддерживать VT-d (сейчас почти у всех есть поддержка этой технологии) и VT-x. (Для АМД AMD-Vi, IOMMU) Обязательно нужно активировать указанные технологии в BIOS'е. Если на этом этапе VT-x включить нельзя, или он не включается вместе с VT-d, то идем менять железо, и меняем его до тех пор, пока опция не будет активирована и в любой ОС программы анализаторы железа не покажут, что технология включена и работает. Можно использовать читы, в виде анализа чужого опыта, т.е. косплея конфиги тех пользователей в сети, которые хвастливо утверждают, еще лучше, показывают что у них все получилось.
- Железо. Правишь Grub, активируя в нем
для процессоров Интел
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
для процессоров АМД
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"
Далее, после перезагрузки хоста отрой консоль и выполни как написано в копипасте из соответствующего раздела Wiki:
1) Run the «dmesg | grep ecap» command.
2) On the IOMMU lines, the hexadecimal value after «ecap» indicates whether interrupt remapping is supported. If the last character of this value is an 8, 9, a, b, c, d, e, or an f, interrupt remapping is supported. For example, «ecap 1000» indicates there is no interrupt remapping support. «ecap 10207f» indicates interrupt remapping support, as the last character is an «f».
Interrupt remapping will only be enabled if every IOMMU supports it.
Если здесь тебя поджидает облом, то опять меняем мать, пока не пройдем тест.
2. О не менее главном. О софте.
Если все получилось, то дальше 2 пути, или KVM+QEMU, либо Proxmox (надстройка над Debian Linux + KVM). Т.е. или KVM или KVM. После чего пользуешься гайдами, например:
Ubuntu KVM+QEMU:
ubuntovod.ru/instructions/probros-videokarty-v-kvm...
Proxmox:
https://habr.com/ru/post/437598/
Об Nvidia и Ошибке 43.
В процессе настройки можно поиметь проблему, широко известную в узких кругах, как Ошибка 43, это драйвер видеокарт Nvidia не дает запустить ВК в ВМ. Лечится путем правки конфигов, с тем что бы скрыть от драйвер, что оборудование проброшено в ВМ.
в Proxmox'е лечится путем внесении доп. параметра в конфигурационный файл ВМ:
args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=willitwork,kvm=off'
еще лечится прописыванием таких команд:
echo "softdep nouveau pre: vfio-pci" >> /etc/modprobe.d/nvidia.conf
echo "softdep nvidia pre: vfio-pci" >> /etc/modprobe.d/nvidia.conf
echo "softdep nvidia* pre: vfio-pci" >> /etc/modprobe.d/nvidia.conf
То же делается и в Ubuntu KVM+QEMU, но hv_vendor_id=willitwork прописывается в libvirt.xml
https://www.reddit.com/r/VFIO/comments/479xnx/gues...
После успешной настройки выглядит это так:
https://www.youtube.com/watch?v=wjlmWHJiEug
ЗЫ.
Тут Nvidia утверждает, что, якобы, в последних вариантов драйверов она больше не будет гадить пользователям с ошибкой 43, но это не точно.
https://habr.com/ru/news/t/550678/
В особо упоротых случаях может потребоваться подмена ROM'а ВК через гипервизор, или даже перепрошивка Биоса Видеокарты. Но в последнее время эти технологии уходят в прошлое.