From 7d1f4e811d0faecceff614e2cae112b141aa9034 Mon Sep 17 00:00:00 2001 From: ManInDark <61268856+ManInDark@users.noreply.github.com> Date: Sat, 10 Jan 2026 15:34:53 +0100 Subject: [PATCH] feat: turns out you can just use base-nvidia for the drivers --- Containerfile | 21 +------ build_files/00_nvidia.sh | 103 ---------------------------------- build_files/01_pre_desktop.sh | 4 +- build_files/04_initramfs.sh | 10 ---- 4 files changed, 3 insertions(+), 135 deletions(-) delete mode 100755 build_files/00_nvidia.sh delete mode 100755 build_files/04_initramfs.sh diff --git a/Containerfile b/Containerfile index 4e87098..3339063 100644 --- a/Containerfile +++ b/Containerfile @@ -1,23 +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 +FROM ghcr.io/ublue-os/base-nvidia:43 RUN rm -r /opt && mkdir /opt -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/00_nvidia.sh - RUN --mount=type=bind,from=ctx,source=/,target=/ctx \ --mount=type=cache,dst=/var/cache \ --mount=type=cache,dst=/var/log \ @@ -38,10 +25,4 @@ RUN --mount=type=bind,from=ctx,source=/,target=/ctx \ --mount=type=tmpfs,dst=/tmp \ /ctx/03_post_desktop.sh -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 \ - /ctx/04_initramfs.sh - RUN bootc container lint diff --git a/build_files/00_nvidia.sh b/build_files/00_nvidia.sh deleted file mode 100755 index e6854d8..0000000 --- a/build_files/00_nvidia.sh +++ /dev/null @@ -1,103 +0,0 @@ -#!/bin/bash - -set -ouex pipefail - -FRELEASE="$(rpm -E %fedora)" -: "${AKMODNV_PATH:=/tmp/akmods-nv-rpms}" - - -# this is only to aid in human understanding of any issues in CI -find "${AKMODNV_PATH}"/ - -if ! command -v dnf5 >/dev/null; then - echo "Requires dnf5... Exiting" - exit 1 -fi - -# Check if any rpmfusion repos exist before trying to disable them -if dnf5 repolist --all | grep -q rpmfusion; then - dnf5 config-manager setopt "rpmfusion*".enabled=0 -fi - -# Always try to disable cisco repo (or add similar check) -dnf5 config-manager setopt fedora-cisco-openh264.enabled=0 - -## nvidia install steps -dnf5 install -y "${AKMODNV_PATH}"/ublue-os/ublue-os-nvidia-addons-*.rpm - -# Install MULTILIB packages from negativo17-multimedia prior to disabling repo - -MULTILIB=( - mesa-dri-drivers.i686 - mesa-filesystem.i686 - mesa-libEGL.i686 - mesa-libGL.i686 - mesa-libgbm.i686 - mesa-va-drivers.i686 - mesa-vulkan-drivers.i686 -) - -dnf5 install -y "${MULTILIB[@]}" - -# enable repos provided by ublue-os-nvidia-addons (not enabling fedora-nvidia-lts) -dnf5 config-manager setopt fedora-nvidia.enabled=1 nvidia-container-toolkit.enabled=1 - -# Disable Multimedia -NEGATIVO17_MULT_PREV_ENABLED=N -if dnf5 repolist --enabled | grep -q "fedora-multimedia"; then - NEGATIVO17_MULT_PREV_ENABLED=Y - echo "disabling negativo17-fedora-multimedia to ensure negativo17-fedora-nvidia is used" - dnf5 config-manager setopt fedora-multimedia.enabled=0 -fi - -# Enable staging for supergfxctl if repo file exists -if [[ -f /etc/yum.repos.d/_copr_ublue-os-staging.repo ]]; then - sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-staging.repo -else - # Otherwise, retrieve the repo file for staging - curl -Lo /etc/yum.repos.d/_copr_ublue-os-staging.repo https://copr.fedorainfracloud.org/coprs/ublue-os/staging/repo/fedora-"${FRELEASE}"/ublue-os-staging-fedora-"${FRELEASE}".repo -fi - -source "${AKMODNV_PATH}"/kmods/nvidia-vars - -dnf5 install -y \ - libnvidia-fbc \ - libnvidia-ml.i686 \ - libva-nvidia-driver \ - nvidia-driver \ - nvidia-driver-cuda \ - nvidia-driver-cuda-libs.i686 \ - nvidia-driver-libs.i686 \ - nvidia-settings \ - nvidia-container-toolkit \ - "${AKMODNV_PATH}"/kmods/kmod-nvidia-"${KERNEL_VERSION}"-"${NVIDIA_AKMOD_VERSION}"."${DIST_ARCH}".rpm - -# Ensure the version of the Nvidia module matches the driver -KMOD_VERSION="$(rpm -q --queryformat '%{VERSION}' kmod-nvidia)" -DRIVER_VERSION="$(rpm -q --queryformat '%{VERSION}' nvidia-driver)" -if [ "$KMOD_VERSION" != "$DRIVER_VERSION" ]; then - echo "Error: kmod-nvidia version ($KMOD_VERSION) does not match nvidia-driver version ($DRIVER_VERSION)" - exit 1 -fi - -## nvidia post-install steps -# disable repos provided by ublue-os-nvidia-addons -dnf5 config-manager setopt fedora-nvidia.enabled=0 fedora-nvidia-lts.enabled=0 nvidia-container-toolkit.enabled=0 - -# Disable staging -sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_ublue-os-staging.repo - -systemctl enable ublue-nvctk-cdi.service -semodule --verbose --install /usr/share/selinux/packages/nvidia-container.pp - -# Universal Blue specific Initramfs fixes -cp /etc/modprobe.d/nvidia-modeset.conf /usr/lib/modprobe.d/nvidia-modeset.conf -# we must force driver load to fix black screen on boot for nvidia desktops -sed -i 's@omit_drivers@force_drivers@g' /usr/lib/dracut/dracut.conf.d/99-nvidia.conf -# as we need forced load, also mustpre-load intel/amd iGPU else chromium web browsers fail to use hardware acceleration -sed -i 's@ nvidia @ i915 amdgpu nvidia @g' /usr/lib/dracut/dracut.conf.d/99-nvidia.conf - -# re-enable negativo17-mutlimedia since we disabled it -if [[ "${NEGATIVO17_MULT_PREV_ENABLED}" = "Y" ]]; then - dnf5 config-manager setopt fedora-multimedia.enabled=1 -fi \ No newline at end of file diff --git a/build_files/01_pre_desktop.sh b/build_files/01_pre_desktop.sh index d7ecad5..dedb015 100755 --- a/build_files/01_pre_desktop.sh +++ b/build_files/01_pre_desktop.sh @@ -9,5 +9,5 @@ echo "LANG=de_DE.UTF-8" >> /etc/default/locale ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime ln -s /usr/bin/xdg-open /usr/bin/open -dnf5 update -y --setopt=install_weak_deps=False -dnf5 install -y man-pages man-db glibc-langpack-en glibc-langpack-de default-fonts-cjk plymouth git \ No newline at end of file +# dnf5 update -y --setopt=install_weak_deps=False --setopt=install_deps=False +dnf5 install -y man-pages man-db glibc-langpack-en glibc-langpack-de default-fonts-cjk plymouth git diff --git a/build_files/04_initramfs.sh b/build_files/04_initramfs.sh deleted file mode 100755 index 251205e..0000000 --- a/build_files/04_initramfs.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/bash - -set -eoux pipefail - -KERNEL_VERSION="$(rpm -q --queryformat="%{evr}.%{arch}" kernel-core)" - -# Ensure Initramfs is generated -export DRACUT_NO_XATTR=1 -/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