文章目錄
- 一、待解決問題
- 1.1 問題描述
- 1.2 解決方法
- 二、方法詳述
- 2.1 必要說明
- 2.2 應用步驟
- 2.2.1 更改鏡像源
- 2.2.2 安裝NVIDIA顯卡驅動:nvidia-550
- (1)查詢顯卡ID
- (2)PCI ID Repository查詢顯卡型號
- (3)安裝顯卡驅動
- (4)檢測驅動安裝是否成功
- 2.2.3 安裝NVIDIA顯卡計算平臺:CUDA 12.4
- (1)查看可安裝CUDA最高版本
- (2)查看設備安裝的操作系統版本、linux內核版本、硬件架構
- (3)安裝CUDA 12.4
- (4)檢測CUDA安裝是否成功
- 三、疑問
- 3.1 顯卡驅動安裝好后,CUDA安裝報錯。
- 3.2 顯卡驅動安裝時,報錯“build kernel module error ”
- 四、總結
一、待解決問題
1.1 問題描述
新裝了ubuntu 22.04 LTS 系統后,除了系統自帶的基礎軟件外,都是空白。
為了運行MARL算法,安裝其必要的基礎運行環境。
1.2 解決方法
(1)更改鏡像源
(2)安裝NVIDIA顯卡驅動:nvidia-550
(3)安裝NVIDIA顯卡計算平臺:CUDA 12.4
二、方法詳述
2.1 必要說明
暫無
2.2 應用步驟
2.2.1 更改鏡像源
(1)登錄清華鏡像源網站,并基于ubuntu版本復制內容。
鏈接:清華大學開源軟件鏡像站
(2)進入sourcelist文件路徑,備份原文件,并更改鏡像源
cd /etc/apt/
sudo cp -i sources.list sources-backup.list
ls
sudo gedit sources.list
將鏡像鏈接內容復制,并保存
(3)應用鏡像源
sudo apt update
2.2.2 安裝NVIDIA顯卡驅動:nvidia-550
(1)查詢顯卡ID
lspci | grep -i nvidia
(2)PCI ID Repository查詢顯卡型號
鏈接:PCI ID Repository Nvidia 顯卡型號查詢
下拉到底部,有個搜索框,輸入顯卡ID
(3)安裝顯卡驅動
使用ubuntu自帶的Software&Updates工具安裝
#檢測可安裝的驅動程序
ubuntu-drivers devices
選擇推薦的 “nvidia-driver-550” 版本驅動。
在正式開始安裝之前,先更新一下make、gcc、g++。
(這里更新gcc-12、g+±12的原因是nvidia-550要求最新版本的gcc、g++)
#查看當前gcc版本,果然為11.4
gcc --version
#安裝依賴項
sudo apt-get install build-essential
sudo apt-get install make
#安裝gcc-12
sudo apt-get install gcc-12
sudo apt install g++-12
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 60
g++ --version
gcc --version
安裝之前查看是否已有安裝nvdia驅動,有的話直接刪除。
nvidia-smi
#卸載Nvidia驅動及相關組件
sudo apt-get remove --purge '^nvidia-.*'
sudo apt-get autoremove
#自動下載安裝nvidia-550驅動程序
sudo apt-get install -y cuda-drivers-550
安裝過程彈出UEFI secure boot阻攔,大致意思是:
在安裝 NVIDIA 顯卡驅動時遇到此錯誤是因為啟用了 UEFI 安全啟動,導致系統無法加載第三方驅動程序。
然后,按照提示說:
(1)會生成一個MOK密鑰,然后需要錄入到固件內。
(2)過程中會設置一個password。
(3)重啟后可選擇 “Enroll MOK”(錄入密鑰) 或者 “Change Secure Boot”(改變安全啟動項)的選項。
?什么是UEFI安全啟動呢?
說白了,其實就是設備的一種安全機制。它通過驗證啟動組件的數字簽名來防止未經授權的軟件(如惡意軟件或未經授權的驅動程序)在系統啟動時運行。
由于,我們是雙系統,直接關閉Secure Boot可能會存在風險,先嘗試 “Enroll MOK”的選項。
設置一個password。
程序跑完,直接重啟
sudo reboot
重啟后,進入“藍色”界面,選擇“Enroll MOK”
下一個頁面選擇 “Continue” ,再選擇 “Yes”
輸入 設置好的Password,沒有報錯的話直接選擇 Reboot。
重啟!
(4)檢測驅動安裝是否成功
nvidia-smi
看到驅動版本為550.120,并且有對應的可安裝的CUDA最高版本為 12.4。
查看軟件&更新內的驅動使用情況
software-properties-gtk
至此,nvidia-550顯卡驅動安裝成功。
2.2.3 安裝NVIDIA顯卡計算平臺:CUDA 12.4
(1)查看可安裝CUDA最高版本
nvidia-smi
看到驅動版本為550.120,并且有對應的可安裝的CUDA最高版本為 12.4。
也可以上官方網站上查看驅動型號下支持的CUDA版本。
鏈接:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#cuda-toolkit-major-component-versions
(2)查看設備安裝的操作系統版本、linux內核版本、硬件架構
lsb_release -a
uname -rp
(3)安裝CUDA 12.4
前往nvidia官網下載CUDA安裝包,鏈接:CUDA Toolkit發行版下載
選擇對應系統版本和硬件架構。
按照指令安裝
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda-repo-ubuntu2204-12-4-local_12.4.1-550.54.15-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-4-local_12.4.1-550.54.15-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-4
安裝無報錯后,重啟
sudo reboot
(4)檢測CUDA安裝是否成功
CUDA官方也給出安裝和檢測教程。
鏈接:https://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html#debian-installer
設置環境變量,這里由于安裝的是12.4,對應修改一下。
打開編輯 ~/.bashrc 文件。
sudo gedit ~/.bashrc
將下面環境變量代碼添加至最后一行,并點擊“保存”。
#cuda12.4 envirionment
#cuda12.4 environment
export PATH=/usr/local/cuda-12.4/binKaTeX parse error: Expected '}', got 'EOF' at end of input: {PATH:+:{PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
應用環境變量,生效
#讓環境變量生效
source ~/.bashrc
使用下面代碼,能夠查看CUDA版本,即安裝成功
nvcc -version
./__nvcc_device_query
其中,89與我設備GPU型號RTX 4060匹配。
89 代表你的 GPU 架構版本為 8.9。
在 NVIDIA 的 CUDA 開發中,GPU 架構通過計算能力(Compute Capability)來定義,通常以 sm_XX 或 compute_XX 的形式表示。
sm_89 表示 GPU 的架構版本為 8.9。這是 NVIDIA 對 Ada Lovelace 架構 的計算能力標識,如 RTX 4060 等顯卡。
💐💐💐 完結撒花! 💐💐💐
三、疑問
3.1 顯卡驅動安裝好后,CUDA安裝報錯。
報錯信息如下:
感覺是顯卡驅動存在問題,嘗試卸載顯卡驅動重新下載推薦的驅動版本。
#檢測可安裝的驅動程序
ubuntu-drivers devices
選擇推薦的 “nvidia-driver-550” 版本驅動。
#卸載Nvidia驅動及相關組件
sudo apt-get remove --purge '^nvidia-.*'
sudo apt-get autoremove
sudo apt install nvidia-driver-550
3.2 顯卡驅動安裝時,報錯“build kernel module error ”
解決流程:
(1)卸載原先驅動
#查看當前已安裝驅動
ubuntu-drivers devices
#卸載Nvidia驅動及相關組件
sudo apt-get remove --purge '^nvidia-.*'
sudo apt-get autoremove
(2)前往nvidia官網查找對應驅動
鏈接:https://www.nvidia.cn/drivers/lookup/
找到對應驅動下載,我依然下載535版本的驅動。
開始安裝驅動
sudo apt update && sudo apt upgrade
sudo chmod 777 NVIDIA-Linux-x86_64-535.183.01.run
sudo ./NVIDIA-Linux-x86_64-535.183.01.run
安裝過程中,提示需關閉 Nouveau ,程序自動創建了一個文件,然后重啟。重啟后繼續執行安裝文件,看到如下報錯:
去對應文件查找原因,發現第一條報錯信息如下:
cc: error: unrecognized command-line option ‘-ftrivial-auto-var-init=zero’
網上搜索了一下,咨詢大模型,原因如下:
該錯誤通常是由于 GCC(GNU Compiler Collection)版本不兼容導致的。Nvidia 顯卡驅動程序在安裝過程中需要編譯內核模塊,而某些較新的內核版本需要更高版本的 GCC 才能正確編譯。
開始升級GCC版本
#查看當前gcc版本,為11.4
gcc --version
#安裝gcc-12
sudo apt-get install gcc-12
sudo apt install g++-12
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 60
g++ --version
gcc --version
至此,再嘗試安裝nvidia顯卡驅動
四、總結
- 安裝新的軟件或系統時,注意記錄,以便分析!!!
- 安裝過程最好按照軟件的官方教程!!!
- 安裝過程遇到錯誤不要隨意搜索,仔細分析過程中的報錯信息,按圖索驥!!!