【OS安装与使用】part3-ubuntu安装Nvidia显卡驱动+CUDA 12.4

news2025/4/7 17:54:36

文章目录

  • 一、待解决问题
    • 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.coloradmin.cn/o/2301480.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python-leetcode 37.翻转二叉树

题目: 给定一颗二叉树的根节点root,翻转这棵二叉树,并返回根节点 方法一:递归 从根节点开始,递归地对树进行遍历,并从叶子节点先开始翻转。如果当前遍历到的节点root的左右两棵子树都已经翻转,那么我们只…

Vue 实现通过URL浏览器本地下载 PDF 和 图片

1、代码实现如下: 根据自己场景判断 PDF 和 图片,下载功能可按下面代码逻辑执行 const downloadFile async (item: any) > {try {let blobUrl: any;// PDF本地下载if (item.format pdf) {const response await fetch(item.url); // URL传递进入i…

android,flutter 混合开发,pigeon通信,传参

文章目录 app效果native和flutter通信的基础知识1. 编解码器 一致性和完整性,安全性,性能优化2. android代码3. dart代码 1. 创建flutter_module2.修改 Android 项目的 settings.gradle,添加 Flutter module3. 在 Android app 的 build.gradl…

unity学习47:寻路和导航,unity2022后版本如何使用 Navmesh 和 bake

目录 1 寻路和导航对移动的不同 1.1 基础的移动功能 1.1.1 基础移动 1.1.2 智能导航寻路 1.1.3 智能导航寻路还可以 2 如何实现这个效果? 2.1 通过地图网格的形式 2.1.1 警告信息 the static value has been deprecated的对应搜索 2.1.2 新的navigation ba…

跟着李沐老师学习深度学习(十二)

循环神经网络 序列模型 序列数据 实际中很多数据是有时序结构的 比如:电影的评价随时间变化而变化 拿奖后评分上升,直到奖项被忘记看了很多好电影后,人们的期望变高季节性:贺岁片、暑期档导演、演员的负面报道导致评分变低 核心思想&#…

深入解析NoSQL数据库:从文档存储到图数据库的全场景实践

title: 深入解析NoSQL数据库:从文档存储到图数据库的全场景实践 date: 2025/2/19 updated: 2025/2/19 author: cmdragon excerpt: 通过电商、社交网络、物联网等12个行业场景,结合MongoDB聚合管道、Redis Stream实时处理、Cassandra SSTable存储引擎、Neo4j路径遍历算法等42…

STM32物联网终端实战:从传感器到云端的低功耗设计

STM32物联网终端实战:从传感器到云端的低功耗设计 一、项目背景与挑战分析 1.1 物联网终端典型需求 (示意图说明:传感器数据采集 → 本地处理 → 无线传输 → 云端存储) 在工业物联网场景中,终端设备需满足以下核心需…

[实现Rpc] 客户端划分 | 框架设计 | common类的实现

目录 3. 客户端模块划分 3.1 Network模块 3.2 Protocol模块 3.3 Dispatcher模块 3.4 Requestor模块 3.5 RpcCaller模块 3.6 Publish-Subscribe模块 3.7 Registry-Discovery模块 3.8 Client模块 4. 框架设计 4.1 抽象层 4.2 具象层 4.3 业务层 ⭕4.4 整体设计框架…

【SFRA】笔记

GK_SFRA_INJECT(x) SFRA小信号注入函数,向控制环路注入一个小信号。如下图所示,当前程序,小信号注入是在固定占空比的基础叠加小信号,得到新的占空比,使用该占空比控制环路。 1.2 GK_SFRA_COLLECT(x, y) SFRA数据收集函数,将小信号注入环路后,该函数收集环路的数据,以…

基于Python的Diango旅游数据分析推荐系统设计与实现+毕业论文(15000字)

基于Python的Diango旅游数据分析推荐系系统设计与实现毕业论文指导搭建视频,带爬虫 配套论文1w5字 可定制到某个省份,加40 基于用户的协同过滤算法 有后台管理 2w多数据集 可配套指导搭建视频,加20 旅游数据分析推荐系统采用了Python语…

国自然青年基金|针对罕见神经上皮肿瘤的小样本影像深度数据挖掘关键技术研究|基金申请·25-02-15

小罗碎碎念 今天和大家分享一个国自然青年基金项目,执行年限为2021.01~2023.12,直接费用为24万元。 该项目聚焦罕见神经上皮肿瘤小样本影像深度数据挖掘技术,致力于攻克小样本数据和临床经验缺乏带来的难题。项目围绕影像规范化、…

Linux 网络安全技巧

网络安全是一个非常重要的课题,基本上你运行的服务后台越多,你就可能打开更多的安全漏洞.如果配置的恰当的话,Linux本身是非常安全可靠的,假使在Linux系统中有某个安全缺陷,由于Linux的源码是开放的,有成千上万的志愿者会立刻发现并修补它。本文旨在介绍用来增强你的…

Windows桌面系统管理7:国产操作系统与Linux操作系统

Windows桌面系统管理0:总目录-CSDN博客 Windows桌面系统管理1:计算机硬件组成及组装-CSDN博客 Windows桌面系统管理2:VMware Workstation使用和管理-CSDN博客 Windows桌面系统管理3:Windows 10操作系统部署与使用-CSDN博客 Wi…

百度百舸 DeepSeek 一体机发布,支持昆仑芯 P800 单机 8 卡满血版开箱即用

在私有云环境中成功部署 DeepSeek 满血版并实现性能调优,并不是一件容易的事情。选择合适的 GPU 配置、安装相应的环境、成功部署上线业务、加速推理任务加速、支撑多用户并发 …… 完成业务测试,成功融入生产业务中。 为了帮助企业快速实现 DeepSeek 服…

解锁 AIoT 无限可能,乐鑫邀您共赴 Embedded World 2025

2025 年 3 月 11-13 日,全球规模最大的嵌入式展览会——Embedded World 2025 将在德国纽伦堡盛大开幕。作为物联网和嵌入式技术领域的领先企业,乐鑫信息科技 (688018.SH) 将展示在 AI LLM、HMI、双频 Wi-Fi 6、低功耗 MCU 和 Matter 等领域的最新技术及解…

LlamaFactory可视化模型微调-Deepseek模型微调+CUDA Toolkit+cuDNN安装

LlamaFactory https://llamafactory.readthedocs.io/zh-cn/latest/ 安装 必须保证版本匹配,否则到训练时,找不到gpu cuda。 否则需要重装。下面图片仅供参考。因为cuda12.8装了没法用,重新搞12.6 cudacudnnpytorch12.69.612.6最新&#xf…

【GPT】从GPT1到GPT3

every blog every motto: Although the world is full of suffering, it is full also of the overcoming of it 0. 前言 从GPT1 到GPT3 1. GPT1 论文: https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/lan…

openGauss 3.0 数据库在线实训课程18:学习视图管理

前提 我正在参加21天养成好习惯| 第二届openGauss每日一练活动 课程详见:openGauss 3.0.0数据库在线实训课程 学习目标 掌握openGauss视图的管理:创建视图、删除视图、查询视图的信息、修改视图的信息。 课程作业 1.创建表,创建普通视图…

基于flask+vue的租房信息可视化系统

✔️本项目利用 python 网络爬虫抓取某租房网站的租房信息,完成数据清洗和结构化,存储到数据库中,搭建web系统对各个市区的租金、房源信息进行展示,根据各种条件对租金进行预测。 1、数据概览 ​ 将爬取到的数据进行展示&#xff…

手写简易RPC(实践版)

首先了解rpc rpc-远程过程调用,openFeign,Dubbo都可以算作rpc,以微服务来具体说明,就是在本地不需要去发送请求,通过rpc框架,像调用本地方法一样调用其他服务的方法,本质上还是要经过网络&…