在启动时打开或关闭 nvidia 驱动程序

在启动时打开或关闭 nvidia 驱动程序

我正在直接(“裸机”)启动同一个 Linux 分区,并作为 Windows 中 VirtualBox 下的客户机启动。

systemd.unit=multi-user.target当我直接启动此分区时,它可以正常启动并显示桌面。但是,当我在虚拟机内启动时,我可以使用grub 启动选项正常启动到 TTY 。

我的电脑有 nVidia gpu,因此在启动裸机时,它安装了 nvidia 驱动程序。但是,当我启动虚拟机时,虚拟机中没有 nVidia gpu - 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
...

如果我使用上述内核选项运行虚拟机,使其启动到 TTY,然后通过 ssh 登录虚拟机并运行sudo systemctl start graphical.target,虚拟机的图形输出再次显示它在登录提示之前崩溃。它看起来像这样:碰撞.systemd journal 包含以下日志:journalctl 输出

我希望能够在虚拟机中启动时不使用 nvidia 驱动程序,但在启动裸机时使用 nvidia 驱动程序。我该怎么做?我真的很想让它工作。不幸的是,所有关于关闭 nvidia 驱动程序而不卸载它们的在线讨论都是关于 optimus / prime / gpu 切换的主题,因为当你在笔记本电脑中同时有两个 gpu 时,而这里的情况并非如此。本质上,我所做的就像我从带有 nvidia gpu 的 PC 中拔出硬盘,并将其放入带有通用 gpu(品牌为“VMware”)的 PC 中,然后将其从那里取出并放回 nvidia PC 中。我可以看到配置更改由例如在 grub 中有两个单独的选择来指示,一个用于“带有 nvidia gpu 的 linux”,一个用于“带有 vmware gpu 的 linux”,我必须选择正确的一个。

我对此不是 100% 确定,但我知道 nvidia 驱动程序会修补内核,所以也许有办法选择 nvidia 修补的内核和非 nvidia 内核?这是一种好方法吗?

我在 Ubuntu 18.04 x64 下使用 nvidia-390,但我可以将其版本更改为其他版本。

我将非常感激所有提示。

答案1

事实证明,无需关闭 nVidia 驱动程序。这里发生的原因是,冻结是由于 VirtualBox 中的一个错误造成的。将图形控制器实现从 VMSVGA 切换到 VBoxVGA(而不是 VBoxSVGA)为我解决了这个问题,我现在能够启动系统并获取桌面。

感谢 Freenode 上的 vbox irc 频道的 klaus-vb 提出此解决方案。他知道 Ubuntu 18.04 中存在错误。显然 18.10 在这方面更好。

相关内容