核心更新可能會導致 Ubuntu 系統出現登入介面解析度過低、黑屏或桌面無法使用 NVIDIA 顯示卡加速等問題。但這並不一定意味著顯示卡本身故障。內核更新會變更建置外部 NVIDIA 模組所依賴的內核,而安全啟動可能會拒絕載入簽署金鑰不受信任的模組。
首先確定故障所在。如果先前的核心啟動後 NVIDIA 顯示卡可以正常運作,那麼問題很可能出在新核心或其模組建置上。如果模組看似已安裝,但核心報告金鑰或簽章被拒絕,請檢查安全啟動和機器所有者金鑰 (MOK) 註冊情況。本指南使用 Ubuntu 的打包驅動程式工作流程;選單措辭和驅動程式分支可能因 Ubuntu 版本和硬體而異。
GRUB 視圖範例:選擇較早安裝的核心可以幫助在診斷更新後的核心時恢復正常運作的桌面。
能否先安全地啟動之前的核心?
是的,如果它仍然安裝著。重新啟動並開啟 GRUB 選單;在許多系統中,啟動時按住 Shift 鍵(傳統 BIOS)或在 UEFI 系統中按 Esc 鍵即可顯示 GRUB 選單。選擇“Ubuntu 進階選項 ”,然後選擇不含“恢復模式”的舊核心。具體的按鍵時機和選單標籤取決於韌體和 GRUB 配置。如果選單隱藏,請參考電腦的啟動行為,而不是隨意更改韌體設定。
系統啟動後,使用指令確認正在執行的核心uname -r。使用一個可以正常運作的舊核心可以作為恢復路徑,並留出時間檢查軟體包。但這並非永久解決方案:安全性更新仍然至關重要,因此在修復驅動程式後,請切換回新核心。如果兩個核心都無法正常啟動,請使用 Ubuntu 的復原模式或 Live USB 備份重要數據,然後再進行軟體套件變更。
重新安裝任何軟體之前應該檢查哪些內容?
開啟終端機(如果圖形介面不可用,則使用 Ctrl+Alt+F3 開啟文字控制台),並收集一個簡短的基線資料:
uname -r
mokutil --sb-state
dkms status
nvidia-smi
journalctl -k -b | grep -Ei 'nvidia|verification|key|module'
uname -r識別活動內核。mokutil --sb-state報告安全啟動是否已啟用。dkms status顯示是否已為此核心註冊動態核心模組支援 (DKMS) 版本。nvidia-smi測試與已載入的 NVIDIA 驅動程式的通訊;這是一個診斷命令,而非修復命令。內核日誌可能顯示缺少模組、建置失敗或簽名被拒絕。沒有匹配的日誌行並不能證明驅動程式運作正常。
結合使用活動核心、DKMS 狀態和 NVIDIA 實用程序,可以區分缺少建置和已載入驅動程式的問題;範例輸出可能因版本而異。
NVIDIA 模組是否無法針對新核心進行編譯?
如果 DKMS 僅針對舊核心列出了 NVIDIA 驅動程序,或者沒有可用的 NVIDIA 模組uname -r,請安裝匹配的核心頭文件,並讓 Ubuntu 修復其打包的驅動程式。頭檔提供了為正在運行的內核建立外部模組所需的文件。首先確保您可以存取網路並有足夠的磁碟空間,然後運行:
sudo apt update
sudo apt install linux-headers-$(uname -r)
sudo ubuntu-drivers install
Ubuntu 推薦的ubuntu-drivers工具會選擇適合機器的可用驅動程式。在接受 APT 之前,請檢查它推薦的軟體包。如果驅動程式已安裝,但 DKMS 建置似乎不完整,請確定已安裝的軟體包,而不是猜測分支:
dpkg -l 'nvidia-dkms-*' 'nvidia-driver-*'
ubuntu-drivers list
然後重新安裝系統中顯示的匹配的 DKMS 軟體包(請替換為確切的軟體包名稱):。sudo apt install --reinstall nvidia-dkms-<branch>避免從其他 Ubuntu 版本複製驅動程式編號,或將 Ubuntu 軟體包與 NVIDIA 的獨立安裝程式混合;不同的安裝方法可能會覆蓋檔案或使安全啟動複雜化。如果 APT 報告未滿足的依賴項、已保留的軟體包或 DKMS 建置失敗,請在執行更多命令之前閱讀完整的錯誤資訊。相關的建置日誌通常位於/var/lib/dkms/;請使用錯誤訊息中指定的路徑,而不是刪除 DKMS 目錄。
安裝執行核心所需的頭文件,然後修復系統中已選定的 Ubuntu DKMS 軟體包。軟體包名稱和 APT 輸出可能有所不同。
安全啟動是否阻止了已建置的模組?
有可能。啟用安全啟動後,Ubuntu 核心會檢查第三方核心模組的簽名。 Ubuntu 的軟體套件可能會建立一個 MOK 簽名金鑰,並要求您註冊。如果安裝過程中提示您設定一次性密碼,但下次重新啟動後直接進入 Ubuntu 系統,則可能是金鑰未註冊。請檢查mokutil --sb-state內核日誌,查看是否有驗證或金鑰被拒絕的訊息。
當 Ubuntu 軟體包安裝程式將 MOK 註冊加入隊列後,請重新啟動並按照藍色 MOK 管理器螢幕的提示操作:選擇「註冊 MOK」 ,繼續,確認金鑰,輸入您在軟體包安裝過程中建立的一次性密碼,然後重新啟動。此密碼不一定是您的 Ubuntu 登入密碼。請仔細閱讀螢幕提示;選單措詞可能有所不同。如果未將註冊加入佇列,重新安裝受支援的 Ubuntu 驅動程式套件可能會提示您進行金鑰設定。請勿註冊不熟悉的金鑰檔案或共用一次性密碼。
當金鑰註冊處於待處理狀態時,重新啟動過程中會進入 MOK 管理器註冊畫面;僅對您打算信任的金鑰選擇「註冊 MOK」。
如果即使安裝了頭文件,建置仍然失敗怎麼辦?
檢查新核心是否已完全安裝,以及其頭檔是否完全匹配:uname -r應與已安裝的頭文件包一致。然後檢查 APT 的 DKMS 錯誤和建置日誌。新核心可能會與較舊的 NVIDIA 驅動程式分支不相容;重新建置無法修復不支援該核心介面的原始程式碼。使用 Ubuntu 的驅動程式選擇器為您的版本安裝受支援的分支,然後重新啟動。如果您使用 NVIDIA 的 .run 安裝程式安裝了驅動程序,請在切換回 Ubuntu 軟體包之前,請按照 NVIDIA 的卸載說明進行操作;不要在不同的軟體套件管理器之間疊加使用。
如需臨時訪問,請從 GRUB 啟動舊內核,並保持安裝狀態,直到新內核的驅動程式正確載入。如果您使用自訂核心、非標準核心版本或圖形計算/伺服器配置,Ubuntu 的自動桌面建議可能與您的預期配置不符。請查閱相應核心或工作負載的文檔,而不是強制使用通用軟體包。
如何驗證修復是否有效?
修復軟體包或註冊密鑰後,重新啟動並啟動新核心。執行 `npm run dev`、`npm run build` 和 `npm run uname -rdev`指令。成功的結果應為:運行核心的 DKMS 條目已存在,目前啟動的核心日誌中沒有模組簽署被拒絕的記錄,並且顯示 GPU 和驅動程式資訊。同時確認桌面會話正常啟動,並且需要 GPU 加速的應用程式可以使用 NVIDIA GPU。混合型筆記型電腦可能會有意使用整合式顯示卡作為桌面,因此僅憑 GPU 不工作並不能證明失敗。dkms statusnvidia-sminvidia-smi
如果錯誤依舊存在,請儲存完整的 DKMS 建置輸出、目前核心版本、Ubuntu 版本(cat /etc/os-release)、安全啟動狀態以及相關的核心日誌行。這些資訊有助於確定下一步是使用受支援的驅動程式分支、簽章問題還是核心相容性問題。 Ubuntu 官方指南建議ubuntu-drivers大多數系統都採用此方法,尤其是在啟用安全啟動的情況下;請參閱Ubuntu Desktop:安裝 NVIDIA 驅動程式 、Ubuntu Server:NVIDIA 驅動程式安裝 以及Ubuntu Security:UEFI 安全啟動 。有關底層驅動程式相容性的詳細信息,請參閱NVIDIA 的 Linux 驅動程式安裝文件 。可用的驅動程式版本和具體說明會因 Ubuntu 版本和 GPU 支援狀態而異。