LukeShortCloud / rootpages

Root Pages is a collection of easy-to-reference tutorials and guides primarily for Linux and other UNIX-like systems.
Other
56 stars 6 forks source link

[graphics][graphics_drivers] Build NVIDIA kmod #1019

Open LukeShortCloud opened 1 year ago

LukeShortCloud commented 1 year ago

Instead of providing an akmod package for client-side builds, explain how to use a kmod package for server-side pre-builds. NVIDIA has made a few open source projects to help assist with this.

https://developer.download.nvidia.com/presentations/2020/gtc-fall/Precompiled_Kernel_Modules_Packaging_and_Deployment_on_RHEL8_with_Modularity_Streams.pdf https://github.com/nvidia/yum-packaging-precompiled-kmod https://github.com/nvidia/yum-packaging-nvidia-plugin

LukeShortCloud commented 1 year ago

Some observations of using the yum-packaging-precompiled-kmod script:

# Kernel defaults
kernel=$(uname -r | awk -F '-' '{print $1}')
release=$(uname -r | awk -F '-' '{print $2}' | sed -r 's|\.[a-z]{2}[0-9]+| |' | awk '{print $1}')
dist=$(uname -r | awk -F '-' '{print $2}' | sed -r -e 's|\.[a-z]{2}[0-9]+| &|' -e "s|\.${arch}||" | awk '{print $2}')
LukeShortCloud commented 1 year ago

Example packages built using Linux kernel 6.4.10-200 from Fedora and NVIDIA driver version 535.54.03:

$ ls -1 ~/precompiled-kmod/repo/
cuda-compat-12-2-535.54.03-1.x86_64.rpm
cuda-drivers-535.54.03-1.x86_64.rpm
cuda-drivers-fabricmanager-535-535.54.03-1.x86_64.rpm
cuda-drivers-fabricmanager-535.54.03-1.x86_64.rpm
dnf-plugin-nvidia-2.0-1.el8.noarch.rpm
kmod-nvidia-535.54.03-4.18.0-477.15.1-535.54.03-3.el8_8.x86_64.rpm
kmod-nvidia-535.54.03-6.4.10-200-535.54.03-3.fc38.x86_64.rpm
kmod-nvidia-535.86.05-6.4.10-200-535.86.05-3.fc38.x86_64.rpm
kmod-nvidia-latest-dkms-535.54.03-1.el8.x86_64.rpm
kmod-nvidia-open-dkms-535.54.03-1.el8.x86_64.rpm
libnvidia-nscq-535-535.54.03-1.x86_64.rpm
nvidia-driver-535.54.03-1.el8.x86_64.rpm
nvidia-driver-NVML-535.54.03-1.el8.i686.rpm
nvidia-driver-NVML-535.54.03-1.el8.x86_64.rpm
nvidia-driver-NvFBCOpenGL-535.54.03-1.el8.i686.rpm
nvidia-driver-NvFBCOpenGL-535.54.03-1.el8.x86_64.rpm
nvidia-driver-cuda-535.54.03-1.el8.x86_64.rpm
nvidia-driver-cuda-libs-535.54.03-1.el8.i686.rpm
nvidia-driver-cuda-libs-535.54.03-1.el8.x86_64.rpm
nvidia-driver-devel-535.54.03-1.el8.i686.rpm
nvidia-driver-devel-535.54.03-1.el8.x86_64.rpm
nvidia-driver-libs-535.54.03-1.el8.i686.rpm
nvidia-driver-libs-535.54.03-1.el8.x86_64.rpm
nvidia-fabric-manager-535.54.03-1.x86_64.rpm
nvidia-fabric-manager-devel-535.54.03-1.x86_64.rpm
nvidia-kmod-common-535.54.03-1.el8.noarch.rpm
nvidia-kmod-headers-535.54.03-1.el8.x86_64.rpm
nvidia-kmod-source-535.54.03-1.el8.x86_64.rpm
nvidia-libXNVCtrl-535.54.03-1.el8.x86_64.rpm
nvidia-libXNVCtrl-devel-535.54.03-1.el8.x86_64.rpm
nvidia-modprobe-535.54.03-1.el8.x86_64.rpm
nvidia-persistenced-535.54.03-1.el8.x86_64.rpm
nvidia-settings-535.54.03-1.el8.x86_64.rpm
nvidia-xconfig-535.54.03-1.el8.x86_64.rpm
repodata