協助您在 Ubuntu 系統上安裝和管理 NVIDIA GPU 驅動程式的小型指南
我個人目前是Ubuntu 24.04.1用戶,所以這主要是本指南適用的內容(儘管我相信它在較新的版本上應該可以正常工作,而且在不太舊的舊版本上也可以正常工作[something like Ubuntu 20.04+]
)
️ 警告請仔細遵循並閱讀本指南的每個部分,以避免任何問題。
如果系統在任何重新啟動步驟期間看起來卡住,也不必擔心。其實沒有卡住!重新啟動最多需要 2 分鐘才能完成。
graphics-drivers
PPA 儲存庫安裝 [建議]這種安裝方法是推薦的方法,它實際上是我用來在自己的系統上維護驅動程式安裝的方法。
確保您已解除安裝先前安裝的所有 NVIDIA 驅動程式:
sudo apt-get remove --purge '^nvidia-.*'
sudo apt autoremove
reboot
.run
檔案)安裝的任何 Nvidia 驅動程式:驅動程式卸載安裝這些依賴項以確保 DKMS 支援和無問題的安裝過程:
sudo apt install pkg-config libglvnd-dev dkms build-essential libegl-dev libegl1 libgl-dev libgl1 libgles-dev libgles1 libglvnd-core-dev libglx-dev libopengl-dev gcc make
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-555
reboot
注意:在本指南上次更新時,555 是儲存庫中可用的驅動程式的最新測試版本。
導覽至 https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa 檢查驅動程式的最新版本是什麼,然後將driver-555
部分替換為您要安裝的版本。
nvidia-smi
以確認驅動程式已安裝且沒有任何問題。此過程更高級,通常不建議。不過,只要你耐心仔細地完成每一步,就一定會順利的:)
確保您已解除安裝先前安裝的所有 NVIDIA 驅動程式:
sudo apt-get remove --purge '^nvidia-.*'
sudo apt autoremove
reboot
.run
檔案)安裝的任何 Nvidia 驅動程式:驅動程式卸載確保您沒有手動安裝的libnvidia-egl-wayland1
版本(特別是如果您要安裝 555+ 版本的 Nvidia 驅動程式)。驅動程式已包含它,如@ https://us.download.nvidia.com/XFree86/Linux-x86_64/555.42.02/README/installedcomponents.html所述
sudo apt remove libnvidia-egl-wayland1
sudo apt install pkg-config libglvnd-dev dkms build-essential libegl-dev libegl1 libgl-dev libgl1 libgles-dev libgles1 libglvnd-core-dev libglx-dev libopengl-dev gcc make
導覽至 https://www.nvidia.com/Download/index.aspx?lang=en-us 並下載適合您的 GPU 和 Linux 架構的驅動程式。網站應該為您提供一個以.run
檔案副檔名結尾的檔案。
按Ctrl + Alt + F3
切換到系統的終端視圖(如果這不能從 GUI 模式切換到終端模式,請嘗試使用Ctrl + Alt + F1
或Ctrl + Alt + F2
來取代不同的 tty)
停止GDM服務:
sudo systemctl stop gdm
sudo systemctl stop gdm3
如果這對您來說失敗,請嘗試sudo systemctl stop lightdm
。
請注意,在整個驅動程式安裝/卸載過程中停止 GNOME 顯示管理器 (GDM) 服務非常重要,否則可能會導致問題。
使用cd
更改為包含下載的.run
檔案的目錄路徑
運行安裝程式:
chmod +x NVIDIA-Linux-x86_64-555.42.02.run
sudo sh ./NVIDIA-Linux-x86_64-555.42.02.run
(確保將檔案名稱替換為您從 Nvidia 網站獲得的實際檔案名稱)
注意:如果安裝程式要求您停用 Nouveau,請允許安裝程式為您停用它。此後您可能需要中止安裝程序,然後執行sudo update-initramfs -u && reboot
,然後在系統完成重新啟動後從步驟 5 重新開始。
sudo update-initramfs -u
來更新 initramfs。sudo nano /etc/default/grub
編輯/etc/default/grub
GRUB_CMDLINE_LINUX
中加入nvidia-drm.modeset=1
和nvidia-drm.fbdev=1
(即GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1 nvidia-drm.fbdev=1"
)sudo update-grub
nvidia-smi
來確認)。 graphics-drivers
PPA 儲存庫安裝驅動程式時卸載驅動程式跑步:
sudo apt-get remove --purge '^nvidia-.*'
sudo apt autoremove
reboot
sudo rm -rf /lib/modprobe.d/nvidia-installer-*
sudo rm -rf /etc/modprobe.d/nvidia-installer-*
sudo rm -rf /usr/lib/modprobe.d/nvidia-installer-*
/etc/default/grub
檔案中刪除與 NVIDIA 驅動程式相關的所有條目( nvidia-drm.modeset
、 nvidia-drm.fbdev
等)。 (這很重要)。sudo update-grub
重建 GRUB 配置 sudo nvidia-installer --uninstall
sudo update-initramfs -u
graphics-drivers
PPA 儲存庫安裝程序)。這似乎是 https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-535/+bug/2063222 報告的錯誤
解決方法是:
[ Workaround ]
1. sudo rm /dev/dri/card0
2. Log in again.
sudo nano /etc/gdm3/custom.conf
編輯/etc/gdm3/custom.conf
文件WaylandEnable=true
並確保其未註解(不以#
開頭)sudo ln -s /dev/null /etc/udev/rules.d/61-gdm.rules
發生這種情況的原因有很多。一段時間以來,NVIDIA 的 Wayland 視窗系統存在問題。然而,NVIDIA 一直在努力改進這一點。實際上,從新增了明確同步支援的 NVIDIA 驅動程式 555.42.02 開始,這一點已經變得更好了。
所以首先,請確保:
然後繼續閱讀以下內容,讓體驗更加順暢:
您的系統可能在 Wayland 會話上使用 Mesa 驅動程式而不是 NVIDIA 驅動程式。您可以輸入glxinfo | egrep "OpenGL vendor|OpenGL renderer*"
來確認這一點。 glxinfo | egrep "OpenGL vendor|OpenGL renderer*"
為了解決這個問題:
sudo nano /etc/default/grub
編輯/etc/default/grub
GRUB_CMDLINE_LINUX
中加入nvidia-drm.modeset=1
和nvidia-drm.fbdev=1
(即GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1 nvidia-drm.fbdev=1"
)sudo update-grub
您可能啟用了 Nvidia 的 GSP 韌體,已知這會導致驅動程式 beta 555.42.02 版本出現一些效能問題。也許這個問題將來會得到解決,但現在,我們可以根據需要停用 GSP 韌體。
您可以輸入nvidia-smi -q | grep "GSP Firmware"
檢查 GSP 韌體是否啟用。 nvidia-smi -q | grep "GSP Firmware"
— 如果顯示N/A
,則韌體未啟用。如果不是這樣(它顯示 GSP 韌體的版本),則韌體已啟用。
若要停用 GSP 固件,請依照下列步驟操作:
sudo nano /etc/default/grub
編輯/etc/default/grub
GRUB_CMDLINE_LINUX
中加入nvidia.NVreg_EnableGpuFirmware=0
sudo update-grub
有關此問題的更多信息,請參閱 https://forums.developer.nvidia.com/t/major-kde-plasma-desktop-frameskip-lag-issues-on-driver-555/293606。
您可能缺少libnvidia-egl-wayland1
軟體包(通常推薦)。嘗試使用sudo apt install libnvidia-egl-wayland1
安裝軟體包(如果您安裝了 555+ 版本的 Nvidia 驅動程序,請不要執行此操作,因為驅動程式安裝程式已經為您安裝了它。PPA 儲存庫軟體包也會預設安裝它。
對於 Google Chrome(以及一般基於 Chromium 的瀏覽器),您可能需要將「首選 Ozone 平台」標誌切換為「Wayland」或「自動」。請按照以下步驟套用此操作:
對於某些 Electron 應用程序,您可能需要傳遞與我們上面相同的 Ozone 平台標誌。例如 Visual Studio Code 的code --enable-features=UseOzonePlatform,WaylandWindowDecorations --ozone-platform-hint=auto
您可能沒有啟用保留視訊記憶體分配模組參數,這可能會導致問題,特別是在掛起和復原系統時,通常會表現為圖形偽影或桌面環境損壞。
您可以透過鍵入sudo cat /proc/driver/nvidia/params | grep "PreserveVideoMemoryAllocations"
來檢查模組參數是否啟用。 sudo cat /proc/driver/nvidia/params | grep "PreserveVideoMemoryAllocations"
。如果該值為0
或缺失,則該參數未啟用。
若要啟用保留視訊記憶體分配模組參數,請依照下列步驟操作:
sudo nano /etc/default/grub
編輯/etc/default/grub
GRUB_CMDLINE_LINUX
中加入nvidia.NVreg_PreserveVideoMemoryAllocations=1
sudo update-grub
sudo cat /proc/driver/nvidia/params | grep "PreserveVideoMemoryAllocations"
以驗證現在是否設定了參數如果啟用此模組參數後仍然遇到掛起/恢復問題,您可能需要查看 Nvidia 的電源管理文檔,以仔細檢查相關的systemd
服務是否已安裝並啟用。