mirror of
https://github.com/ManInDark/bootc-image.git
synced 2026-01-21 06:54:28 +01:00
66 lines
2.5 KiB
Bash
Executable File
66 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/bash
|
|
# based on https://raw.githubusercontent.com/ublue-os/bluefin/ba5d621270982b245343abcae47b3393cc5cffb8/build_files/base/03-install-kernel-akmods.sh
|
|
|
|
echo "::group:: ===$(basename "$0")==="
|
|
|
|
# Set Variables
|
|
export AKMODS_FLAVOR=main
|
|
export KERNEL="6.17.9-300.fc43.x86_64"
|
|
export IMAGE_NAME=""
|
|
|
|
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
|
|
|
|
# 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' </tmp/akmods/manifest.json | cut -d : -f 2)
|
|
tar -xvzf /tmp/akmods/"$AKMODS_TARGZ" -C /tmp/
|
|
mv /tmp/rpms/* /tmp/akmods/
|
|
# NOTE: kernel-rpms should auto-extract into correct location
|
|
|
|
# Install Kernel
|
|
dnf5 -y install \
|
|
/tmp/kernel-rpms/kernel-[0-9]*.rpm \
|
|
/tmp/kernel-rpms/kernel-core-*.rpm \
|
|
/tmp/kernel-rpms/kernel-modules-*.rpm
|
|
|
|
# TODO: Figure out why akmods cache is pulling in akmods/kernel-devel
|
|
dnf5 -y install \
|
|
/tmp/kernel-rpms/kernel-devel-*.rpm
|
|
|
|
dnf5 versionlock add kernel kernel-devel kernel-devel-matched kernel-core kernel-modules kernel-modules-core kernel-modules-extra
|
|
|
|
# Everyone
|
|
# NOTE: we won't use dnf5 copr plugin for ublue-os/akmods until our upstream provides the COPR standard naming
|
|
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo
|
|
|
|
# Nvidia AKMODS
|
|
|
|
# Fetch Nvidia RPMs
|
|
skopeo copy --retry-times 3 docker://ghcr.io/ublue-os/akmods-nvidia-open:"${AKMODS_FLAVOR}"-"$(rpm -E %fedora)"-"${KERNEL}" dir:/tmp/akmods-rpms
|
|
NVIDIA_TARGZ=$(jq -r '.layers[].digest' </tmp/akmods-rpms/manifest.json | cut -d : -f 2)
|
|
tar -xvzf /tmp/akmods-rpms/"$NVIDIA_TARGZ" -C /tmp/
|
|
mv /tmp/rpms/* /tmp/akmods-rpms/
|
|
|
|
# Monkey patch right now...
|
|
if ! grep -q negativo17 <(rpm -qi mesa-dri-drivers); then
|
|
dnf5 -y swap --repo=updates-testing \
|
|
mesa-dri-drivers mesa-dri-drivers
|
|
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 <<EOF
|
|
kargs = ["rd.driver.blacklist=nouveau", "modprobe.blacklist=nouveau", "nvidia-drm.modeset=1", "initcall_blacklist=simpledrm_platform_driver_init"]
|
|
EOF
|
|
|
|
echo "::endgroup::"
|