How to install nvidia drivers in Kali Linux

 

NVIDIA  Driver Install

First of all I’m assuming being logged in under root and a clean install of kali 2017.2.

Pre-requisites

nano /etc/apt/sources.list

Ensure that sources.list ONLY has the following source:

deb http://http.kali.org/kali kali-rolling main contrib non-free

1. Grab the packages you need

apt-get update
apt-get upgrade
apt-get dist-upgrade
apt-get update
apt-get upgrade

2. Unload nouveau from the kernel.

modprobe -r nouveau

3. Install kernel headers

apt-get install gcc make linux-headers-$(uname -r)

4. Install dkms

apt-get install dkms

5. Blacklist the nouveau drivers

nano /etc/modprobe.d/nouveau-blacklist.conf

and add the line “blacklist nouveau” sans the quotes to the conf file, save and close.

6. Install the Nvidia drivers and reboot

apt-get install nvidia-kernel-dkms nvidia-xconfig nvidia-settings
reboot

Login and you’re done. If you need to configure your drivers, run nvidia-settings from terminal.

NVIDIA Setup on Optimus Enabled Laptops M series GPU

First of all, the instructions on the KALI distro website are wrong, they won’t work and they’re not ever going to work with a Kali install.

Anyway here goes

Step 1.

Once Kali is installed, when GRUB loads, select the kali boot entry and press ‘e’.

Go down to the line that loads the linux kernel and append ” nomodeset” without the quotes but including the prefixed space after the ‘quiet’ text, this will allow you to load your display manager.

It should look similar to the following example

linux /boot/vmlinuz-linux root=/dev/sda3 initrd=/boot/initramfs-linux.img quiet nomodeset

Step 2.

Once you’re logged in, open a terminal and issue the following commands:

apt-get update
apt-get dist-upgrade
apt-get upgrade

This will make sure your distro is up to date. Once done, reboot Kali, remember to press e and specify nomodeset again.

Step 3.

apt-get install -y linux-headers-$(uname -r)
apt-get install nvidia-kernel-dkms nvidia-xconfig nvidia-settings
apt-get install nvidia-vdpau-driver vdpau-va-driver mesa-utils

This installs the appropriate nvidia drivers, configuration software and mesa-utils to verify driver installation worked via glxgears.

Step 4.

Issue lspci to identify the BusID of your nvidia chip, you’ll be needing this for configuring xorg.conf.

In the terminal issue the following command:

lspci | grep "3D"

I get the following output

04:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)

Note your BusID for the nvidia card.

Step 5.

nano /etc/X11/xorg.conf

Put the following configuration into your xorg.conf, be sure to edit it, replacing <#:#:#> with your BusID from lspci, for example if LSPCI reports 04:00.00 the BusID value should be “4:0:0”

Section "Module"
     Load          "modesetting" 
EndSection

 Section "Device"
     Identifier     "nvidia"
     Driver         "nvidia"
     VendorName     "NVIDIA Corporation"
     BusID          "<#:#:#>"
     Option         "AllowEmptyInitialConfiguration" 
EndSection

In my instance, BusID is set to “4:0:0”

In the final your xorg.conf should be like this

Section "Module"
     Load          "modesetting" 
EndSection

 Section "Device"
     Identifier     "nvidia"
     Driver         "nvidia"
     VendorName     "NVIDIA Corporation"
     BusID          "4:0:0"
     Option         "AllowEmptyInitialConfiguration" 
EndSection

Save and Exit

Step 6.

Create a lightdm configuration script, this will execute before the display manager starts and will tell X which output source to use.

leafpad /etc/lightdm/display_setup.sh

paste the following lines into the new file, save and close

#!/bin/sh 
xrandr --setprovideroutputsource modesetting NVIDIA-0 
xrandr --auto

Next, we need to make this script executable from a terminal.

chmod +x /etc/lightdm/display_setup.sh

Step 7.

Finally, lightdm needs to be told to execute the script upon load. You will need to open the lightdm.conf file, scroll down to [Set:*] section and immediately below it, add the following text.

display-setup-script=/etc/lightdm/display_setup.sh

Reboot and you’re done. No need to set nomodeset when booting in grub, once you’re logged in, pop open a terminal and issue

glxgears

That’s it. You’re done, you now have 3D acceleration using your nvidia card.

I did this for the XFCE variant of Kali, you’ll need to adapt Step 6 and Step 7 for your chosen display manager.