How-To:Linux 安裝 NVIDIA 顯示驅動程式
操作環境:
- Fedora 30
- NVIDIA graphics driver 440.82
有別於 Intel 或者 AMD 的產品,Linux 對於 NVIDIA 顯示卡的支援算是相對較複雜的情形。Linux 內核本身有提供開放原始碼的 nouveau 模組,為 NVIDIA 顯卡提供一定程度的支援。然而 nouveau 在支援能力上始終有其侷限性,包含效能及穩定性等層面均有不足。所以現實上的多數情形,其實是在 Linux 作業系統完成安裝後,隨即再安裝由 NVIDIA 官方自行維護的 Linux 顯示驅動程式,以確保桌面環境及應用程式能夠妥善運作。
本文流程係針對 Fedora 發行版,並且是利用由第三方套件庫所打包的安裝套件,而非使用 NVIDIA 官方發佈的安裝程式。這麼做的好處,除了使安裝流程更加簡易外,一旦驅動程式版本需要更新,也會是比較便利的。
主機板 UEFI 若有支援 Secure Boot,請先確認其為關閉狀態,否則 NVIDIA 的 Linux 驅動程式模組可能會需要經過簽署才能作用。而說實在話,DR 認為最直接的解決方案就是停用 Secure Boot,那不是我們一般在使用電腦時會需要的功能。
1. 確認所使用的顯示晶片及適用的驅動程式版本
不同的晶片世代所適用的驅動程式版本可能並不相同,因此若不清楚顯示晶片的型號,應該要先加以釐清,可用以下指令查詢:
- lspci|grep VGA
在確認晶片型號後,接著便對照此頁面的資訊:Current graphics driver releases。以及其中的附錄(Appendix A)連結內,也有詳細的支援清單,會聲明各晶片型號所適用的驅動程式版本。藉此確認是否可適用於最新的驅動程式版本,或者是需要安裝較舊的版本(legacy releases)。倘若是較舊的晶片,一定得確認適用的驅動程式版本為何,否則驅動程式安裝後會是無法作用的。
2. 設定 DNF
DR 所使用的驅動程式套件,是來自 negativo17.org 的 fedora-multimedia 套件庫,因此請參照 DNF 套件庫的設定來啟用該套件庫。然而,由於該套件庫僅會收納最新的驅動程式版本,所以如果你的顯示晶片需要使用較舊的版本(例如 340xx),那麼請改為使用 RPM Fusion 套件庫,並參照其說明文件,進行驅動程式的安裝。
3. 安裝驅動程式
在啟用了 fedora-multimedia 套件庫後,執行以下指令便會安裝 NVIDIA 驅動程式:
- sudo dnf install nvidia-driver nvidia-settings nvidia-driver-libs.i686
4. 驗證驅動程式是否順利啟用
完成前述安裝步驟後,重新開機。如果能夠順利進入桌面,那麼接著最直接的驗證方式,是執行 NVIDIA 所提供的設定工具。可以在應用程式集中找到,或者在命令列執行 nvidia-settings:
倘若 NVIDIA 設定工具的視窗正常彈出,未有任何錯誤,基本上就表示官方的驅動程式有順利安裝及啟用。至於其它的檢驗方式則是執行以下指令:
- glxinfo|grep "direct rendering\|vendor"
若分別顯示「Yes」及「NVIDIA Corporation」,那麼也是表示驅動程式是正常運作的。
5. 解決畫面變換時的撕裂問題
如果螢幕在畫面變換時,容易出現上下不太連貫以致好像「撕裂」般的狀況,那麼可以在 nvidia-settings 的【X Server Display Configuration】→【Advanced...】裡,勾選【Force Full Composition Pipeline】選項,然後點選【Apply】進行套用後便會生效。
若是想要進行永久性的變更,則需要編輯 X11 的設定檔,最直接的方式是改用 root 權限來執行 nvidia-settings:
- sudo nvidia-settings
接著在啟用該選項後,點選【Save to X Configuration File】,並將儲存路徑指向到「/etc/X11/xorg.conf」,儲存後該選項便會成為固定啟用的選項。
6. 重新安裝驅動程式
如果已安裝的 NVIDIA 驅動程式因不明因素而無法順利啟用(可透過先前的第四步驟加以檢驗),或許可以先單純嘗試看看將驅動程式完整移除,然後再重新安裝一次。可以使用以下指令來完成這些動作:
- sudo dnf remove nvidia-driver
- sudo dnf history undo last
7. 其它參考資料