https://www.nvidia.com/en-us/drivers/details/226760/
你下载的 NVIDIA-Linux-x86_64-470.256.02.run
是 NVIDIA 提供的二进制驱动程序安装文件。以下是详细的步骤,帮助你正确安装这个驱动程序。
1. 备份现有驱动(可选)
在安装新驱动之前,建议备份现有的 NVIDIA 驱动程序配置:
sudo cp -r /etc/modprobe.d/nvidia* /etc/modprobe.d/nvidia-backup/
sudo cp -r /lib/firmware/nvidia* /lib/firmware/nvidia-backup/
2. 禁用 Nouveau 驱动
Nouveau 是 Linux 的开源 NVIDIA 显卡驱动,默认情况下可能会与专有的 NVIDIA 驱动冲突。禁用 Nouveau 可以避免冲突。
创建或编辑 /etc/modprobe.d/blacklist-nouveau.conf
文件:
echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
更新 initramfs:
sudo update-initramfs -u
3. 停止图形界面(如果需要)
如果你正在使用图形界面(如 GNOME、KDE 等),建议切换到文本模式以避免安装过程中出现问题。你可以通过以下命令切换到文本模式:
sudo systemctl set-default multi-user.target
sudo reboot
重启后,系统将启动到文本模式。你可以通过 Ctrl + Alt + F2
到 Ctrl + Alt + F6
切换到其他 TTY。
4. 下载并验证驱动文件
确保你已经下载了 NVIDIA-Linux-x86_64-470.256.02.run
文件,并且它位于当前目录中。你可以使用 sha256sum
或 md5sum
来验证文件完整性(如果有提供校验和)。
5. 安装驱动程序
给 .run
文件执行权限,并运行安装脚本:
chmod +x NVIDIA-Linux-x86_64-470.256.02.run
sudo ./NVIDIA-Linux-x86_64-470.256.02.run
在安装过程中,你会看到一个基于文本的安装向导。按照提示进行操作:
- 接受许可协议:按
Tab
键选择Accept
并按回车键。 - 是否安装 32 位兼容库:根据需要选择(通常选择
Yes
)。 - 是否安装符号链接:选择
Yes
。 - 是否注册 DKMS 模块:选择
Yes
(如果支持)。 - 是否安装 CUDA 工具包:根据需要选择(通常选择
No
,除非你需要 CUDA)。
6. 完成安装
安装完成后,重启计算机以使更改生效:
sudo reboot
7. 验证安装
重启后,验证 NVIDIA 驱动是否正确安装并加载:
nvidia-smi
你应该会看到类似以下的输出,表明驱动已成功安装:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.256.02 Driver Version: 470.256.02 CUDA Version: 12.4 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:01:00.0 Off | N/A |
| N/A 37C P8 9W / N/A | 0MiB / 8192MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
8. 检查 PyTorch 和 CUDA 版本匹配
确保 PyTorch 和 CUDA 版本匹配。你可以通过以下命令检查 PyTorch 是否能检测到 GPU:
import torch
print(f"PyTorch version: {torch.__version__}")
print(f"CUDA available: {torch.cuda.is_available()}")
print(f"CUDA version: {torch.version.cuda}")
如果 CUDA available
返回 True
,则说明问题已经解决。
总结
通过以上步骤,你应该能够成功安装 NVIDIA-Linux-x86_64-470.256.02.run
驱动程序,并确保其正常工作。如果遇到任何问题,请查阅 NVIDIA 的官方文档或社区论坛获取更多帮助。
根据你提供的信息,NVIDIA 安装程序检测到内核模块 nvidia-drm
已经加载,这可能是由于某些程序正在使用 GPU,或者内核配置不支持模块卸载。以下是解决此问题的步骤:
1. 停止使用 GPU 的服务和进程
确保没有程序或服务在使用 GPU。常见的服务包括 X 服务器、CUDA 程序、NVIDIA Persistence Daemon 等。
停止 X 服务器(图形界面)
如果你正在使用图形界面,可以切换到文本模式并停止 X 服务器:
sudo systemctl set-default multi-user.target
sudo systemctl isolate multi-user.target
或者直接重启到文本模式:
sudo reboot
重启后,系统将启动到文本模式。你可以通过 Ctrl + Alt + F2
到 Ctrl + Alt + F6
切换到其他 TTY。
停止 NVIDIA Persistence Daemon
如果 Persistence Daemon 正在运行,停止它:
sudo systemctl stop nvidia-persistenced
查找并终止其他 CUDA 或 GPU 进程
查找并终止所有可能使用 GPU 的进程:
fuser -v /dev/nvidia*
如果有任何进程正在使用 GPU,终止它们:
sudo killall -9 <process_name>
例如:
sudo killall -9 Xorg
sudo killall -9 nvidia-smi
2. 卸载现有驱动
确保现有驱动已完全卸载:
sudo apt-get purge nvidia*
清理残留配置:
sudo rm /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u
3. 禁用 Nouveau 驱动
禁用 Nouveau 可以避免冲突。
创建或编辑 /etc/modprobe.d/blacklist-nouveau.conf
文件:
echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
更新 initramfs:
sudo update-initramfs -u
4. 强制卸载内核模块
有时需要强制卸载内核模块。你可以尝试以下命令:
sudo modprobe -r nvidia_drm
sudo modprobe -r nvidia_modeset
sudo modprobe -r nvidia_uvm
sudo modprobe -r nvidia
如果这些命令失败,说明模块正在被使用或内核不支持卸载。
5. 重启计算机
如果上述方法无法解决问题,最简单的办法是重启计算机:
sudo reboot
重启后,再次尝试安装 NVIDIA 驱动程序。
6. 使用 --uninstall
选项重新安装
在重启后,使用 --uninstall
选项重新安装驱动程序,以确保旧版本完全清除:
sudo ./NVIDIA-Linux-x86_64-470.256.02.run --uninstall
sudo ./NVIDIA-Linux-x86_64-470.256.02.run
7. 检查安装结果
安装完成后,验证 NVIDIA 驱动是否正确安装并加载:
nvidia-smi
你应该会看到类似以下的输出,表明驱动已成功安装:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.256.02 Driver Version: 470.256.02 CUDA Version: 12.4 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:01:00.0 Off | N/A |
| N/A 37C P8 9W / N/A | 0MiB / 8192MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
总结
通过以上步骤,你应该能够解决 nvidia-drm
内核模块已经加载的问题,并成功安装新的 NVIDIA 驱动程序。如果问题仍然存在,请查阅 NVIDIA 的官方文档或社区论坛获取更多帮助。