Вопрос или проблема
Я пытался настроить передачу GPU на Arch, но столкнулся с проблемой.
Я следовал этим двум руководствам, в основном первому из них: GPU Passthrough Revisited, Non-root GPU passthrough.
Я выполнял каждый шаг точно так, как описано, и всё работало, как описано. Затем, когда я дошел до части, где нужно запустить QEMU, это не работает. Я успешно привязал мой GPU к vfio, но теперь я застрял. Вот вывод lspci -nnk
для моего GPU.
01:00.0 3D controller [0302]: NVIDIA Corporation GM107M [GeForce GTX 950M] [10de:139a] (rev a2)
Subsystem: ASUSTeK Computer Inc. Device [1043:178d]
Kernel driver in use: vfio-pci
Kernel modules: nouveau, nvidia_drm, nvidia
Но потом, когда я пытаюсь запустить qemu, я получаю такой вывод:
Invalid MIT-MAGIC-COOKIE-1 keyUnable to init server: Could not connect: Connection refused
QEMU 2.9.0 monitor - type 'help' for more information
(qemu) gtk initialization failed
MIT-MAGIC-COOKIE
можно исправить, установив переменную WINDOW
, но я всё ещё не могу запустить QEMU.
Есть идеи, что я делаю не так?
В моем случае это работает:
DISPLAY=:0 <command>
Ответ или решение
Проблема, с которой вы столкнулись при запуске QEMU для настройки GPU Passthrough на Arch Linux, связана с несколькими факторами, главным из которых является ошибка инициализации интерфейса GTK по причине проблем с переменной среды DISPLAY. Давайте разберем возможные причины и решения:
1. Проверка Переменной DISPLAY
Ошибка Invalid MIT-MAGIC-COOKIE-1 key
указывает на проблемы с доступом к файловому серверу X11, что обычно связано с неправильной конфигурацией переменной окружения DISPLAY. Убедитесь, что перменая DISPLAY указывает на активный дисплей:
export DISPLAY=:0
Попробуйте запустить QEMU с этой переменной:
DISPLAY=:0 qemu-system-x86_64 ...
2. Права Доступа
Убедитесь, что ваш пользователь имеет права на доступ к X-серверу. Вы можете временно разрешить доступ через xhost
:
xhost +
Это позволяет всем пользователям устанавливать соединение с X-сервером, но учтите, что это создает некоторые риски безопасности, поэтому лучше отключать это право сразу после теста:
xhost -
3. Проверка QEMU
Если проблема не решена указанными действиями, убедитесь, что версия QEMU соответствует требованиям для работы с текущими библиотеками и драйверами. Убедитесь, что QEMU правильно настроен для использования с неправвиленным драйвером и устройством.
4. Конфигурация vfio
Ваше устройство GPU привязано к драйверу vfio-pci
, что правильно для передачи GPU в виртуальную машину. Но вы также должны убедиться, что конфигурация загрузчика правильно настроена для загрузки с параметрами ядра, поддерживающими IOMMU, например:
intel_iommu=on
amd_iommu=on
5. Логирование и Дебаг QEMU
Запустите QEMU с дополнительными параметрами логирования для более детального анализа:
qemu-system-x86_64 ... -d guest_errors -D /var/log/qemu.log
Это позволит вам получить больше информации о том, почему может происходить сбой на этапе инициализации.
Выводы
Настройка GPU Passthrough требует точной настройки как программной части, так и параметров оборудования. Пошаговая проверка вышеперечисленных аспектов должна помочь идентифицировать и устранить проблему. Если после перечисленных шагов проблема сохраняется, рассмотрите возможность получения журнала отладки непосредственно из QEMU и обратитесь к сообществу Arch Linux или профессионализированному форуму для более детального анализа.