Ubuntu系统中安装NVIDIA驱动

在Ubuntu系统中安装NVIDIA驱动主要有自动安装(推荐) 、**手动安装(适合特定需求)PPA源安装(平衡版本与易用性)**三种方式,以下是详细步骤及注意事项:

一、自动安装(推荐:稳定、易用,适合大多数用户)

自动安装通过Ubuntu官方仓库或PPA源获取驱动,由系统自动处理依赖和版本匹配,适合新手及追求稳定性的用户。

1. 准备工作
  • 更新系统 :确保系统软件包为最新状态,避免兼容性问题。

    bash 复制代码
    sudo apt update && sudo apt upgrade -y
  • 安装依赖 :需要build-essential(编译工具)、linux-headers(内核头文件)和dkms(动态内核模块支持,确保内核更新后驱动自动适配)。

    bash 复制代码
    sudo apt install build-essential linux-headers-$(uname -r) dkms -y
2. 禁用开源驱动Nouveau(关键:避免冲突)

Nouveau是Ubuntu默认的开源NVIDIA驱动,会与官方驱动冲突,必须禁用:

  • 创建黑名单配置文件:

    bash 复制代码
    sudo nano /etc/modprobe.d/blacklist-nouveau.conf
  • 添加以下内容(禁用Nouveau并禁止其加载):

    bash 复制代码
    blacklist nouveau
    options nouveau modeset=0
  • 更新initramfs(初始化内存文件系统),使配置生效:

    bash 复制代码
    sudo update-initramfs -u
  • 重启系统:

    bash 复制代码
    sudo reboot
  • 验证禁用是否成功(无输出则表示成功):

    bash 复制代码
    lsmod | grep nouveau
3. 安装驱动
方法A:通过Ubuntu官方仓库安装(最稳定)
  • 查看系统推荐的驱动版本(recommended标记为推荐):

    bash 复制代码
    ubuntu-drivers devices
  • 安装推荐版本(例如nvidia-driver-535):

    bash 复制代码
    sudo apt install nvidia-driver-535 -y
  • 或使用autoinstall一键安装推荐版本:

    bash 复制代码
    sudo ubuntu-drivers autoinstall
方法B:通过PPA源安装(获取较新版本)

若官方仓库的驱动版本过旧,可以添加社区维护的graphics-drivers PPA源(定期更新NVIDIA驱动):

  • 添加PPA源:

    bash 复制代码
    sudo add-apt-repository ppa:graphics-drivers/ppa
  • 更新软件包列表:

    bash 复制代码
    sudo apt update
  • 查看推荐驱动版本并安装(同官方仓库步骤)。

4. 验证安装
  • 重启系统后,运行nvidia-smi命令,若输出GPU信息(如型号、驱动版本、CUDA版本),则安装成功:

    bash 复制代码
    nvidia-smi

    示例输出:

    复制代码
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 535.86.05    Driver Version: 535.86.05    CUDA Version: 12.2     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |===============================+======================+======================|
    |   0  NVIDIA GeForce RTX 3060    Off  | 00000000:01:00.0  On |                  N/A |
    |  0%   43C    P8    15W / 170W |    456MiB / 12288MiB |      0%      Default |
    +-----------------------------------------------------------------------------+

二、手动安装(适合:需要特定版本或最新驱动)

手动安装需从NVIDIA官网下载.run文件,适合需要最新功能(如RTX 50系列支持)或特定CUDA版本的用户,但需注意处理依赖和冲突。

1. 准备工作
2. 停止图形界面

安装前需关闭图形界面(X Server),避免占用GPU:

bash 复制代码
sudo systemctl stop gdm  # 或lightdm(根据系统使用的显示管理器)
3. 运行安装脚本
  • 赋予.run文件执行权限:

    bash 复制代码
    chmod +x NVIDIA-Linux-x86_64-550.120.00.run
  • 运行安装脚本(建议使用--dkms参数,确保内核更新后驱动自动适配):

    bash 复制代码
    sudo ./NVIDIA-Linux-x86_64-550.120.00.run --dkms
  • 安装过程中需注意:

    • 选择"Accept"同意协议;
    • 若提示"Install 32-bit compatibility libraries",选"Yes"(如需32位应用支持);
    • 若提示"Disable Nouveau",选"Yes"(NVIDIA会自动禁用Nouveau,无需手动操作);
    • 其他选项默认即可。
4. 验证安装
  • 重启系统后,运行nvidia-smi命令,若输出GPU信息,则安装成功。

三、常见问题及解决方法

1. 无法进入图形界面(黑屏/卡住)
  • 原因:驱动与图形界面冲突或未正确禁用Nouveau。
  • 解决方法:
    • Ctrl+Alt+F2进入TTY终端;
    • 卸载驱动:sudo nvidia-uninstall(手动安装)或sudo apt purge nvidia-*(自动安装);
    • 重新禁用Nouveau并更新initramfs;
    • 重新安装驱动。
2. Secure Boot导致驱动未加载
  • 原因:Secure Boot(安全启动)会阻止未签名的内核模块加载。
  • 解决方法:
    • 进入BIOS设置,禁用Secure Boot;
    • 或通过mokutil注册NVIDIA公钥(安装驱动时会提示,需设置密码并在重启后 enroll MOK)。
3. 驱动与内核版本冲突
  • 原因:内核更新后,驱动未自动适配。
  • 解决方法:
    • 若使用--dkms参数安装,系统会自动重新编译驱动;
    • 若未使用--dkms,需重新运行安装脚本或安装dkms后重新安装驱动。

总结

  • 自动安装:适合大多数用户,稳定易用,推荐优先选择;
  • 手动安装:适合需要特定版本或最新驱动的用户,需注意处理依赖和冲突;
  • PPA源安装:平衡版本与易用性,适合需要较新驱动但不想手动下载的用户。

安装完成后,建议定期更新系统和驱动(sudo apt update && sudo apt upgrade),以保持兼容性和安全性。

相关推荐
qcwl662 小时前
深入理解Linux进程与内存 学习笔记#3
linux·笔记·学习
千里马-horse2 小时前
Linux 系统中安装 ktlint
linux·运维·服务器
feng_you_ying_li2 小时前
linux攻略计划启动,首先是linux的基本介绍(1)
linux·运维·服务器
张3蜂2 小时前
Ubuntu Linux 与 Ubuntu with Rosetta:深入解析两者的区别与适用场景
linux·运维·ubuntu
廿一夏2 小时前
搭建Ubuntu 虚拟机与部署docker
linux·ubuntu·docker
历程里程碑2 小时前
43. TCP -2实现英文查中文功能
java·linux·开发语言·c++·udp·c#·排序算法
千里马-horse2 小时前
ubuntu 电脑安装protoc-gen-grpc-kotlin
linux·运维·ubuntu
柯儿的天空2 小时前
【OpenClaw 全面解析:从零到精通】第 004 篇:OpenClaw 在 Linux/Ubuntu 上的安装与部署实战
linux·人工智能·ubuntu·elasticsearch·知识图谱
不知名。。。。。。。。2 小时前
仿muduo库实现高并发服务器---HttpContext上下文类实现
运维·服务器