我有一个带有板载(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”的参数。
如果您有两个屏幕,这可能不起作用。
(免责声明:这是未经测试的代码,我没有带有两个显卡的机器来测试它,抱歉。)