I have a system with on-board (on-CPU) graphics:
(--) intel(0): Integrated Graphics Chipset: Intel(R) HD Graphics 4000
and an nVIDIA GTX 650 Ti. The on-board graphics is what feeds my display, and the GPU is used for other things (CUDA). Now, I want to make my Xorg completely ignore my card, not probe it or anything – not trying to use nVIDIA's drivers nor the nouveau drivers. (So it would not complain about driver issues, nor load the kernel modules etc.)
Is that possible?
Notes:
- The modules must still exist, and at least the nVIDIA module must be loadable (I just want X not to try doing that).
- I've already tried blacklisting nouveau in
/etc/modprobe.d/
, that did not help.
Best Answer
You can blacklist kernel modules. Blacklisted modules will not be loaded by the kernel. Xorg then shall not try to autodetect the hardware.
For example you can add a file called
nonvidiavideo.conf
in/etc/modprobe.d/
with the following content (the name of the file does not matter, it just needs to end with.conf
):You may need to extend the file if you have modules that consider the
nouveau
driver as their pre-requisite, for example:(I made up the name of the other module for the purpose of the example.) Basically, blacklisting a module does not work if another module has a dependency on it, you need to blacklist the entire dependency chain. Probably there is no dependency chain with
nvidia
/nouveau
since they're quite specific modules. But, to find modules that havenouveau
as a dependency you can do:(That will print the module itself too, dependencies are show when 2 modules appear on the same line.)
Another option that I would try would be to force Xorg to use the intel card for the screen. Add the following to a file (say
nonvidia.conf
, again the name does not matter) to/etc/X11/xord.conf.d/
:You can also add a
BusID "PCI:..."
parameter to a "Device" section if you know where your card resides (but it should not be needed, Xorg should be able to figure things out from the drivers).The important part is that the
Device
parameter of the "Screen" points to theIdentifier
of the "Device".This will probably do not work if you have two screens.
(Disclaimer: this is untested code, I do not have a machine with two video cards to test it, sorry.)