Комментарии 4
Ух ты, интересно. Такой вопрос, можно ли по той же аналогии модифицировать драйвер для 10 серии Novideo?
Для контекста: я сегодня часов 6 убил для GPU Passtrough на Dell 7567 с пробросом мобильной 1050, получая сначала нули в subsys и отказом установки драйвера, что решалось дополнительными переназначениями в xml витуалки, а затем просто ошибку 43, похоже что из-за ACPI таблиц и факта "мобильности" видюхи. Кстати на десктопной 1050ти проброс отлично работает и официальные дрова успешно встают
Вы на все 100% точно угадали корень проблемы! Вся разница в поведении между десктопной 1050 Ti (которая у вас взлетела сразу) и мобильной 1050 кроется именно в этом.
У десктопного чипа проверки платформы нет вовсе. А вот ядро драйвера (nvlddmkm.sys), видя мобильный SKU чипа, при старте жестко опрашивает ACPI-таблицы хоста в поисках ноутбучного окружения (специфические методы Optimus _DSM, датчики питания и батареи). В стандартной виртуальной машине QEMU/KVM этих мобильных ACPI-таблиц просто нет — в итоге диспетчер ресурсов NVIDIA рапортует об ошибке инициализации, и Windows вывешивает Код 43.
Директива RM1457588 = 1 как раз для этого и создана инженерами NVIDIA: она принудительно отключает опрос мобильной платформы и заставляет драйвер инициализировать мобильный GPU как обычный десктопный ускоритель. И на 10-й серии (Pascal) этот механизм работает точно так же.
Как вам оживить вашу 1050 прямо сейчас (за 1 минуту):
Так как вы уже победили Subsystem ID в XML виртуалки и драйвер у вас физически установился, вам не нужно ничего переставлять. Снять эту проверку можно прямо в реестре гостевой Windows:
Внутри виртуалки запустите
regeditи перейдите в ветку:HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000(если адаптеров несколько, найдите подраздел0000/0001, где в параметреDriverDescуказана ваша GTX 1050);Создайте параметр DWORD (32 бита) с именем
RM1457588и шестнадцатеричным значением1;В Диспетчере устройств нажмите по видеокарте правой кнопкой: «Отключить устройство» ➔ «Включить устройство» (или перезагрузите ВМ).
После этого проверка ACPI отключится, и Код 43 снимется.
(Кстати, про нули в subsys: в нашей статье описан альтернативный путь без правки XML виртуалки — можно просто вписать в nv_dispi.inf идентификатор с маской SUBSYS_00000000 или вовсе generic PCI\VEN_10DE&DEV_1C8D, и официальный установщик съедает карту даже с нулями).
И ещё один нюанс по Dell 7567: если вдруг после флага 43 останется — мобильные Pascal в QEMU часто спотыкаются о чтение VBIOS (в ноутбуках он не в отдельном чипе, а склеен с общим UEFI ноута). В таком случае достаточно в XML проброса указать скачанный чистый дамп VBIOS: <rom file='/var/lib/libvirt/images/gtx1050m.rom'/>
Попробуйте прописать ключ в реестр — очень интересно, оживёт ли ваша 1050 сразу!
ощущения, как будто слопный ответ какой-то... ну ладно. вроде помогло, а вроде и нет. до установки дров добавил в реестр этот ключ - дрова установились но ошибка 43. перезапустил виртуалку - также, отключил-подключил видюху в диспетчере устройств - Device is working properly, но картинку на монитор через хдми не выводит). и также после каждой перезагрузки виртуалки надо это новидео переподключать чтобы завелось, но ошибка с монитором остается
резерв
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как устроен драйвер NVIDIA для карт-франкенштейнов: обход NVI2, WDDM 3.2 и запуск без тестового режима