From 6f4736d4f92579b3821802225678aa6f899115ca Mon Sep 17 00:00:00 2001 From: honjow Date: Fri, 12 Apr 2024 12:58:30 +0800 Subject: [PATCH] Support microcode hook from https://github.com/ChimeraOS/frzr/pull/57 --- __frzr-deploy | 28 +++++++++++++++++++--------- frzr-initramfs | 14 ++++++++++---- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/__frzr-deploy b/__frzr-deploy index 532b9c0..77101c3 100644 --- a/__frzr-deploy +++ b/__frzr-deploy @@ -636,16 +636,26 @@ main() { echo "show boot files" ls -R ${SUBVOL}/boot/ - AMD_UCODE="" - if [ -e ${SUBVOL}/boot/amd-ucode.img ] ; then - cp ${SUBVOL}/boot/amd-ucode.img ${MOUNT_PATH}/boot/${NAME} - AMD_UCODE="initrd /${NAME}/amd-ucode.img" - fi + # now that the initramfs has been built determine if that includes microcode + AMD_UCODE="# missing intel-ucode" + INTEL_UCODE="# missing intel-ucode" + + if grep -q "microcode" "/etc/mkinitcpio.conf"; then + echo "microcode hook present: will skip systemd-boot initrd." + + AMD_UCODE="# amd-ucode in initramfs" + INTEL_UCODE="# intel-ucode in initramfs" + else + echo "microcode hook not found: will use systemd-bood initrd." + if [ -e ${SUBVOL}/boot/amd-ucode.img ] ; then + cp ${SUBVOL}/boot/amd-ucode.img ${MOUNT_PATH}/boot/${NAME} + AMD_UCODE="initrd /${NAME}/amd-ucode.img" + fi - INTEL_UCODE="" - if [ -e ${SUBVOL}/boot/intel-ucode.img ] ; then - cp ${SUBVOL}/boot/intel-ucode.img ${MOUNT_PATH}/boot/${NAME} - INTEL_UCODE="initrd /${NAME}/intel-ucode.img" + if [ -e ${SUBVOL}/boot/intel-ucode.img ] ; then + cp ${SUBVOL}/boot/intel-ucode.img ${MOUNT_PATH}/boot/${NAME} + INTEL_UCODE="initrd /${NAME}/intel-ucode.img" + fi fi ADDITIONAL_ARGUMENTS="" diff --git a/frzr-initramfs b/frzr-initramfs index 0e442d8..eaac59d 100755 --- a/frzr-initramfs +++ b/frzr-initramfs @@ -7,6 +7,11 @@ if [ $EUID -ne 0 ]; then exit 1 fi +microcode_flag="" +if grep -q "microcode" "/etc/mkinitcpio.conf"; then + microcode_flag="# " +fi + # Check if script is being ran frmo the install media if [ -d /tmp/frzr_root ]; then @@ -27,7 +32,7 @@ if [ -d /tmp/frzr_root ]; then echo ' ALL_config="/etc/mkinitcpio.conf" ALL_kver="/boot/vmlinuz-linux" -ALL_microcode=(/boot/*-ucode.img) +${microcode_flag}ALL_microcode=(/boot/*-ucode.img) PRESETS="default" @@ -98,7 +103,7 @@ if [ -d /frzr_root ]; then echo ' ALL_config="/etc/mkinitcpio.conf" ALL_kver="/boot/vmlinuz-linux" -ALL_microcode=(/boot/*-ucode.img) +${microcode_flag}ALL_microcode=(/boot/*-ucode.img) PRESETS="default" @@ -116,7 +121,7 @@ EOF echo ' ALL_config="/etc/mkinitcpio.conf" ALL_kver="/efi/'$BUILD'/vmlinuz-linux" -ALL_microcode=(/efi/'$BUILD'/*-ucode.img) +'${microcode_flag}'ALL_microcode=(/efi/'$BUILD'/*-ucode.img) PRESETS="default" @@ -128,7 +133,7 @@ default_image="/efi/initramfs-linux.img" echo ' ALL_config="/etc/mkinitcpio.conf" ALL_kver="/boot/'$BUILD'/vmlinuz-linux" -ALL_microcode=(/boot/'$BUILD'/*-ucode.img) +'${microcode_flag}'ALL_microcode=(/boot/'$BUILD'/*-ucode.img) PRESETS="default" @@ -148,6 +153,7 @@ default_image="/boot/'$BUILD'/initramfs-linux.img" if [[ -d /efi/$BUILD ]]; then cp /efi/$BUILD/* /efi + cp /efi/$BUILD/* /boot fi fi fi