From 7c2dcb6220101b525a92773cd4c2a0d9ba24d8ed Mon Sep 17 00:00:00 2001 From: ManInDark <61268856+ManInDark@users.noreply.github.com> Date: Sat, 20 Dec 2025 16:10:04 +0100 Subject: [PATCH] FIX: change nvidia driver integration to ublue-os/main version --- Containerfile | 7 ++ README.md | 2 +- build_files/initramfs.sh | 14 ++-- build_files/nvidia.sh | 152 ++++++++++++++++++++++++--------------- 4 files changed, 108 insertions(+), 67 deletions(-) diff --git a/Containerfile b/Containerfile index e7f714e..24f3d20 100644 --- a/Containerfile +++ b/Containerfile @@ -1,6 +1,10 @@ FROM scratch AS ctx COPY build_files / +FROM ghcr.io/ublue-os/akmods:main-43 AS akmods + +FROM ghcr.io/ublue-os/akmods-nvidia-open:main-43 AS akmods_nvidia + FROM ghcr.io/ublue-os/base-main:43 RUN rm -r /opt && mkdir /opt @@ -9,6 +13,9 @@ RUN --mount=type=bind,from=ctx,source=/,target=/ctx \ --mount=type=cache,dst=/var/cache \ --mount=type=cache,dst=/var/log \ --mount=type=tmpfs,dst=/tmp \ + --mount=type=bind,from=akmods,src=/rpms/ublue-os,dst=/tmp/akmods-rpms \ + --mount=type=bind,from=akmods,src=/kernel-rpms,dst=/tmp/kernel-rpms \ + --mount=type=bind,from=akmods_nvidia,src=/rpms,dst=/tmp/akmods-nv-rpms \ /ctx/nvidia.sh RUN --mount=type=bind,from=ctx,source=/,target=/ctx \ diff --git a/README.md b/README.md index e5e8d35..65a9faf 100644 --- a/README.md +++ b/README.md @@ -88,4 +88,4 @@ It is possible to keep a revision by pinning it: `ostree admin pin 0` ### Notes -Those also include links that didn't work out in the end for various reasons, the one I use now is based on extracting the relevant parts of the bluefin scripts. +Those also include links that didn't work out in the end for various reasons, the one I use now is based on ublue-os/main scripts. diff --git a/build_files/initramfs.sh b/build_files/initramfs.sh index 1c2c424..251205e 100755 --- a/build_files/initramfs.sh +++ b/build_files/initramfs.sh @@ -1,14 +1,10 @@ #!/usr/bin/bash -# https://github.com/ublue-os/bluefin/blob/ba5d621270982b245343abcae47b3393cc5cffb8/build_files/base/19-initramfs.sh -echo "::group:: ===$(basename "$0")===" +set -eoux pipefail -set -oue pipefail +KERNEL_VERSION="$(rpm -q --queryformat="%{evr}.%{arch}" kernel-core)" -KERNEL_SUFFIX="" -QUALIFIED_KERNEL="$(rpm -qa | grep -P 'kernel-(|'"$KERNEL_SUFFIX"'-)(\d+\.\d+\.\d+)' | sed -E 's/kernel-(|'"$KERNEL_SUFFIX"'-)//')" +# Ensure Initramfs is generated export DRACUT_NO_XATTR=1 -/usr/bin/dracut --no-hostonly --kver "$QUALIFIED_KERNEL" --reproducible -v --add ostree -f "/lib/modules/$QUALIFIED_KERNEL/initramfs.img" -chmod 0600 "/lib/modules/$QUALIFIED_KERNEL/initramfs.img" - -echo "::endgroup::" \ No newline at end of file +/usr/bin/dracut --no-hostonly --kver "${KERNEL_VERSION}" --reproducible -v --add ostree -f "/lib/modules/${KERNEL_VERSION}/initramfs.img" +chmod 0600 "/lib/modules/${KERNEL_VERSION}/initramfs.img" \ No newline at end of file diff --git a/build_files/nvidia.sh b/build_files/nvidia.sh index b2f9e85..e6854d8 100755 --- a/build_files/nvidia.sh +++ b/build_files/nvidia.sh @@ -1,65 +1,103 @@ -#!/usr/bin/bash -# based on https://raw.githubusercontent.com/ublue-os/bluefin/ba5d621270982b245343abcae47b3393cc5cffb8/build_files/base/03-install-kernel-akmods.sh +#!/bin/bash -echo "::group:: ===$(basename "$0")===" +set -ouex pipefail -# Set Variables -export AKMODS_FLAVOR=main -export KERNEL="6.17.9-300.fc43.x86_64" -export IMAGE_NAME="" +FRELEASE="$(rpm -E %fedora)" +: "${AKMODNV_PATH:=/tmp/akmods-nv-rpms}" -set -eoux pipefail -# Remove Existing Kernel -for pkg in kernel kernel-core kernel-modules kernel-modules-core kernel-modules-extra; do - rpm --erase $pkg --nodeps -done +# this is only to aid in human understanding of any issues in CI +find "${AKMODNV_PATH}"/ -# Fetch Common AKMODS & Kernel RPMS -skopeo copy --retry-times 3 docker://ghcr.io/ublue-os/akmods:"${AKMODS_FLAVOR}"-"$(rpm -E %fedora)"-"${KERNEL}" dir:/tmp/akmods -AKMODS_TARGZ=$(jq -r '.layers[].digest' /dev/null; then + echo "Requires dnf5... Exiting" + exit 1 fi -# Install Nvidia RPMs -curl -sSL "https://raw.githubusercontent.com/ublue-os/main/main/build_files/nvidia-install.sh" -o /tmp/nvidia-install.sh -chmod +x /tmp/nvidia-install.sh -/tmp/nvidia-install.sh -rm -f /usr/share/vulkan/icd.d/nouveau_icd.*.json -ln -sf libnvidia-ml.so.1 /usr/lib64/libnvidia-ml.so -tee /usr/lib/bootc/kargs.d/00-nvidia.toml <