LINUX.ORG.RU

Проблема с пробросом видеокарты в виртуальную машину : Libvirt Hook Helper не работает

 , ,


0

1

Система : MX linux (как debian,но без systemd)

весь пк собран на комплектующих красных.

виртуалка работает на qemu kvm.

использовал этот гайд для проброса : https://www.youtube.com/watch?v=hQL5h5GteTY

А этот для установки Libvirt Hook Helper https://www.youtube.com/watch?v=eTWf5D092VY

Я крайне зеленый пользователь линукса ,но пытаюсь пробросить видеокарту,однако с этим есть проблема - Libvirt Hook Helper не хочет работать (просто черный экран).

Сама виртуалка работает отлично , пока я не пытаюсь пробросить видеокарту.Я думаю,что проблема в отсутсвии систем д ,по этому хотел бы узнать , что мне нужно сделать ,чтобы все работало,или же мне прямо обязательно нужна ос на систем д ?



Последнее исправление: agent_linux (всего исправлений: 1)

Проблема в том, что перед стартом вм тебе нужно на горячую отвязать драйвер amdgpu от видеокарточки, чтобы на его место забиндить vfio-pci, и при этом ничего не сломать в ядре.

Запусти хук ручками и после резета смотри ядерный лог, что происходило в том момент. Скорее всего, падали дрова, поэтому вм и не работала.

anonymous
()
Ответ на: комментарий от anonymous

Тебе нужно добиться, чтобы после выполнения твоего стартового хука, следующий код ничего не сломал в ядре:

echo '0000:05:00.1' > /sys/bus/pci/drivers/snd_hda_intel/unbind
echo '0000:05:00.0' > /sys/bus/pci/drivers/amdgpu/unbind
modprobe vfio_pci ids=1002:67df,1002:aaf0 disable_idle_d3=1

Замени значения, чтобы соответствовали твоей системе. Если он отрабатывает и в ядерном логе чисто, что виртуалка должна работать.

Возможно, что для твоей красной карты ещё необходимо установить модуль vendor-reset: https://github.com/gnif/vendor-reset

Если этот модуль требуется для твоей карточки, то просмотри правило udev, которое идёт с ним в исходниках. В нём есть косяк: device-id должен указываться в верхнем регистре, иначе правило не срабатывает для такого девайса.

anonymous
()
Ответ на: комментарий от anonymous

здравствуй ,прости за тупые вопросы - я все же новичек полный,но я же верно понял,что эту строчку нужно исправить ?

Unbind VTconsoles

echo 0 > /sys/class/vtconsole/vtcon0/bind echo 0 > /sys/class/vtconsole/vtcon1/bind Я понял,что мне нужно вписать вот этот номер видеокарты 0000_8c_00_1 в место,где нолик, но я не знаю,что делать с этой частью /sys/class/vtconsole/vtcon1/bind Еще я бы хотел узнать,как посмотреть эти логи ядра ? После запуска виртуалки у меня экран просто делает черным,так что я мало что могу сделать тут.

Я еще скину полный лист стартового хука(Я вполне мог что-то не так сделать)

#!/bin/bash

Helpful to read output when debugging

set -x

Stop display manager

systemctl stop display-manager.service

Uncomment the following line if you use GDM

#killall gdm-x-session

Unbind VTconsoles

echo 0 > /sys/class/vtconsole/vtcon0/bind echo 0 > /sys/class/vtconsole/vtcon1/bind

Unbind EFI-Framebuffer

echo efi-framebuffer.0 > /sys/bus/platform/drivers/efi-framebuffer/unbind

Avoid a Race condition by waiting 2 seconds. This can be calibrated to be shorter or longer if required for your system

sleep 2

Unbind the GPU from display driver

virsh nodedev-detach pci_0000_8c_00_0 virsh nodedev-detach pci_0000_8c_00_1

agent_linux
() автор топика
Ответ на: комментарий от agent_linux

Не трогай пока хук. Тебе нужно посмотреть лог ядра после запуска виртуалки. Так как ты получаешь чёрный экран, то логи в этой сессии ты уже посмотреть не можешь, если, конечно, ты не подключился со второй машины по ssh, а виртуалка не смогла намертво завесить комп. Следовательно, тебе нужно найти способ, как посмотреть логи от предыдущей загрузки. С systemd это делается просто. Как это сделать в твоей системе, я не в курсе. Надо гуглить.

ЗЫ Если не собираешься рубиться во всякие ммо с хитрожопой защитой, которая палит виртуалки, то можешь попробовать поставить vmware workstation. Она хоть и проприетарь, но свободна для использования, и тут кто-то хвастался, что под ней в киберпанк спокойно гонял.

anonymous
()
Ответ на: комментарий от anonymous

На данный момент мне было бы достаточно,если бы моя виртуалка могла бы выдать хотябы 30 впс в стареньких играх,которые требуют от силы половину гигабайта видеопамяти. Может,мне нужно драйвера на виртуалку поставить,для qemu что-то там скачать? Я включил 3д ускорение,но это мало чем помогло,памяти и ядер я дал много,но проблема именно с видеопамятью.

agent_linux
() автор топика
Ответ на: комментарий от agent_linux

В qemu для винды нет полностью рабочих гостевых драйверов, поддерживающих 3D. Если нет второй видеокарты, то я бы не стал заморачиваться с пробросом. Либо дуалбут, либо vmware. Ещё, возможно, virtualbox, но я его не использовал.

anonymous
()