2019-06-13

Linux Mint(Ubuntu)無法正常載入Nvidia驅動解決方法

Ubuntu官方套件庫內的 Nvidia Driver 39X 以後將不支援Ubuntu Kernel >= 4.19,因此我們可以提早升級Nvidia Driver到4XX版本,若Nvidia Driver無法正常載入也可試試以下方法:



1.用lshw -c display先檢查是否有正常抓到顯卡,若出現 *-display UNCLAIMED表示沒有對應的驅動可以正常驅動Nvidia顯卡

*-display UNCLAIMED <==出現UNCLAIMED
       description: 3D controller
       product: GM108M [GeForce 840M]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:0a:00.0
       version: a2
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list
       configuration: latency=0 <==沒有出現driver=nvidia
       resources: memory:b3000000-b3ffffff memory:a0000000-afffffff memory:b0000000-b1ffffff ioport:3000(size=128)

正常應如下:

2.用dkms status檢查kernel版本對應的nvidia模組是否存在,譬如安裝了nvidia-driver-430以及目前使用的為kernel 4.18.20,那應該要出現:
nvidia, 430.26, 4.18.0-20-generic, x86_64: installed

再用lsmod | grep nvidia檢查是否有出現nvidia相關訊息,若什麼都沒出現表示沒正常載入。

3.若出現上述二種其中一種狀況,表示Nvidia驅動沒有正常載入,或者上面這些狀況明明都正常,但驅動一樣沒有正常啟用,可以試試以下步驟,通常可以解決90%以上的Nvidia驅動載入不正常問題。若系統已經無法進入桌面了,可以改進Recovery Mode下指令。


4.先檢查系統預設c/c++ compiler是否為gcc/g++ (很重要,請不要用clang/llvm,否則在安裝編譯模組時會出事)

sudo update-alternatives --config cc
sudo update-alternatives --config c++

5.加入最新的Nvida Graphic Driver PPA並安裝driver:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

看看目前可使用的driver有哪些:
sudo ubuntu-driver list

先清除原本的Nvidia driver再重新安裝(很重要):
sudo apt-get purge nvidia* libnvidia*

若要自動安裝最新的Nvidia Driver:
sudo ubuntu-drivers autoinstall

若要手動指定driver版本安裝,:
sudo apt-get install nvidia-driver-430
sudo apt-get install libnvidia-gl-430:i386 (若需要32bit version)

6.再重新安裝一次kernel

先查看目前使用的kernel版本:
#uname -r
4.18.0-20-generic

重新再安裝一次目前使用的kernel,此時也會重新建立模組鏈結(常常是這問題)
sudo apt-get install --reinstall linux-image-4.18.0-20-generic

7.reboot重開機

重開機後,若無法正常進入開機畫面(black screen),試著再做以下步驟:

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
sudo rm /etc/X11/xorg.conf
sudo apt install --reinstall nvidia-prime
sudo prime-select nvidia
sudo rm /lib/modprobe.d/blacklist-nvidia.conf /etc/modprobe.d/blacklist-nvidia.conf
grep nvidia /etc/modprobe.d/* /lib/modprobe.d/*
找出上面含有 options nvidia-drm modeset=1 的檔案,將1改為0
sudo update-initramfs -u

8.若想每次重開機固定使用kernel版本,可以修改grub記住每次的開機選項:
sudo vi /etc/default/grub

加入
GRUB_SAVEDEFAULT=true
GRUB_DEFAULT=saved

sudo update-grub

ref:

沒有留言:

張貼留言