Краткий вопрос:
Как включить intel_iommu
настройку в ядре Linux? Я запускаю хост Debian, используя загрузчик grub2. Документация, которую я видел, говорит «редактировать» /boot/grub/menu.lst
, что, похоже, относится только к grub 1.x, поскольку у меня нет этого файла.
Насколько я понимаю (и последний вариант, который я могу придумать), изменение этого параметра загрузки может избавить от следующего сообщения об ошибке в /var/log/kern.log
Длинный вопрос:
Предоставление гостевой ОС прямого доступа к видеокарте
Недавно я понял, что через устройство PCI-Express можно передавать гостевые ОС, работающие в Virtualbox. Круто, подумал я! У меня есть две видеокарты NVIDIA Quadro FX (с подключенным мостом SLI, который, я надеюсь, не вызывает горя), и я хотел бы выделить вторую гостевую видеокарту для гостевой ОС, чтобы я мог использовать функции OpenGL в Photoshop et al.
NVIDIA продает эту конфигурацию " SLI Multi-OS «, которую я в основном хотел настроить целую вечность, но я не хочу тратить слишком много на программное обеспечение для виртуализации (экстремальная рабочая станция Parallels), когда я был с удовольствием пользуюсь VirtualBox уже много лет.
Хост-система
Я использую linux-3.5.0-19 из репозиториев Debian, на достаточно высокопроизводительном оборудовании для рабочих станций (суперкомпьютер Asus P6T7 WS mobo с чипсетом Intel ICH10R и процессором Xeon W3680) и хотел бы включить поддержку IOMMU в ядре желательно без компиляции.
BIOS
В настройках BIOS у меня включена поддержка VT-x и VT-d. Я не видел ничего, что конкретно упоминало бы IOMMU.
Подключение устройства PCI
Это было приятно удивительно просто! Официальная документация VirtualBox находится здесь . То, что я сделал, что я нашел менее двусмысленным, было открыть nvidia-settings
, выбрать дополнительную видеокарту и записать идентификатор шины («PCI: 5: 0: 0» в моем случае). Затем из командной строки хоста:
(Когда я впервые запустил это, произошла ошибка, поскольку VirtualBox эмулировал набор микросхем PIIX; в нем говорилось, что сквозной канал PCI работает только с наборами микросхем ICH9. Поэтому я изменил набор микросхем на ICH9 в настройках системы VirtualBox VM и включил гостевую систему. чтобы установить необходимые новые драйверы. Перезагружаемся позже, и все работает нормально, поэтому я закрыл гостя и повторно выполнил команду.)
Выводов не было, и меня почти сразу же вернули в командную строку.
Использование хоста GPU от гостя
Прежде чем включить гостя, я сначала перезагрузил хост-машину, на случай, если что-то недокументированное должно было произойти в ядре, с помощью virtualbox-dkms. Поскольку я sudo
выполнил предыдущую команду без привилегий, я сомневаюсь, что какие-либо изменения были сделаны.
Когда я в следующий раз запустил гостя, Центр обновления Windows начал делать свое дело и автоматически обнаружил и установил правильные драйверы NVIDIA. Пока все выглядит хорошо. Прежде чем я смог использовать устройство, мне пришлось перезагрузить гостя …
проблема
Теперь, когда драйверы видеокарты установлены на гостевой системе и подключено устройство PCI, я не могу попасть на рабочий стол Windows. Я попадаю на экран входа в Windows, затем после входа в систему экран зависает, просто говоря: «Добро пожаловать», рядом с ним стоит кружащийся, но не синий кружок.
В /var/log/kern.log
, последние сообщения отпечатанные являются: —
Есть идеи, как это исправить?
ОБНОВИТЬ:
Теперь у меня есть загрузка ядра intel_iommu=on
, но все еще не работает полностью. После перезагрузки хоста, гость запускается, входит в систему, и все выглядит так, как было до запуска чего-либо из этого. Моя вторая видеокарта ничего не выводит.
В диспетчере устройств рядом с устройством Quadro FX стоит восклицательный знак, а в свойствах устройства указан код ошибки 12 с сообщением «Это устройство не может найти достаточно свободных ресурсов». Дальнейшее описание на technet.microsoft.com .
В журнале ядра хоста это выглядит многообещающе:
Если я запускаю гостевую ОС второй раз, не перезагружая хост, дисплей снова зависает на этапе «Добро пожаловать». Это определенно завершает этап входа в систему, так как я мог бы использовать ярлыки Windows для выключения машины без принудительного выключения ..
Теперь у меня нет идей … Есть предложения, чтобы это заработало? Любую дополнительную информацию, которую я могу предоставить?
UPDATE2:
dmesg
содержит еще несколько интересных ошибок, но я не знаю, что я могу с ними сделать: