Step 6: Adding PCI Bus to xorg.conf file
This is an extra step that I’ve added compared to all my previous posts. It allows xorg/NVIDIA to utilize and bypass usual hardware detection process for Display/NVIDIA card and makes things slightly faster. This also helps to bypass the following error during boot time:
Waiting for /dev to be populated.
Because lets face it, everything worked fine until you’ve installed NVIDIA driver and all on a sudden your system can’t populate /dev (i.e. device list) during boot time. So, We will manually let the system know where to go and which PCI BUS to use. You can escape this step if you don’t have the above error/delay.
First we confirm which PCI BUS my GPU is plugged in:
root@kali:~# lspci | grep VGA 01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2)
So, its 01:00.0
Next, we make a copy of xorg.conf file. I’ve added date to the following command so that you get a filename like ‘2015-02-12+xorg.conf.prechange-busid”
root@kali:~# cp /etc/X11/xorg.conf /etc/X11/$(date +"%Y-%m-%d")-xorg.conf.prechange-busid
Now we edit xorg.conf file. Use your favorite editor for this. I’ve used vi here.
root@kali:~# vi /etc/X11/xorg.conf (or) root@kali:~# leafpad /etc/X11/xorg.conf
Under Device section, you will see the following:
Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" EndSection
Change Identifier to DiscreteNvidia
Add BusID (mine was 01:00.0, yours might be different based on which Bus port it’s connected). At the end of this change, Device section in your xorg.conf file would look like this:
Section "Device" Identifier "DiscreteNvidia" Driver "nvidia" VendorName "NVIDIA Corporation" BusID "PCI:01:00:0" EndSection
Save xorg.conf file and reboot.
Step 7: Confirming your installation
At this point you should be able to login to your system in Graphical User Mode (GUI). In case you can’t, follow the troubleshooting section at the bottom of this article. As always, we need to check if everything went as expected.
Step 7.a: Check GLX Module
First check if system is using glx module.
root@kali:~# glxinfo | grep -i "direct rendering"
It should output
“direct rendering: Yes”
If you do not have
glxinfo then first install
mesa-utils package then again issue above command and check output
root@kali:~# aptitude install mesa-utils
Step 7.b: Check NVIDIA Driver Module
Check if NVIDIA module loaded.
root@kali:~# lsmod | grep nvidia
If it produces output like
nvidia 10512020 28 or something similar (numbers could be different at your system) then NVIDIA module is loaded.
Step 7.c: Check for Open source NVIDIA Driver nouveau module
Just to be sure Open source NVIDIA Driver nouveau module NOT loaded, issue following command
root@kali:~# lsmod | grep nouveau
It should NOT produce any output. If it produces output then something is wrong.
Step 7.d: Confirm if open source NVIDIA Driver nouveau was blacklisted
I like this new NVIDIA Driver. It blacklists Open source NVIDIA Driver nouveau by default. That means less work for us to do. You can confirm it by checking files in the following directory:
root@kali:~# cat /etc/modprobe.d/nvidia.conf root@kali:~# cat /etc/modprobe.d/nvidia-blacklists-nouveau.conf root@kali:~# cat /etc/modprobe.d/nvidia-kernel-common.conf