Just a couple of months back I had bought a new laptop with Intel Core i5-6200U processor and NVIDIA GeForce 930M GPU. And being a first-timer on Linux, the first thing I tried to do was to install the latest graphic drivers by Intel and Nvidia, because that’s what most noobs do on Windows too.

So, being a Linux noobie at that time, I googled this thing and I ended up here (AskUbuntu being a reputed site, became my first choice among the search results). I did what the solution said, and ended up screwing my distro, it wouldn’t proceed past the login screen. I tried doing what a few other sites were telling, all ending up the same road. I tried using Ubuntu’s own Software Updater app too, ending on the same note again.

Until one day I discovered that I could directly install the Graphics Driver from the Terminal without any hassles (sigh -_-)

WHAT NOT TO DO

These are what I tried ending up on the same road (not going past the Login screen despite the correct credentials)

-Trying to update via .run files provided by NVIDIA’s official site -Trying to update via Ubuntu’s very own Software and Updates app. -Having the following two repos and installing the driver via terminal

ppa:xorg-edgers/ppa
ppa:mamarley/nvidia

-Updating the kernel (unless you install the drivers)

WHAT TO DO

Now it’s a really simple process on Ubuntu 16.04 (Doing this on 15.10 was hell, checked the X Server Log Files and didn’t get anything special to boast about)

Run these steps:

-

sudo apt update

-As a root user, run this command:

lshw -numeric -C display
```<br />
OR<br />

lspci -vnn | grep VGA


-The output will show your NVidia model number. Example:<br />

*-display
description: VGA compatible controller product: Sky Lake Integrated Graphics [8086:1916] vendor: Intel Corporation [8086] physical id: 2 bus info: pci@0000:00:02.0 version: 07 width: 64 bits clock: 33MHz capabilities: pciexpress msi pm vga_controller bus_master cap_list rom configuration: driver=i915_bpo latency=0 resources: irq:128 memory:dd000000-ddffffff memory:b0000000-bfffffff ioport:f000(size=64) *-display description: 3D controller product: GM108M [GeForce 930M] [10DE:1346] vendor: NVIDIA Corporation [10DE] physical id: 0 bus info: pci@0000:01:00.0 version: a2 width: 64 bits clock: 33MHz capabilities: pm msi pciexpress bus_master cap_list rom configuration: driver=nvidia latency=0 resources: irq:131 memory:de000000-deffffff memory:c0000000-cfffffff memory:d0000000-d1ffffff ioport:e000(size=128) memory:df000000-df07ffff


-The Model used by my system is GeForce 930M. Next, we will find a correct NVIDIA driver within the Ubuntu repos using this info. But before that, navigate <a href = "http://www.nvidia.com/Download/index.aspx">here</a> and enter details. Example:

![](/img/nvidia driver installation/nvidia_search_ubuntu_16_04.png)

-After a successful search, take a note of the driver number

Version: 361.42 Release Date: 2016.3.30 Operating System: Linux 64-bit Language: English (US) File Size: 82.74 MB


-Then install the corresponding driver

sudo apt-get install nvidia-361 … Done.

nvidia_361: Running module version sanity check.

  • Original module
    • No original module exists within this kernel
  • Installation
    • Installing to /lib/modules/4.4.0-18-generic/updates/dkms/

nvidia_361_modeset.ko: Running module version sanity check.

  • Original module
    • No original module exists within this kernel
  • Installation
    • Installing to /lib/modules/4.4.0-18-generic/updates/dkms/

nvidia_361_uvm.ko: Running module version sanity check.

  • Original module
    • No original module exists within this kernel
  • Installation
    • Installing to /lib/modules/4.4.0-18-generic/updates/dkms/

depmod……..

DKMS: install completed. Setting up ocl-icd-libopencl1:amd64 (2.2.8-1) … Setting up nvidia-opencl-icd-361 (361.42-0ubuntu1) … Setting up bbswitch-dkms (0.8-3ubuntu1) … Loading new bbswitch-0.8 DKMS files… First Installation: checking all kernels… Building only for 4.4.0-18-generic Building initial module for 4.4.0-18-generic Done.

bbswitch: Running module version sanity check.

  • Original module
    • No original module exists within this kernel
  • Installation
    • Installing to /lib/modules/4.4.0-18-generic/updates/dkms/

depmod….

DKMS: install completed. Setting up nvidia-prime (0.8.2) … Setting up screen-resolution-extra (0.17.1) … Setting up nvidia-settings (361.42-0ubuntu1) … Setting up vdpau-driver-all:amd64 (1.1.1-3ubuntu1) … Processing triggers for libc-bin (2.23-0ubuntu2) … Processing triggers for initramfs-tools (0.122ubuntu6) … update-initramfs: Generating /boot/initrd.img-4.4.0-18-generic Processing triggers for ureadahead (0.100.0-19) … Processing triggers for dbus (1.10.6-1ubuntu3) … ```

-Now you can reboot your system. Then after loading Ubuntu, you can load the X Server Settings app:

CONCLUSION

So that’s it, folks. This is the safest and a recommended way to install NVIDIA drivers for Linux. And I repeat, do not install the drivers using the .run file.