ubuntu 22.04安装 cuda 12.8.2

📅 2026/7/25 3:37:14
ubuntu 22.04安装 cuda 12.8.2
1. nouveau根本问题是Nouveau开源 NVIDIA 驱动正在运行与你要安装的专有 NVIDIA 驱动 570.211.01 冲突。安装程序检测到后主动中止了。日志中的关键线索WARNING: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver, and must be disabled before proceeding.解决步骤第一步禁用 Nouveau 并重建 initramfs# 1. 创建/确认 Nouveau 黑名单配置sudobash-ccat /etc/modprobe.d/blacklist-nouveau.conf EOF blacklist nouveau options nouveau modeset0 EOF# 2. 重建 initramfssudoupdate-initramfs-u# 3. 重启系统sudoreboot第二步重启后验证 Nouveau 已卸载# 确认 nouveau 不在内核模块列表中lsmod|grepnouveau# 应该没有任何输出。如果有输出说明还在运行需要再检查第三步重新运行 CUDA 安装重启后在纯文本终端TTY下执行先关闭图形界面# 进入纯文本模式关闭图形界面sudosystemctl isolate multi-user.target# 运行安装只装 CUDA不装驱动或者先单独装驱动sudobash./cuda_12.8.2_570.211.01_linux.run --no-opengl-libs# 安装完成后恢复图形界面sudosystemctl start graphical.target⚠️ 额外注意点日志中还有一条警告An alternate method of installing the NVIDIA driver was detected.这说明你的系统里可能已经通过 apt 安装过 NVIDIA 驱动。如果你之前运行过类似sudo apt install nvidia-driver-xxx的命令建议先卸载避免与 .run 安装包冲突# 先清理已有的 NVIDIA 驱动包sudoaptpurge nvidia* libnvidia*sudoaptautoremovesudoreboot然后再按上面的步骤重新安装。总结问题原因解决安装失败Nouveau 驱动仍在运行黑名单 → 重建 initramfs → 重启可能冲突系统已有 apt 安装的 NVIDIA 驱动apt purge nvidia*清理后重装最佳实践图形界面下安装驱动容易失败切到multi-user.target纯文本模式安装执行完第一步重启后Nouveau 就会被彻底禁用再运行 CUDA 安装即可成功。2. gcc-12根本问题是GCC 编译器版本不匹配。你的系统默认 GCC 是11.4.0但内核6.8.0-40-generic是用GCC 12编译的。内核构建系统继承了一个 GCC 12 才支持的选项-ftrivial-auto-var-initzero而 GCC 11 不认识它导致 NVIDIA 驱动模块编译失败。解决步骤第一步安装 GCC-12 和 G±12sudoaptupdatesudoaptinstallgcc-12 g-12-y第二步将 GCC-12 设为默认编译器方式 A推荐用 update-alternativessudoupdate-alternatives--install/usr/bin/gcc gcc /usr/bin/gcc-12100--slave/usr/bin/g g /usr/bin/g-12sudoupdate-alternatives--install/usr/bin/gcc gcc /usr/bin/gcc-1150--slave/usr/bin/g g /usr/bin/g-11方式 B直接改 cc 软链接更粗暴但有效sudoln-sf/usr/bin/gcc-12 /usr/bin/cc第三步验证版本gcc--versioncc--version确认输出显示gcc 12.x.x。第四步清理后重新安装# 先清理上次失败的残留sudobash./cuda_12.8.2_570.211.01_linux.run--silent--driver--toolkit--override# 或者只重装驱动sudobash./cuda_12.8.2_570.211.01_linux.run--silent--driver--override如果之前已经通过.run文件部分安装过建议先用--uninstall清理sudobash./cuda_12.8.2_570.211.01_linux.run--uninstall为什么不用降级内核降级到 5.15 内核确实能避开这个问题因为 5.15 用 GCC 11 编译但你当前的内核 6.8 是 Ubuntu 22.04 的 HWE 内核升级 GCC 到 12 是更干净的做法既能保留新内核特性又一劳永逸。总结问题根因解决-ftrivial-auto-var-initzero不认识GCC 11 不支持该选项内核 6.8 需要 GCC 12apt install gcc-12 g-12 设为默认执行完上述步骤后驱动编译应该就能通过了。