NVIDIA 显卡驱动安装
nvidia-smi-install.sh用于在主流Linux发行版安装NVIDIA显卡驱动,安装完成后会同时提供nvidia-smi
1. 使用前须知
脚本仅支持Linux x86_64,可识别Ubuntu 20.04/22.04/24.04、Debian 11/12、RHEL系8/9/10、Fedora、openSUSE/SLES、Arch和Manjaro;未适配官方仓库的发行版会自动改用NVIDIA runfile
安装驱动会更换内核模块并需要root权限。执行前应安排维护窗口、停止正在使用GPU的推理或训练任务,并确认当前内核对应的头文件可以安装
WSL 用户
WSL的NVIDIA驱动由Windows宿主机提供,不要在WSL内运行此脚本。请在Windows安装兼容驱动后,在WSL内执行nvidia-smi验证
2. 下载并检查脚本
bash
mkdir -p ~/imrouter-installers
cd ~/imrouter-installers
curl -fL https://www.imrouter.com/docs/scripts/nvidia-smi-install.sh \
-o nvidia-smi-install.sh
chmod +x ./nvidia-smi-install.sh
bash ./nvidia-smi-install.sh --help建议先阅读帮助信息并确认脚本参数,再使用sudo执行。不要使用curl | bash直接运行远程内容
3. 选择驱动分支
脚本支持以下驱动分支:
| 分支 | 默认内核模块 | 适用说明 |
|---|---|---|
| 595 | open | 默认最新生产分支,仅适用于Turing/RTX 20及更新显卡 |
| 580 | open | LTSB分支,Maxwell/Pascal/Volta支持到此分支,老卡需使用闭源模块 |
| 575、570 | open | 适用于支持open内核模块的新显卡 |
| 550、535 | 闭源 | 较旧CUDA 12.x环境或需要旧分支兼容性时使用 |
不确定时可先查看显卡型号:
bash
lspci | grep -i nvidiaTuring之前的Maxwell、Pascal和Volta显卡应选择580分支并显式使用闭源模块:
bash
sudo bash ./nvidia-smi-install.sh \
--branch 580 \
--proprietary4. 执行安装
交互式安装,默认选择595分支和仓库方式:
bash
sudo bash ./nvidia-smi-install.sh非交互安装默认分支:
bash
sudo bash ./nvidia-smi-install.sh --yes指定驱动分支:
bash
sudo bash ./nvidia-smi-install.sh \
--branch 550 \
--proprietary \
--yes强制使用NVIDIA runfile:
bash
sudo bash ./nvidia-smi-install.sh \
--method runfile \
--yes默认仓库不支持目标发行版或指定分支时,脚本会自动降级到runfile。已经安装相同分支时默认跳过;需要覆盖重装可增加--force
5. 重启并验证
驱动安装完成后必须重启,使新内核模块生效:
bash
sudo reboot机器恢复后执行:
bash
nvidia-smi
nvidia-smi --query-gpu=name,driver_version,memory.total \
--format=csv,noheader能够正常显示GPU型号、驱动版本和显存容量后,再继续安装CUDA Toolkit或启动imrouter节点
6. 常见问题
nouveau 已加载
runfile方式检测到nouveau时,会写入/etc/modprobe.d/blacklist-nouveau.conf并重建initramfs,然后要求重启。完成重启后重新执行同一条安装命令即可继续
Secure Boot 导致驱动无法加载
脚本只会检测并告警,不会自动处理模块签名。应为DKMS模块登记MOK,或按服务器安全策略关闭Secure Boot,再重新安装或加载驱动
重启后 nvidia-smi 仍报错
检查当前内核、DKMS状态和内核日志:
bash
uname -r
dkms status
journalctl -k -b | grep -iE 'nvidia|nouveau'确认内核头文件与当前内核匹配,并排除Secure Boot或nouveau仍在阻止NVIDIA模块加载