nVidia GPU is not detected

My nVidia GPU (GTX650-DC) can't be detected by my computer(OS is Ubuntu 14.04). I've searched for related discussion(Ubuntu 14.04 couldn't detect nvidia graphic card (not even detect the model of card)) where the nvidia GPU information can be obtained by the command "sudo lshw -C display." However, the information shown on my computer is as follows and it seems that my nvidia GPU is never detected. Have anyone run into this situation as well? Any suggestions would be highly appreciated!

Output of lshw -C display *-display :

:~$ sudo lshw -C display   *-display               
   description: VGA compatible controller
   product: Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller
   vendor: Intel Corporation
   physical id: 2
   bus info: pci@0000:00:02.0
   version: 06
   width: 64 bits
   clock: 33MHz
   capabilities: msi pm vga_controller bus_master cap_list rom
   configuration: driver=i915 latency=0
   resources: irq:45 memory:f7800000-f7bfffff memory:e0000000-efffffff ioport:f000(size=64)

Solution 1:

Have a look at the Nvidia site and download the correct drivers, the program will detect if you do not have the correct drivers and if not will tell you what you need to download - I had a similar experience, you don't want to force install the wrong drivers

Solution 2:

Please see the helpful answer by generix here: https://forums.developer.nvidia.com/t/no-matter-which-drivers-i-install-i-cannot-boot-my-ubuntu-20-04-lts-beyond-a-black-screen/127510/9

  1. switch to nvidia (again): sudo prime-select nvidia
  2. delete /lib/udev/rules.d/50-pm-nvidia.rules (and delete /lib/udev/rules.d/80-pm-nvidia.rules too)
  3. remove stray blacklist files: sudo rm /lib/modprobe.d/blacklist-nvidia.conf /etc/modprobe.d/blacklist-nvidia.conf
  4. update the initrd: sudo update-initramfs -u
  5. reboot

See also this Nvidia Forums post where generix noted:

Ok, it’s this:

/lib/udev/rules.d/80-pm-nvidia.rules:

ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", ATTR{remove}="1"

it’s removing the nvidia gpu from the bus. The rest of the file are rules to prepare for render offload. This looks like something changed in Ubuntu’s prime-select/nvidia-prime again, don’t really know what’s the point of doing this…

For me, sudo prime-select nvidia usually does the trick, but if not, manually deleting /lib/udev/rules.d/50-pm-nvidia.rules and /lib/udev/rules.d/80-pm-nvidia.rules and a reboot should do it.

Thankfully, these udev rules are going away in 20.10 (groovy) (see changelog of nvidia-prime 0.8.15), so such "Nvidia GPU disappearing" problems will soon become a thing of the past.