Включение и выключение драйверов nvidia во время загрузки

Включение и выключение драйверов nvidia во время загрузки

Я загружаю один и тот же раздел Linux как напрямую («голое железо»), так и в качестве гостя в VirtualBox в Windows.

Когда я загружаю этот раздел напрямую, он загружается и отображает рабочий стол нормально. Однако, когда я загружаюсь в виртуальной машине, я могу загрузиться в TTY нормально, используя systemd.unit=multi-user.targetпараметры загрузки grub.

На моем ПК установлен графический процессор nVidia, поэтому для загрузки bare metal на нем установлены драйверы nvidia. Однако, когда я загружаю виртуальную машину, в ней нет графического процессора nVidia — VMWare предоставляет собственное виртуальное оборудование VGA. Насколько я понимаю, в Linux для этого есть встроенные драйверы, и они распознаются правильно:

$ lspci -k
...
00:02.0 VGA compatible controller: VMware SVGA II Adapter
        Subsystem: VMware SVGA II Adapter
        Kernel driver in use: vmwgfx
        Kernel modules: vmwgfx
...

Если я запускаю VM с вышеуказанной опцией ядра, чтобы она загружалась в TTY, а затем вхожу в VM через ssh и запускаю sudo systemctl start graphical.target, графический вывод VM снова показывает, что она падает прямо перед приглашением на вход. Это выглядит так:крушение. Журнал systemd содержит следующий лог:вывод журналаctl.

Я хотел бы иметь возможность загружаться без драйверов nvidia в виртуальной машине, но с драйверами nvidia при загрузке bare metal. Как это сделать? Я действительно хочу, чтобы это заработало. К сожалению, все обсуждения в сети об отключении драйверов nvidia без их удаления касаются переключения optimus / prime / gpu, когда у вас одновременно два gpu на ноутбуке, а в данном случае это не так. По сути, то, что я делаю, это как будто я вытаскиваю жесткий диск из ПК с gpu nvidia и вставляю его в тот, где есть обычный gpu (под маркой «VMware»), а затем вынимаю его оттуда и вставляю обратно в ПК с nvidia. Я мог бы видеть, что изменение конфигурации указывается, например, двумя отдельными вариантами выбора в grub, один для «linux с gpu nvidia» и один для «linux с gpu vmware», и мне нужно было бы выбрать правильный.

Я не уверен на 100%, но я понимаю, что драйвер nvidia патчит ядро, так что, может быть, есть способ сделать выбор между пропатченным ядром nvidia и не-nvidia ядром? Будет ли это хорошим подходом?

Я работаю на Ubuntu 18.04 x64 и использую nvidia-390, но я мог бы изменить версию на другую.

Буду признателен за любые подсказки.

решение1

Оказывается, нет необходимости отключать драйверы nVidia. Здесь происходит следующее: зависание вызвано ошибкой в ​​VirtualBox. Переключение реализации графического контроллера с VMSVGA на VBoxVGA (а не VBoxSVGA) решило для меня проблему, и теперь я могу загрузить систему и получить рабочий стол.

Спасибо klaus-vb с канала vbox irc на Freenode за предложение этого решения. Он знал об ошибке в Ubuntu 18.04. Видимо, 18.10 в этом отношении лучше.

Связанный контент