让 Xorg 忽略 nouveau 和 nVIDIA?

让 Xorg 忽略 nouveau 和 nVIDIA?

我有一个带有板载(CPU 上)显卡的系统:

(--) intel(0): Integrated Graphics Chipset: Intel(R) HD Graphics 4000

和 nVIDIA GTX 650 Ti。板载显卡为我的显示器提供支持,GPU 用于其他用途(CUDA)。现在,我想让我的 Xorg 完全忽略我的卡,不探测它或任何东西 - 不尝试使用 nVIDIA 的驱动程序或 nouveau 驱动程序。 (所以它不会抱怨驱动程序问题,也不会加载内核模块等。)

那可能吗?

笔记:

  • 这些模块必须仍然存在,并且至少 nVIDIA 模块必须是可加载的(我只是想要X不要尝试这样做)。
  • 我已经尝试过将 nouveau 列入黑名单/etc/modprobe.d/,但这没有帮助。

答案1

你可以黑名单内核模块。内核不会加载列入黑名单的模块。 Xorg 将不会尝试自动检测硬件。

例如,您可以添加一个包含以下内容的调用文件nonvidiavideo.conf/etc/modprobe.d/文件名并不重要,只需以 结尾即可.conf):

blacklist nouveau

nouveau如果您的模块将驱动程序视为先决条件,则可能需要扩展该文件,例如:

blacklist nouveau
blacklist nvidia-dkms

(为了示例的目的,我编造了另一个模块的名称。)基本上,如果另一个模块依赖于某个模块,则将其列入黑名单是行不通的,您需要将整个依赖链列入黑名单。nvidia/可能没有依赖链,nouveau因为它们是非常特定的模块。但是,要查找具有nouveau依赖项的模块,您可以执行以下操作:

depmod -n | grep nouveau | egrep -v '^alias'

(这也会打印模块本身,当两个模块出现在同一行时会显示依赖关系。)


我尝试的另一个选择是强制 Xorg 使用英特尔卡作为屏幕。将以下内容添加到文件中(例如nonvidia.conf,名称并不重要)/etc/X11/xord.conf.d/

Section "Device"
    Identifier  "Intel Card"
    Driver      "intel"
EndSection

Section "Device"
    Identifier  "Nvidia Card"
    Driver      "nouveau"
EndSection

Section "Screen"
    Identifier  "My Screen"
    Device      "Intel Card"
EndSection

如果您知道您的卡所在的位置,您还可以BusID "PCI:..."向“设备”部分添加一个参数(但这不是必需的,Xorg 应该能够从驱动程序中找出答案)。

重要的是Device“Screen”的参数指向Identifier“Device”的参数。

如果您有两个屏幕,这可能不起作用。

(免责声明:这是未经测试的代码,我没有带有两个显卡的机器来测试它,抱歉。)

相关内容