Ubuntu 系统 NVIDIA 显卡驱动及 CUDA 安装
好的,这是根据您的要求,对“可选:安装 CUDA 工具包”部分进行的补充和完善后的完整文档。
Ubuntu 24.04 安装 NVIDIA GeForce RTX 4060 显卡驱动及 CUDA 开发环境完整指南
系统环境:
- 操作系统: Ubuntu 24.04.2 LTS (Noble Numbat)
- 显卡型号: NVIDIA GeForce RTX 4060 (PCI ID: 10de:2882)
- 当前驱动:
nouveau(开源驱动)
1. 系统准备与信息确认
在开始安装前,先确认系统和显卡信息。
# 确认显卡硬件信息及当前使用的驱动 lspci -nnk|grep-i vga -A3# 确认 Ubuntu 版本 lsb_release -a# 更新系统包列表sudoapt update 2. 识别并选择推荐驱动版本
使用 ubuntu-drivers 工具查看系统推荐的驱动版本。
# 查看可用的 NVIDIA 驱动版本 ubuntu-drivers devices 输出示例及解读:
== /sys/devices/pci0000:00/.../0000:01:00.0 == modalias : pci:v000010DEd00002882... vendor : NVIDIA Corporation model : AD107 [GeForce RTX 4060] driver : nvidia-driver-550 - distro non-free recommended # <-- 推荐安装 driver : nvidia-driver-570-server-open - distro non-free ... driver : xserver-xorg-video-nouveau - distro free builtin nvidia-driver-550被标记为recommended,是针对 RTX 4060 的最佳选择。nvidia-driver-535是较旧的稳定版本。nvidia-driver-570-server系列通常用于服务器环境。
结论: 选择安装 nvidia-driver-550。
3. 安装 NVIDIA 驱动
# 安装推荐的驱动、设置工具和依赖sudoaptinstall nvidia-driver-550 nvidia-settings nvidia-prime libnvidia-extra-550 # 如果遇到 'aplay command not found' 警告,安装 alsa-utilssudoaptinstall alsa-utils 4. 禁用开源驱动 nouveau
NVIDIA 官方驱动与 nouveau 驱动冲突,必须禁用。
# 创建并编辑黑名单配置文件sudovim /etc/modprobe.d/blacklist-nouveau.conf 文件内容:
blacklist nouveau options nouveau modeset=0 # 更新 initramfs 以应用更改sudo update-initramfs -u5. 启用 DRM 内核模式设置 (可选但推荐)
此设置能改善启动体验和电源管理。
# 编辑 GRUB 配置sudovim /etc/default/grub 修改 GRUB_CMDLINE_LINUX_DEFAULT 行:
# 修改前 # 修改后 (添加 nvidia-drm.modeset=1) GRUB_CMDLINE_LINUX_DEFAULT="nvidia-drm.modeset=1" 更新 GRUB 配置:
sudoupdate-grub6. 重启系统
sudoreboot7. 验证安装
重启后,执行以下命令验证驱动是否成功安装。
# 1. 检查 NVIDIA 驱动和 GPU 状态 nvidia-smi 预期成功输出:
+---------------------------------------------------------------------------------------+ | NVIDIA-SMI 550.xx.xx Driver Version: 550.xx.xx 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 RTX 4060 Off | 00000000:01:00.0 On | N/A | | 0% 42C P8 11W / 115W | 320MiB / 8192MiB | 0% Default | +-------------------------------+----------------------+----------------------+ # 2. 检查 OpenGL 渲染器是否为 NVIDIA glxinfo |grep"OpenGL renderer"# 预期输出: OpenGL renderer string: NVIDIA GeForce RTX 4060/PCIe/SSE2# 3. 检查 Prime 选择 (适用于双显卡笔记本) prime-select query # 预期输出: nvidia8. 故障排除 (如果 nvidia-smi 失败)
如果 nvidia-smi 报错 NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver,请按以下步骤排查:
8.1 检查内核模块是否加载
lsmod |grep nvidia - 成功: 应看到
nvidia,nvidia_drm,nvidia_uvm,nvidia_modeset等模块。 - 失败: 无输出或缺少关键模块,说明驱动未加载。
8.2 检查内核日志
sudodmesg|grep-i nvidia - 查找
NVRM: Failed to load或其他错误信息。
8.3 检查 Nouveau 是否被禁用
lsmod |grep nouveau - 成功: 无任何输出。
- 失败: 有输出,说明
nouveau仍在运行,需返回第 4 步确认黑名单配置并再次执行sudo update-initramfs -u。
8.4 尝试手动加载模块
sudo modprobe nvidia_drm sudo modprobe nvidia_uvm sudo modprobe nvidia nvidia-smi # 再次尝试8.5 重新生成 initramfs
sudo update-initramfs -u-k all sudoreboot8.6 彻底重装驱动
# 彻底清除所有 NVIDIA 相关包sudoapt purge '^nvidia-.*''^libnvidia-.*'sudoapt autoremove # 重新安装推荐驱动sudoaptinstall nvidia-driver-550 nvidia-settings nvidia-prime libnvidia-extra-550 # 重新禁用 nouveau 和更新 initramfsecho-e"blacklist nouveau\noptions nouveau modeset=0"|sudotee /etc/modprobe.d/blacklist-nouveau.conf sudo update-initramfs -u# 重新配置 DRM 模式设置sudosed-i's/GRUB_CMDLINE_LINUX_DEFAULT=""/GRUB_CMDLINE_LINUX_DEFAULT="nvidia-drm.modeset=1"/' /etc/default/grub sudoupdate-grub# 最后重启sudoreboot9. 可选:安装 CUDA 工具包 (开发环境)
CUDA (Compute Unified Device Architecture) 是 NVIDIA 的并行计算平台和编程模型,用于在 GPU 上进行通用计算。安装 CUDA 需要理解其与 NVIDIA 驱动的关系。
9.1 核心概念:CUDA 版本与 NVIDIA 驱动的兼容性
- CUDA Toolkit (工具包): 这是开发者使用的软件包,包含编译器 (
nvcc)、库、头文件和调试工具。您安装的是这个。 - NVIDIA 驱动 (Driver): 这是操作系统与 GPU 硬件通信的底层软件。驱动中包含一个 CUDA Runtime (运行时) 组件。
- 关键关系:NVIDIA 驱动版本决定了您能使用的最高 CUDA Toolkit 版本。 一个较新的驱动可以支持多个较旧的 CUDA Toolkit 版本。例如,
nvidia-driver-550支持最高到 CUDA 12.4。
如何选择版本?
- 查看
nvidia-smi输出: 安装好驱动后运行nvidia-smi,注意输出中的CUDA Version: xx.x。这表示当前驱动支持的最高 CUDA 版本。 - 选择 CUDA Toolkit: 您可以安装等于或低于此版本号的 CUDA Toolkit。例如,如果
nvidia-smi显示CUDA Version: 12.4,您可以安全地安装 CUDA 12.4, 12.3, 12.2 等。 - 推荐策略: 通常建议安装与驱动支持的最高版本相同的 CUDA Toolkit,以获得最新的功能和性能优化。
9.2 安装 CUDA Toolkit 的两种方法
方法一:使用 Ubuntu 仓库 (推荐 - 简单)
Ubuntu 仓库提供了 nvidia-cuda-toolkit 包,它会自动安装与当前系统驱动兼容的 CUDA 版本。
# 安装仓库中的 CUDA 工具包sudoaptinstall nvidia-cuda-toolkit # 验证安装 nvcc --version# 输出应包含类似: release 12.4, V12.4.xxx- 优点: 简单,自动处理依赖,版本兼容性有保障。
- 缺点: 版本可能不是最新的,功能可能不如官方包完整。
方法二:使用 NVIDIA 官方仓库 (推荐 - 功能完整)
此方法可以安装特定版本的 CUDA Toolkit。
验证安装:
nvcc --version# 应输出安装的 CUDA 版本配置环境变量:将 CUDA 的 bin 和 lib64 目录添加到您的 PATH 和 LD_LIBRARY_PATH 中。
# 编辑 ~/.bashrc 文件echo'export PATH=/usr/local/cuda-12.4/bin:$PATH'>> ~/.bashrc echo'export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH'>> ~/.bashrc source ~/.bashrc 添加 NVIDIA 官方 GPG 密钥和仓库:
# 下载并添加 GPG 密钥wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb # 添加仓库 (Ubuntu 24.04 使用 22.04 的仓库,通常兼容)sudoapt-get update sudoapt-getinstall cuda-toolkit-12-4 # 安装 CUDA 12.4 版本注意: 请根据nvidia-smi显示的最高 CUDA 版本来选择安装包,如cuda-toolkit-12-3或cuda-toolkit-12-2。将12-4替换为相应的版本号。
9.3 注意事项
- 驱动优先: 必须先成功安装 NVIDIA 驱动,再安装 CUDA Toolkit。
- 版本匹配: 务必确保 CUDA Toolkit 版本 不高于
nvidia-smi报告的 CUDA 版本。 - 重启: 在安装或更新驱动后,通常需要重启才能正确加载 CUDA 运行时。
- 多版本管理: 如果需要多个 CUDA 版本,可以使用符号链接
/usr/local/cuda指向当前使用的版本,方便切换。
10. 性能优化建议
# 启用持久模式 (保持 GPU 始终处于高性能状态)sudo nvidia-smi -pm1# 启用 NVENC 编码加速 (可选)echo-e"options nvidia NVreg_EnableStreamMemOPs=1\noptions nvidia NVreg_EnableMSI=1"|sudotee /etc/modprobe.d/nvidia.conf sudo update-initramfs -u总结:
成功安装 NVIDIA 驱动和 CUDA 环境的关键在于:
- 选择正确的驱动版本 (
nvidia-driver-550for RTX 4060)。 - 彻底禁用
nouveau驱动 并更新initramfs。 - 重启系统 使更改生效。
- 使用
nvidia-smi和glxinfo验证驱动安装结果。 - 理解 CUDA 与驱动的关系,根据
nvidia-smi的输出选择兼容的 CUDA Toolkit 版本进行安装。
遇到问题时,dmesg 和 lsmod 是最重要的诊断工具。