当前位置: 首页 > backend >正文

Ubuntu 下配置 NVIDIA 驱动与 CUDA 环境(适配 RTX 4060Ti)

本文记录了在 Ubuntu 20.04 系统中,从零开始为 NVIDIA GeForce RTX 4060Ti 配置 GPU 驱动与 CUDA Toolkit 的完整过程,适合有一定终端基础的开发者参考。

💡 配置逻辑

在 Ubuntu 系统中配置 CUDA 环境时,必须先安装 NVIDIA 驱动,再安装 CUDA Toolkit,两者缺一不可且顺序不能颠倒。NVIDIA 驱动是操作系统与显卡之间的桥梁,只有驱动正确安装并加载后,系统才能识别显卡,nvidia-smi 才能正常显示 GPU 信息。而 CUDA Toolkit 则是在驱动的基础上提供 GPU 加速计算的开发工具包,包括编译器(nvcc)、库函数等。如果驱动未正确安装,即使安装了 CUDA,也无法发挥 GPU 加速的作用。两者的关系是:CUDA 依赖驱动运行,驱动是基础,CUDA 是工具,先驱动后 CUDA,是配置流程的核心逻辑。


📌 系统环境

  • 操作系统:Ubuntu 20.04(适用于 22.04 及其他版本)

  • 显卡型号:NVIDIA GeForce RTX 4060 Ti(移动版)

  • 配置目标:

    • 正确安装 NVIDIA 驱动

    • 安装并验证 CUDA Toolkit(推荐 12.x)

    • 确保 nvidia-sminvcc -V 均可正常使用


🛠️ 安装流程概览

  1. 更新系统与内核(可选)

  2. 安装 NVIDIA 官方驱动

  3. 关闭 Secure Boot(如有必要)

  4. 安装 CUDA Toolkit(推荐从官网安装

  5. 验证安装是否成功


✅ 步骤一:更新系统与内核

打开终端,依次执行以下命令:

sudo apt update
sudo apt upgrade -y
sudo reboot  # 重启以加载更新后的内核(如有)

✅ 步骤二:安装推荐的 NVIDIA 驱动

Step1. 检查 Ubuntu 推荐的驱动版本:
ubuntu-drivers devices
Step 2. 安装推荐的驱动(显示 “recommended” 字样): 

    sudo apt install nvidia-driver-570-open
    Step 3. 安装完成后重启系统: 
    sudo reboot
    
     Step 4. 验证 NVIDIA 驱动是否安装成功
    nvidia-smi
    

    如果输出 GPU 信息、驱动版本、CUDA 版本等,说明驱动安装成功。

    ❌ 错误情况:如果出现以下错误

    NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.
    

    请继续以下排查步骤👇


    🧰 故障排查:nvidia-smi 无法运行

    1️⃣ 检查驱动是否真的安装:

    dpkg -l | grep nvidia-driver

    若无输出,说明驱动未成功安装。


    2️⃣ 检查内核模块是否加载:

    lsmod | grep nvidia

    无输出 → 模块未加载,尝试手动加载:

    sudo modprobe nvidia

    如果出现错误:

    modprobe: ERROR: could not insert 'nvidia': Operation not permitted
    

    可能是因为 BIOS/UEFI 启用了 Secure Boot


    3️⃣ 检查 Secure Boot 状态:

    mokutil --sb-state
    
    • 输出 SecureBoot enabled → 前往 BIOS 禁用 Secure Boot

    • 输出 SecureBoot disabled → 模块加载应该没问题


    4️⃣ 再次尝试加载驱动并查看状态:

    sudo modprobe nvidia
    nvidia-smi
    

    🎉 如果一切正常,将看到如下信息:

    • GPU 型号(RTX 4060Ti)

    • 驱动版本(如 545.29.06)

    • 支持的 CUDA 最高版本(12.3)

    • 显存占用情况


    ✅ 步骤三:安装 CUDA Toolkit(推荐不要使用 apt 默认源

    ⚠️ 你曾尝试:

    sudo apt install nvidia-cuda-toolkit
    

    ⚠️  但它安装的是 CUDA 10.1(过时版本,2019 年)

    nvcc --version
    # 输出:
    # Cuda compilation tools, release 10.1, V10.1.243
    

    💡 正确做法:前往 NVIDIA 官网下载安装最新版

    1. 打开官网:CUDA Toolkit 12.9 Update 1 Downloads | NVIDIA Developer

    2. 参考链接:【CUDA】Ubuntu系统如何安装CUDA保姆级教程(2022年最新)_ubuntu安装cuda-CSDN博客

    3. 选择你的平台,例如:

      • Operating System: Linux

      • Architecture: x86_64

      • Distribution: Ubuntu

      • Version: 20.04

      • Installer Type: deb (local) 推荐

      • CUDA Version: 12.3 或 12.4(推荐)

    4. 按照生成的命令依次执行,例如:

      sudo dpkg -i cuda-repo-ubuntu2004-12-3-local_12.3.0-1_amd64.deb
      sudo cp /var/cuda-repo-ubuntu2004-12-3-local/cuda-*-keyring.gpg /usr/share/keyrings/
      sudo apt-get update
      sudo apt-get -y install cuda
      

    ✅ 步骤四:配置环境变量

    编辑 .bashrc.zshrc

    nano ~/.bashrc
    

    添加以下内容(假设安装在 /usr/local/cuda):

    export PATH=/usr/local/cuda/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
    

    保存后执行:

    source ~/.bashrc
    

    ✅ 步骤五:验证 CUDA 安装是否成功

    nvcc --version
    

    期望输出:

    Cuda compilation tools, release 12.3, V12.3.xxx
    

    ✅ 附加验证(可选)

    测试 CUDA 示例程序:

    cd /usr/local/cuda/samples/1_Utilities/deviceQuery
    sudo make
    ./deviceQuery
    

    输出信息中如出现:

    Result = PASS
    

    表示 CUDA 可正常运行。


    ✅ 总结

    步骤是否完成说明
    驱动安装使用 ubuntu-drivers 推荐版本
    Secure Boot 禁用否则 nvidia-smi 报错
    CUDA 安装推荐安装 CUDA 12.3 官方包
    环境变量配置添加 PATH 和 LD_LIBRARY_PATH
    nvidia-smi 正常GPU 驱动运行正常
    nvcc --version 正常CUDA 编译器可用
    http://www.xdnf.cn/news/16689.html

    相关文章:

  1. webpack-babel
  2. SAM附录详解
  3. 【C#】基于SharpCompress实现压缩包解压功能
  4. 揭秘动态测试:软件质量的实战防线
  5. 【Golang】用官方rate包构造简单IP限流器
  6. 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博评论数据可视化分析-点赞区间折线图实现
  7. 04百融云策略引擎项目laravel实战步完整安装composer及tcpdf依赖库和验证-优雅草卓伊凡
  8. Cesium 快速入门(二)底图更换
  9. 数据库学习------数据库隔离类型及其与事务特性
  10. 如何将 Redis 监控集成到微服务整体的监控体系中( 如 Prometheus + Grafana)
  11. 如何为C#加入EPPlus 包
  12. 哈希相关的模拟实现
  13. 【人工智能】当AI智能体遇上安全与伦理:一场技术与人性的对话
  14. Java学习第九十一部分——OkHttp
  15. Unity游戏开发中的3D数学基础详解
  16. SQL 中 WHERE 与 HAVING 的用法详解:分组聚合场景下的混用指南
  17. Kotlin -> 普通Lambda vs 挂起Lambda
  18. Side band ECC、Inline ECC、On-die ECC、Link ECC
  19. Jinja2 详细讲解
  20. 基于32nm CMOS工艺的传输门D触发器设计及HSPICE仿真分析
  21. 三坐标测量仪攻克深孔检测!破解新能源汽车阀体阀孔测量难题
  22. 电子电气架构 --- 车载48V系统开辟全新道路
  23. React组件化的封装
  24. 【Kiro Code】Chat 聊天功能
  25. Amazon Aurora MySQL 8.0 完整指南
  26. 网络爬虫(python)入门
  27. 安卓基础布局核心知识点整理
  28. 嵌入式 C 语言入门:循环结构学习笔记 —— 从语法到实用技巧
  29. BH1750模块
  30. TransportClient详细说一说