簡介
眾所周知,Ubuntu默認使用Nouveau開源驅動,其性能受限,因此我們需要安裝Nvidia專用驅動。
安裝專用驅動的一般方法非常簡單,只需要sudo ubuntu-drivers devices && sudo ubuntu-drivers autoinstall即可,但該方法安裝的驅動需要手動進行內核簽名,否則其將無法與安全啟動共存。因此,更推薦采取在Nvidia官網下載.run并執行安裝的方式。
本博客結合其他優質博客,取其精華去其糟粕,結合本人在安裝時遇到的實際問題,詳細整理執行.run的安裝方式,并發表此文。
博主系統環境如下:
- KDE Neon 6.3
- Geforce RTX 4060(Laptop)
安裝必要環境
- 首先更新軟件源:
sudo apt update - 安裝必要編譯環境:
sudo apt install build-essential -y
卸載先前安裝的驅動
- 首先,請確認先前是否安裝了Nvidia驅動。使用
dpkg -l | grep nvidia命令查看。 - 若先前以apt安裝了驅動,使用
sudo apt-get purge nvidia-*進行卸載;若先前以.run安裝的驅動,使用sudo /usr/bin/nvidia-uninstall卸載。
下載驅動安裝腳本
- 打開Nvidia驅動官網,查找并下載自己顯卡的驅動。若不知道自己的顯卡型號,執行
lspci | grep -i vga進行查看。 - 耐心等待下載,由于服務器位于國外,下載速度較慢,請確保您有良好的國際互聯網連接,相關資料請自行搜索,博主無法提供解決方案。
- 下載后,得到一個
.run結尾的文件。
禁用開源驅動
- 執行
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist-nouveau.conf以永久禁用開源驅動。 - 執行
sudo update-initramfs -u使命令生效。
安裝動態內核模塊支持(DKMS)
- 由于
.run安裝的驅動依賴于內核,當內核更新后,需重新執行.run的安裝。因此,我們使用DKMS管理驅動,它會在內核更新后自動重新編譯 NVIDIA 驅動模塊。 - 安裝DKMS:
sudo apt install dkms -y
進入tty模式并安裝
- 由于在GUI 環境下安裝可能會失敗,所以需要切換到純文本模式進行安裝。
- 使用
sudo systemctl set-default multi-user.target && sudo reboot now重啟計算機,重啟后,使用系統賬戶的賬號密碼登錄。 - 進入先前下載驅動的目錄,此處以
~/Download為例:cd ~/Download - 為安裝腳本添加可執行權限:
sudo chmod a+x ./NVIDIA-Linux-x86_xxx.run。其中xxx請替換為實際驅動版本號。 - 執行安裝腳本:
sudo ./NVIDIA-Linux-x86_xxx.run --dkms,使用選項--dkms以啟用DKMS模塊進行安裝。
生成簽名密鑰
- 一路繼續安裝,執行腳本會編譯內核模塊等。
- 當執行到詢問是否需要簽名頁面時,選擇“Sign the kernel module”。
- 簽名密鑰生成成功后,會展示
.der擴展名的文件路徑。
導入簽名密鑰
- 進入Nvidia目錄:
cd /usr/share/nvidia。 - 使用
.der文件進行簽名:sudo mokutil --import nvidia-modsign-crt-xxx.der,其中xxx請替換為實際文件名。 - 會提示創建密碼,輸入后確認即可。
- 啟用GUI模式并重啟系統:
sudo systemctl set-default graphical.target && sudo reboot now
對密鑰簽名
- 重啟后,進入藍屏的mok management頁面。選擇“Enroll mok”。
- 可見key 0以導入,之后對其簽名,選擇“Continue”,之后選擇“yes”
- 輸入導入簽名密鑰時設置的密碼,之后選擇“Reboot”。
驗證
- 重啟后,安裝與簽名過程已結束。使用
nvidia-smi命令驗證是否安裝成功。
參考資料
本文參考博客:UEFI安全啟動模式下安裝ubuntu的nvidia顯卡驅動。
本文添加了查看顯卡型號,卸載先前驅動,在tty模式下安裝,以及DKMS模塊內容。