国产化系统AI环境避坑完整版: openEuler22.03 一键安装NVIDIA驱动+CUDA+Conda

目录

  • 一、前期准备(必做!规避90%报错)
    • [1.1 系统环境检查](#1.1 系统环境检查)
    • [1.2 关闭系统自带图形界面&禁用nouveau](#1.2 关闭系统自带图形界面&禁用nouveau)
    • [1.3 安装依赖工具](#1.3 安装依赖工具)
  • 二、安装NVIDIA官方显卡驱动
    • [2.1 选择适配驱动版本](#2.1 选择适配驱动版本)
    • [2.2 命令行安装驱动](#2.2 命令行安装驱动)
    • [2.3 验证驱动](#2.3 验证驱动)
  • [三、安装CUDA Toolkit(版本匹配关键)](#三、安装CUDA Toolkit(版本匹配关键))
    • [3.1 下载适配的CUDA](#3.1 下载适配的CUDA)
    • [3.2 命令行安装CUDA](#3.2 命令行安装CUDA)
    • [3.3 验证CUDA](#3.3 验证CUDA)
  • 四、安装Conda
    • [4.1 下载Conda安装包](#4.1 下载Conda安装包)
    • [4.2 执行安装](#4.2 执行安装)
    • [4.3 验证Conda](#4.3 验证Conda)
  • 五、高频踩坑总结

一、前期准备(必做!规避90%报错)

1.1 系统环境检查


openEuler国产化系统的GPU环境配置相较于Ubuntu更繁琐。首先确认系统版本,确保为openEuler22.03系列,避免版本适配问题,输出包含 openEuler 22.03 即为正常

bash 复制代码
cat /etc/os-release

查看虚拟机是否已经直通NVIDIA物理显卡

bash 复制代码
lspci | grep -i 'vga\|3d'
lspci | grep -i nvidia

1.2 关闭系统自带图形界面&禁用nouveau

openEuler默认自带开源nouveau显卡驱动,与NVIDIA官方驱动冲突,必须禁用。先查看nouveau显卡驱动是否已经被禁用

bash 复制代码
lsmod | grep nouveau

无输出即为已经禁用,无需进行下面步骤,直接到步骤1.3;若存在输出,则继续下面步骤

编辑黑名单配置文件

bash 复制代码
vi /etc/modprobe.d/blacklist-nouveau.conf

先注释掉 blacklist nvidiafb那一行

在该文件末尾写入以下内容:

bash 复制代码
blacklist nouveau
options nouveau modeset=0

更新内核并重启

bash 复制代码
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
bash 复制代码
dracut /boot/initramfs-$(uname -r).img $(uname -r)
bash 复制代码
reboot

重启后验证是否禁用成功(无输出即为成功)

bash 复制代码
lsmod | grep nouveau

1.3 安装依赖工具

openEuler需提前安装编译、内核依赖,否则驱动安装会编译失败:

bash 复制代码
dnf install -y gcc gcc-c++ kernel-devel kernel-header make cmake wget

二、安装NVIDIA官方显卡驱动

2.1 选择适配驱动版本

官网下载链接:Nvidia驱动下载,建议还是不要下载太新的驱动

2.2 命令行安装驱动

查看内核版本,查看该目录下的文件即为内核版本,记录下来

bash 复制代码
cd /usr/src/kernels/

例如我这里是5.10.0-136.12.0.86.oe2203sp1.x86_64

安装驱动,赋予安装包执行权限

bash 复制代码
chmod +x NVIDIA-Linux-x86_64-595.80.run

指定内核位置编译驱动,并且跳过图形依赖

bash 复制代码
./NVIDIA-Linux-x86_64-595.80.run --kernel-source-path=/usr/src/kernels/5.10.0-136.12.0.86.oe2203sp1.x86_64 --no-x-check --no-opengl-files

弹窗中,选择NVIDIA Proprietary,其余默认即可

2.3 验证驱动

安装完成后,执行下方命令,输出显卡信息、驱动版本即安装成功

bash 复制代码
nvidia-smi

⚠️ 重点:nvidia-smi显示的CUDA版本为驱动支持的最高CUDA版本,并非系统实际安装版本,后续需手动安装对应CUDA Toolkit

三、安装CUDA Toolkit(版本匹配关键)

3.1 下载适配的CUDA

严格遵循:本地CUDA版本 ≤ nvidia-smi显示的最高支持版本。官网下载链接:CUDA下载openEuler22.03 无专属CUDA,实测兼容 CentOS7 版本驱动

选择好版本后,浏览器直接输入下面的地址即可下载

3.2 命令行安装CUDA

先赋予权限

bash 复制代码
chmod +x cuda_12.4.0_550.54.14_linux.run

安装CUDA

bash 复制代码
./cuda_12.4.0_550.54.14_linux.run --no-opengl-libs

安装弹窗选择:Do you accept the previously read EULA? 输入 accept

在这个页面不要选择上面的Driver驱动,因为我们已经手动安装过。其余默认即可

安装完后应该是如下界面,记录下CUDA Toolkit的安装路径,例如我是Toolkit: Installed in /usr/local/cuda-12.4/

配置CUDA环境变量

bash 复制代码
vi /etc/profile

写入如下内容,需要替换为实际的安装路径

bash 复制代码
export PATH=/usr/local/cuda-12.4/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64$LD_LIBRARY_PATH

生效环境变量

bash 复制代码
source  /etc/profile

3.3 验证CUDA

安装完成后,执行下方命令,输出对应的CUDA版本即为成功

bash 复制代码
nvcc -V

四、安装Conda

openEuler安装Conda无特殊兼容问题,直接安装Linux通用版即可,用于隔离AI环境。

4.1 下载Conda安装包

选择合适的版本即可:conda下载地址

4.2 执行安装

建议利用-p指定安装地址

bash 复制代码
bash Miniconda3-py310_26.1.1-1-Linux-x86_64.sh -b -p /work/miniconda3

配置conda环境变量

bash 复制代码
vi /etc/profile

写入如下内容,需要替换为实际的安装路径

bash 复制代码
export PATH=/work/miniconda3/bin:$PATH

生效环境变量

bash 复制代码
source /etc/profile

4.3 验证Conda

安装完成后,执行下方命令,输出对应的conda版本即为成功

bash 复制代码
conda -V

五、高频踩坑总结

  1. nouveau未禁用导致驱动安装失败:必须严格执行黑名单+重启步骤,否则驱动编译报错
  2. CUDA版本不匹配:切勿安装高于nvidia-smi支持的CUDA版本
  3. 重复安装驱动冲突:安装CUDA时务必拒绝重复安装显卡驱动
  4. 服务器图形界面报错:安装驱动、CUDA时必须添加--no-opengl-libs参数