diff options
| author | nippy <you@example.com> | 2026-04-12 16:43:55 +0200 |
|---|---|---|
| committer | nippy <you@example.com> | 2026-04-12 16:43:55 +0200 |
| commit | 8e94c144b376015cf67750bbf2727204c4bb213b (patch) | |
| tree | 8961ba989c1b4cf9fa3d7174d1e29ec3324b9362 /raveos-calamares-theme/etc/calamares/modules/calamares-microcode-fix.sh | |
| parent | e023d81615abfeaaac7a22807f7d722072280ea8 (diff) | |
| download | RaveOS-PKGBUILD-8e94c144b376015cf67750bbf2727204c4bb213b.tar.gz RaveOS-PKGBUILD-8e94c144b376015cf67750bbf2727204c4bb213b.zip | |
update Live
Diffstat (limited to 'raveos-calamares-theme/etc/calamares/modules/calamares-microcode-fix.sh')
| -rw-r--r-- | raveos-calamares-theme/etc/calamares/modules/calamares-microcode-fix.sh | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/raveos-calamares-theme/etc/calamares/modules/calamares-microcode-fix.sh b/raveos-calamares-theme/etc/calamares/modules/calamares-microcode-fix.sh new file mode 100644 index 0000000..9915bc6 --- /dev/null +++ b/raveos-calamares-theme/etc/calamares/modules/calamares-microcode-fix.sh @@ -0,0 +1,75 @@ +#!/bin/bash +set -e + +echo ">>> [microcode-fix] Running INSIDE target system" + +VENDOR=$(awk -F: '/vendor_id/ {print $2; exit}' /proc/cpuinfo | xargs) +echo ">>> [microcode-fix] Detected CPU vendor: ${VENDOR}" + +if [[ "${VENDOR}" == "GenuineIntel" ]]; then + PKG="intel-ucode" + UCODE_IMG="/boot/intel-ucode.img" + UCODE_LINE="initrd /intel-ucode.img" +elif [[ "${VENDOR}" == "AuthenticAMD" ]]; then + PKG="amd-ucode" + UCODE_IMG="/boot/amd-ucode.img" + UCODE_LINE="initrd /amd-ucode.img" +else + echo ">>> [microcode-fix] Unknown vendor, skipping." + exit 0 +fi + +echo ">>> [microcode-fix] Installing microcode package: ${PKG}" +pacman -Sy --noconfirm "${PKG}" || true + +if [[ "${VENDOR}" == "AuthenticAMD" ]]; then + echo ">>> [microcode-fix] Installing zenpower5-dkms-git + deps..." + + pacman -Syy --noconfirm || true + + pacman -S --noconfirm dkms linux-cachyos-headers zenpower5-dkms-git || true + + echo ">>> [microcode-fix] Enabling zenpower module autoload..." + mkdir -p /etc/modules-load.d + echo "zenpower" > /etc/modules-load.d/zenpower.conf + + echo ">>> [microcode-fix] DKMS autoinstall..." + dkms autoinstall || true + + echo ">>> [microcode-fix] Rebuilding initramfs..." + mkinitcpio -P || true + + echo ">>> [microcode-fix] zenpower package check:" + pacman -Q zenpower5-dkms-git 2>/dev/null && echo ">>> zenpower OK" || echo ">>> zenpower MISSING" +fi + + +if [ ! -f "${UCODE_IMG}" ]; then + echo ">>> [microcode-fix] Missing ${UCODE_IMG}, skipping entry patch." + exit 0 +fi + +ENTRYDIR="/boot/loader/entries" +echo ">>> [microcode-fix] Entry dir: ${ENTRYDIR}" + +[ -d "${ENTRYDIR}" ] || exit 0 + +for f in "${ENTRYDIR}"/*.conf; do + [ -f "$f" ] || continue + echo ">>> [microcode-fix] Patching: $f" + + if grep -qE '^initrd[[:space:]]+/amd-ucode\.img$' "$f" || grep -qE '^initrd[[:space:]]+/intel-ucode\.img$' "$f"; then + echo ">>> [microcode-fix] Already has microcode initrd, skipping: $f" + continue + fi + + tmp="$(mktemp)" + { + echo "${UCODE_LINE}" + cat "$f" + } > "$tmp" + cat "$tmp" > "$f" + rm -f "$tmp" +done + +echo ">>> [microcode-fix] Done." |