openEuler 22.03LTS 安装部署nvidia open gpu driver

环境信息:

  1. 禁用开源驱动nouveau

rmmod nouveau

echo “blacklist nouveau” >> /etc/modprobe.d/blacklist.conf

  1. 下载Nvidia 驱动源码

安装时构建的内核模块必须与gsp一起使用。bin固件和用户空间NVIDIA GPU驱动程序组件来自相应的515.43.04驱动程序版本。因此在安装源码前需要安装nvidia gpu驱动。

wget https://cn.download.nvidia.cn/XFree86/aarch64/515.43.04/NVIDIA-Linux-aarch64-515.43.04.run

安装gpu驱动:

sh ./NVIDIA-Linux-[version].run --no-kernel-modules

  1. 下载Nvidia 驱动源码

wget https://cn.download.nvidia.cn/XFree86/aarch64/515.43.04/NVIDIA-Linux-aarch64-515.43.04.run

  1. 安装gpu驱动:

bash ./NVIDIA-Linux-aarch64-515.43.04.run --no-kernel-modules

  1. 下载开源驱动源码

git clone GitHub - NVIDIA/open-gpu-kernel-modules: NVIDIA Linux open GPU kernel module source

  1. 编译源码

cd open-gpu-kernel-modules-main

make modules -jnproc

  1. 安装源码

make modules_install -jnproc

  1. 编译安装nvidia驱动

cd /lib/modules/5.10.0/kernel/drivers/video/

insmod nvidia.ko

  1. 查看驱动信息

modinfo nvidia

Agenda

  1. 编译nvidia开源驱动报错,无法找到/lib/modules/4.19.90-2204.3.0.0146.oe1.aarch64/build

下载内核源码包,创建软链接指向当前下载的源码路径:

ln -s /usr/src/kernels/4.19.90-2205.1.0.0148.oe1.aarch64 /lib/modules/4.19.90-2204.3.0.0146.oe1.aarch64/build

  1. 安装nvidia驱动报错,无法找到目录/lib/modules/5.10.0

在2022/7/14使用github上最新的代码进行编译安装时,提示无法找到目录/lib/modules/5.10.0,这个是因为内核检查的是5.10.0大版本,设置软链接指向该目录即可:

ln -s /lib/modules/5.10.0-60.18.0.50.oe2203.aarch64 /lib/modules/5.10.0

  1. 安装nvidia驱动报错,内核签名校验失败

这个是内核签名校验失败,ko已经编译完成,可以进入对应目录手动安装ko文件。

cd /usr/lib/modules/${编译的内核版本}/kernel/drivers/video

insmod nvidia.ko

  1. 编译失败,出现modpost undfined error

如果使用515.43.04版本的开源驱动代码,并且在aarch64上编译,会产生如下错误。这个是程序代码问题,在 515.48.07版本中已被修复。

本次安装的gpu固件驱动版本和open gpu 版本不一致,所以无法使用相关命令,后续会在安装对应版本的固件驱动和开源驱动后重新使用,然后更新文档。

1 个赞

解决了遇到的问题,很有帮助

安装源码时,内核签名校验失败。安装说明手动安装ko,提示错误:insmod: ERROR: could not insert module nvidia.ko: No such device

find / -name nvidia.ko看下系统上是否有这个ko文件