summaryrefslogtreecommitdiff
path: root/akmods/build_nvidia.sh
diff options
context:
space:
mode:
authorseth <[email protected]>2024-01-19 22:17:31 -0500
committerseth <[email protected]>2024-01-20 05:56:19 -0500
commit290a84e86b2f2c3cb1403f94eff416e74d536abd (patch)
treeea3a3138e6949905c2a4e60e8e5905d3f6412867 /akmods/build_nvidia.sh
initial commit
Diffstat (limited to 'akmods/build_nvidia.sh')
-rwxr-xr-xakmods/build_nvidia.sh28
1 files changed, 28 insertions, 0 deletions
diff --git a/akmods/build_nvidia.sh b/akmods/build_nvidia.sh
new file mode 100755
index 0000000..1931149
--- /dev/null
+++ b/akmods/build_nvidia.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+set -euxo pipefail
+
+_usage="
+usage: ./build_nvidia.sh nvidia_driver_version
+"
+
+if [ $# -lt 1 ]; then
+ echo "$_usage"
+ exit 1
+fi
+
+NVIDIA_VERSION="$1"
+release="$(rpm -E '%fedora.%_arch')"
+
+rpm-ostree install \
+ akmod-nvidia-"$NVIDIA_VERSION"* \
+ xorg-x11-drv-nvidia-{cuda,power}-"$NVIDIA_VERSION"* \
+
+# Either successfully build and install the kernel modules, or fail early with debug output
+kernel_version="$(rpm -q kernel --queryformat '%{VERSION}-%{RELEASE}.%{ARCH}')"
+akmod_version="$(basename "$(rpm -q akmod-nvidia --queryformat '%{VERSION}-%{RELEASE}')" ".fc${release%%.*}")"
+
+akmods --force --kernels "$kernel_version" --kmod nvidia
+
+if ! modinfo /usr/lib/modules/"$kernel_version"/extra/nvidia/nvidia{,-drm,-modeset,-peermem,-uvm}.ko.xz &> /dev/null; then
+ cat /var/cache/akmods/nvidia/"$akmod_version"-for-"$kernel_version".failed.log && exit 1
+fi