【OS安裝與使用】part3-ubuntu安裝Nvidia顯卡驅動+CUDA 12.4

文章目錄

  • 一、待解決問題
    • 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顯卡驅動

四、總結

  • 安裝新的軟件或系統時,注意記錄,以便分析!!!
  • 安裝過程最好按照軟件的官方教程!!!
  • 安裝過程遇到錯誤不要隨意搜索,仔細分析過程中的報錯信息,按圖索驥!!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/71493.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/71493.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/71493.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據導入AI訓練步驟——人工智能訓練

一、人工操作轉化 數據導入過程 整理excel表格,通過數據庫管理工具導入數據,補充數據格式,調整sql語句 復制數據到目標數據 二、整理表格 三、導入數據 通過數據庫導入數據 四、合并 五、驗證更新數據 六、 更新數據 update temp_cus_hmz…

我國首條大型無人機城際低空物流航線成功首航

首航震撼開場:羊肉 “飛” 越 540 公里 在夜色的籠罩下,榆陽馬合通用機場的跑道上,一架大型固定翼無人機蓄勢待發,機身被燈光照亮,宛如一只即將展翅翱翔的鋼鐵巨鳥。它的貨艙里,滿滿裝載著新鮮的榆林羊肉&a…

《跟李沐學 AI》AlexNet論文逐段精讀學習心得 | PyTorch 深度學習實戰

前一篇文章,使用 AlexNet 實現圖片分類 | PyTorch 深度學習實戰 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 本篇文章內容來自于學習 9年后重讀深度學習奠基作之一:AlexNet【下】【論文精讀】】的心得。 《跟李沐…

微軟Win11新動態:官方“換機助手”曝光,PC數據遷移或迎全新體驗

目錄 微軟入局數據遷移領域,第三方工具或面臨挑戰 無縫遷移體驗:近距離傳輸與OTP驗證 模擬圖僅為概念設計,最終功能或存變數 發布時間未定,Insider用戶或率先體驗 總結 微軟在近期發布了Windows 11 Insider Beta頻道的最新版本Build 22635.4945。盡管此次更新并未引入重…

Could not initialize class io.netty.util.internal.Platfor...

異常信息: Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class io.netty.util.internal.PlatformDependent0 Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.reflect.InaccessibleObjec…

java練習(34)

ps:題目來自力扣 尋找兩個正序數組的中位數 給定兩個大小分別為 m 和 n 的正序(從小到大)數組 nums1 和 nums2。請你找出并返回這兩個正序數組的 中位數 。 算法的時間復雜度應該為 O(log (mn)) 。 class Solution {public double findMedianSortedA…

用Java創建一個驗證碼的工具類

在Java中創建一個驗證碼工具類,可以通過以下代碼實現。該工具類支持生成包含字母和數字的隨機驗證碼圖片,并添加干擾線和噪點以提高安全性。以下是詳細實現: 完整代碼實現 import javax.imageio.ImageIO; import java.awt.*; import java.aw…

提升信息檢索準確性和效率的搜索技巧

一、基礎技巧 精準關鍵詞 避免長句子,提取核心關鍵詞(如用“光合作用 步驟”代替“請告訴我光合作用的具體過程”)。 同義詞替換:嘗試不同表達(如“AI 發展史” vs “人工智能 歷史”)。 排除干擾詞 使用…

設計模式 之 工廠模式(簡單工廠模式、工廠方法模式、抽象工廠模式)(C++)

文章目錄 C 工廠模式引言一、簡單工廠模式概念實現步驟示例代碼優缺點 二、工廠方法模式概念實現步驟示例代碼優缺點 三、抽象工廠模式概念實現步驟示例代碼優缺點 C 工廠模式 引言 在 C 編程中,對象的創建是一個常見且基礎的操作。然而,當項目規模逐漸…

DAY12 Tensorflow 六步法搭建神經網絡

六步法: 一.import 導入各種庫,比如: import tensorflow as tf from tensorflow.keras.layers import Dense, Flatten from tensorflow.keras import Model import numpy as np import pandas as pd # 可能還會根據需求導入其他庫&…

Zookeeper分布式鎖實現

zookeeper最初設計的初衷就是為了保證分布式系統的一致性。本文將講解如何利用zookeeper的臨時順序結點,實現分布式鎖。 目錄 1. 理論分析 1.1 結點類型 1.2 監聽器 1.3 實現原理 2. 手寫實現簡易zookeeper分布式鎖 1.1 依賴 1.2 常量定義 1.3 實現zookeeper分布式…

Git是什么

簡單介紹: Git是一個分布式版本控制系統,用于跟蹤文件的更改,特別是在多人協作開發的環境中。 Key: 分布式 版本控制 系統 最常用于軟件開發,但也可以用于管理任何類型的文件和文件夾。 Git幫助團隊跟蹤和管理文件的歷史版本&a…

Pycharm 2024在解釋器提供的python控制臺中運行py文件

2024版的界面發生了變化, run with python console搬到了這里:

【分布式理論12】事務協調者高可用:分布式選舉算法

文章目錄 一、分布式系統中事務協調的問題二、分布式選舉算法1. Bully算法2. Raft算法3. ZAB算法 三、小結與比較 一、分布式系統中事務協調的問題 在分布式系統中,常常有多個節點(應用)共同處理不同的事務和資源。前文 【分布式理論9】分布式…

免費deepseek的API獲取教程及將API接入word或WPS中

免費deepseek的API獲取教程: 1 https://cloud.siliconflow.cn/中注冊時填寫邀請碼:GAejkK6X即可獲取2000 萬 Tokens; 2 按照圖中步驟進行操作 將API接入word或WPS中 1 打開一個word,文件-選項-自定義功能區-勾選開發工具-左側的信任中心-信任中心設置…

【SFRA】筆記

GK_SFRA_INJECT(x) SFRA小信號注入函數,向控制環路注入一個小信號。如下圖所示,當前程序,小信號注入是在固定占空比的基礎疊加小信號,得到新的占空比,使用該占空比控制環路。 1.2 GK_SFRA_COLLECT(x, y) SFRA數據收集函數,將小信號注入環路后,該函數收集環路的數據,以…

論文筆記-WSDM2024-LLMRec

論文筆記-WSDM2024-LLMRec: Large Language Models with Graph Augmentation for Recommendation LLMRec: 基于圖增強的大模型推薦摘要1.引言2.前言2.1使用圖嵌入推薦2.2使用輔助信息推薦2.3使用數據增強推薦 3.方法3.1LLM作為隱式反饋增強器3.2基于LLM的輔助信息增強3.2.1用戶…

Ubuntu 系統 cuda12.2 安裝 MMDetection3D

DataBall 助力快速掌握數據集的信息和使用方式,會員享有 百種數據集,持續增加中。 需要更多數據資源和技術解決方案,知識星球: “DataBall - X 數據球(free)” 貴在堅持! ---------------------------------------…

Tomcat的升級

Tomcat 是一個開源的 Java Servlet 容器,用于部署 Java Servlet 和 JavaServer Pages(JSP)。隨著新版本的發布,Tomcat 通常會帶來性能改進、安全增強、新特性和對最新 Java 版本的更好支持。升級 Tomcat 服務器通常涉及到以下幾個…

Python常見面試題的詳解10

1. 哪些操作會導致 Python 內存溢出,怎么處理? 要點 1. 創建超大列表或字典:當我們一次性創建規模極為龐大的列表或字典時,會瞬間占用大量的內存資源。例如,以下代碼試圖創建一個包含 10 億個元素的列表,在…