我想要一个设置,基本上可以同时安装两个版本的 NVIDIA 驱动程序内核模块。我想通过 GRUB 启动两个 initramfs 映像来解决这个问题;一种具有旧的 LTS 内核,其中包含较旧的修补版本的 NVIDIA 驱动程序(用于特殊工作负载),另一种包含最新的内核和驱动程序(用于一般用途)。这可能吗?如果可以,我该怎么做?
我正在运行 EndeavourOS(一个基于 arch 的发行版),因此我可以使用 mkinitcpio 等工具。提前致谢。
答案1
initramfs 映像通常特定于特定内核版本,因为它仅包含该内核的内核模块。
因此,假设您的发行版将自动在 GRUB 启动菜单中显示所有已安装的内核(大多数发行版默认情况下都会这样做),只需安装您的内核及其驱动程序即可。
如果您用来dkms
管理第三方模块(甚至 NVIDIA 的二进制安装程序也有该--dkms
选项),您可能需要添加一些自定义配置文件来/etc/dkms/
将特定版本的 NVIDIA 驱动程序模块限制为特定的内核版本:这并不是绝对必要的,但可能有助于避免dkms
在更新最新内核时尝试自动重建旧版本的驱动程序。
根据您的发行版为您构建默认 GRUB 菜单的具体方式,您可能能够按原样使用标准菜单,或者可能希望为特殊工作负载内核(及其 initramfs)创建自定义条目以使其更加明显。
您可能遇到的问题是 NVIDIA OpenGL 库。修补的驱动程序包往往会引入/依赖于这些库的旧版本,而最新的驱动程序将带来一组较新的库。