Linux安装nvidia驱动【详细版】

[复制链接]
发表于 2026-10-2 12:07:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

本文记录我在 openEuler 24.03 LTS 上给 RTX 3090 装 NVIDIA 官方驱动的完整过程。对做 AI 训练、图形渲染或 GPU 服务器交付的 ToB 团队来说,Linux 显卡驱动装不上、装完黑屏、重启后 nouveau 又抢回控制权,是最常见也最耗时的环境问题。下面把每一步命令、容易踩的坑和选型判断都写清楚,供运维和数字化采购同学直接参考。

核心观点

在 openEuler 24.03 LTS 上装 NVIDIA 驱动,核心动作只有两个:先彻底禁用内核自带的 Nouveau 驱动,再用官方 .run 包手动安装。系统仓库里的驱动版本往往滞后,RTX 3090 这类较新的卡建议直接去 NVIDIA 官网下载对应版本,例如 570.144 或更高。

为什么这一步在 openEuler 上格外关键

openEuler 默认加载 Nouveau 开源驱动,它会占用 GPU 设备节点,导致 NVIDIA 官方安装程序报错或装完无法加载内核模块。很多人第一次装完重启直接进不去图形界面,八成就是 Nouveau 没禁干净。所以禁用动作要做得彻底:改黑名单、重建 initramfs、重启确认,三步缺一不可。

openEuler 24.03 LTS 系统信息界面,显示内核版本与发行版信息

准备工作:系统更新与依赖安装

先把系统更新到最新,再装编译驱动必需的工具链。缺 kernel-devel 或 kernel-headers 是最常见的安装失败原因,因为 NVIDIA 安装程序要现场编译内核模块。

sudo dnf update -y
sudo dnf install gcc make kernel-devel kernel-headers dkms -y

Vulkan 相关依赖属于可选,但装上能少一堆警告,建议顺手加上:

sudo dnf install vulkan-loader -y

然后去 NVIDIA 驱动下载页面,按 RTX 3090 选版本,建议下 .run 格式(如 NVIDIA-Linux-x86_64-570.144.run),上传到服务器再执行。选 .run 而不是包管理器版本,是因为它版本可控、可回滚,适合批量交付的服务器环境。

禁用 Nouveau 驱动

编辑黑名单配置文件:

sudo vim /usr/lib/modprobe.d/dist-blacklist.conf
  • 把 blacklist nvidiafb 这一行注释掉;
  • 追加下面两行:
blacklist nouveau
options nouveau modeset=0
编辑 dist-blacklist.conf 文件,注释 nvidiafb 并添加 blacklist nouveau 配置

接下来重建 initramfs 并重启。先备份原镜像再重建,出问题还能退回去:

sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img

适用场景与选型建议

  • GPU 服务器交付:RTX 3090 常用于中小规模 AI 推理和渲染,openEuler 作为国产化信创底座时,驱动需手动装,本文流程可直接复用。
  • 多卡环境:装完记得用 nvidia-smi 逐卡确认,避免只识别到部分 GPU。
  • 版本选择:驱动版本要和 CUDA 版本匹配,选型时先确定业务需要的 CUDA 版本,再倒推驱动下限。
  • 风险提示:禁用 Nouveau 后若驱动安装失败,可能失去图形界面,建议全程保留 SSH 通道操作。

关键信息

  • 系统环境:openEuler 24.03 LTS,显卡 RTX 3090。
  • 驱动版本示例:570.144 或更高,.run 格式。
  • 必备依赖:gcc、make、kernel-devel、kernel-headers、dkms。
  • 核心配置:dist-blacklist.conf 中注释 nvidiafb,加入 blacklist nouveau 与 options nouveau modeset=0。

qidao123.com企服评测-应用市场 编辑提示

本文是实操记录,命令请按自己系统的内核版本调整。装驱动前务必确认 kernel-devel 版本与当前内核一致,否则编译会失败。生产环境建议先在测试机验证再批量执行。

标题:Linux安装NVIDIA驱动详细步骤:禁用Nouveau与内核源码编译避坑指南

禁用Nouveau并重启后,怎么确认它真的失效了?安装程序跑起来该勾哪些选项?这段内容承接前文,聚焦从「验证Nouveau状态」到「NVIDIA官方驱动安装选项配置」的完整操作链路。我实际操作时发现,很多人卡在驱动安装的交互界面,不是选错专有驱动,就是漏注册DKMS导致内核一升级显卡就掉。下面把每一步的命令、参数含义和选择依据讲清楚。

核心观点

安装NVIDIA官方驱动的关键不在敲命令,而在两个决策点:一是安装前用 lsmod | grep nouveau 确认Nouveau已彻底禁用,二是安装过程中必须选择 NVIDIA Proprietary 专有驱动并注册DKMS,否则内核更新后驱动模块不会自动重建,显卡会直接失效。

先验证Nouveau是否真的被禁用

重启系统之后,别急着往下走,先确认Nouveau有没有被真正屏蔽掉。执行下面这条命令:

lsmod | grep nouveau

如果没有任何输出,说明Nouveau已经成功禁用;要是还能列出模块信息,就得回头检查禁用配置是否写对、是否漏了重建initramfs这一步。

禁用前的状态大致长这样,能明显看到nouveau模块被加载:

禁用Nouveau前执行lsmod命令显示nouveau内核模块被加载的输出

重启后再次验证,命令无输出即表示禁用成功:

重启后执行lsmod grep nouveau无输出证明Nouveau已被成功禁用

安装NVIDIA驱动:赋权与运行安装程序

确认Nouveau禁用后,先给下载好的.run安装包赋予执行权限,再带着内核源码路径运行它:

chmod +x NVIDIA-Linux-x86_64-*.run

sudo ./NVIDIA-Linux-x86_64-*.run --kernel-source-path=/usr/src/kernels/$(uname -r)

几个关键参数的作用我拆开说,选对了能少走很多弯路:

  • --kernel-source-path:指定内核源码路径,必须和当前内核版本一致,否则编译驱动模块时会直接报错。
  • --no-x-check:禁用X Server检测,适合无图形界面的服务器环境。
  • --no-opengl-files:不安装OpenGL相关文件,避免和系统自带图形界面产生冲突。

安装选项怎么选:专有驱动与DKMS是重点

安装程序跑起来后会弹出若干交互选项,这几个地方最容易选错:

  • 选择NVIDIA Proprietary:选Yes。这是NVIDIA官方提供的专有驱动,另一个是开源版本,生产环境一般用官方专有驱动。
  • 注册DKMS:选Yes。这样内核更新后能自动重建驱动模块,省去每次升级内核都要手动重装驱动的麻烦。
  • 安装32位兼容库:按需选Yes,有32位兼容性需求时才需要。
  • 其他选项:保持默认即可,不用额外改动。
NVIDIA驱动安装程序的交互界面展示选择专有驱动与注册DKMS的选项

适用场景与选型建议

这套流程适合在无图形界面的Linux服务器上部署NVIDIA显卡驱动,尤其是需要跑CUDA、深度学习训练或GPU计算任务的场景。如果你用的是带桌面环境的机器,--no-opengl-files 这类参数要谨慎,装错了可能导致图形界面起不来。另外提醒一句:内核源码路径一定要提前装好对应的 kernel-devel 或 kernel-headers,否则安装程序找不到源码会直接终止。

关键信息

  • 验证Nouveau禁用状态的命令是 lsmod | grep nouveau,无输出即成功。
  • 运行安装程序需带 --kernel-source-path,路径必须匹配当前内核版本 $(uname -r)。
  • 安装时选择NVIDIA Proprietary专有驱动,并注册DKMS以保证内核更新后驱动可用。
  • 32位兼容库按需选择,其余选项保持默认。
标题:Linux安装NVIDIA驱动详细教程:从禁用nouveau到nvidia-smi验证

在Linux服务器或工作站上部署GPU计算环境,NVIDIA驱动的安装往往是第一道坎。这篇教程承接前文,聚焦安装后的重启验证、nvidia-smi状态检查以及常见报错的排查思路。对做AI训练、图形渲染或数字化采购的IT人员来说,驱动装不稳,后面CUDA、容器、深度学习框架全都白搭,所以这一步值得认真核对。

核心观点

NVIDIA驱动装完后,重启并运行 nvidia-smi 是判断成败的唯一硬标准:能正常显示GPU型号、显存占用和CUDA版本,才算真正装好。遇到启动失败或界面异常,多半是Secure Boot、依赖缺失或OpenGL选项导致的,按场景对症处理即可。

重启系统让驱动生效

驱动文件写入内核模块后不会立即生效,必须重启加载新模块。我在实际操作时习惯先保存手头工作再执行,避免远程SSH会话断开后误判为故障。

sudo reboot

重启后重新连上终端,如果之前是通过SSH远程操作的,建议等一两分钟再连,给系统足够的启动时间。

验证驱动是否安装成功

登录后第一件事就是跑 nvidia-smi,这是NVIDIA官方的系统管理接口命令,输出信息最直观。

nvidia-smi

如果终端里出现了GPU的详细信息——包括显卡型号、驱动版本、CUDA版本、显存占用、当前运行的进程等,就说明驱动安装成功。下面这张图就是正常输出的样子,可以看到顶部的驱动版本和CUDA版本,以及下方GPU的使用率表格。

终端执行nvidia-smi命令后显示GPU型号、驱动版本和CUDA版本的输出界面

反过来,如果提示 command not found,或者报错说找不到设备,那基本可以判定驱动没装好,需要回退检查安装步骤。

常见问题与排查思路

驱动装完翻车的情况不少见,下面这几类是高频问题,我自己和同事都踩过。

  • 安全启动冲突:如果重启后系统直接进不去、卡在启动界面或报模块签名错误,多半是主板的Secure Boot没关。进BIOS把Secure Boot禁用掉,再重启即可。
  • 依赖缺失:安装过程中提示缺少某个包,用 dnf install <包名> 把缺的依赖补上,再重新执行安装命令。不同发行版的包管理器不一样,这里给的是dnf系的做法。
  • 图形界面异常:如果装完OpenGL相关组件后桌面显示错乱、黑屏或分辨率异常,可以重新安装驱动,并在安装时加上 --no-opengl-files 参数,跳过OpenGL文件的覆盖。

适用场景与选型建议

这套流程主要面向在Linux物理机或虚拟化平台上部署NVIDIA GPU的用户,典型场景包括深度学习训练、科学计算、视频转码和3D渲染。选型时有几点值得注意:服务器版驱动和桌面版驱动定位不同,数据中心环境建议优先考虑NVIDIA的Data Center驱动分支;如果后续要跑容器化任务,还需要额外配置NVIDIA Container Toolkit,不能只装驱动就完事。

另外,驱动版本和CUDA版本存在对应关系,装之前最好先确认目标框架(比如PyTorch、TensorFlow)支持的CUDA版本,再反推该装哪个驱动分支,避免装完发现版本不匹配还要重来一遍。

关键信息

  • 驱动安装后必须执行 sudo reboot 重启才能加载内核模块。
  • 用 nvidia-smi 验证,能显示GPU信息即安装成功。
  • 三类高频问题:Secure Boot需在BIOS关闭、依赖缺失用 dnf install 补、图形界面异常可加 --no-opengl-files 重装。
  • 驱动版本需与目标CUDA版本匹配,容器场景还要额外配置Container Toolkit。

qidao123.com企服评测-应用市场 编辑提示

本文覆盖的是驱动安装的收尾验证与排障环节,实际操作前请先确认硬件型号和发行版,命令中的包管理器需按你的系统替换。遇到报错优先看日志日志,别盲目重装。

标题:Linux安装NVIDIA驱动详细步骤:CUDA兼容与重复安装避坑

先确认CUDA版本再动手

如果你打算在装完驱动后继续上CUDA,版本别乱选。我自己踩过的坑是:驱动装完能跑,但CUDA Toolkit版本和驱动对不上,编译时直接报错。建议先查NVIDIA官方的兼容性表,挑一个和驱动匹配的版本,比如CUDA 12.8就是常被拿来搭配的选项。

用.run文件安装的具体做法

从NVIDIA官网下载对应的.run文件,赋可执行权限后运行,按提示一步步走就行。命令行大概是这个形式:

chmod +x NVIDIA-Linux-x86_64-*.run
sudo ./NVIDIA-Linux-x86_64-*.run

过程中会问你几个问题,比如是否注册DKMS、是否禁用nouveau,按实际环境选即可。

容易忽略的重复安装风险

注意:部分CUDA版本是自带驱动的。如果你先装了CUDA,它可能已经把驱动一并装进去了,这时候再跑一遍.run文件,容易出现版本冲突、库文件互相覆盖,甚至X起不来。建议先确认当前是否已有驱动,再决定要不要重复装。

参考文档

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表