With the release of mkinitcpio v38, several hooks previously provided by Arch packages have been moved to the mkinitcpio upstream project. The hooks are: systemd, udev, encrypt, sd-encrypt, lvm2 and mdadm_udev.
To ensure no breakage of users’ setup occurs, temporary conflicts have been introduced into the respective packages to prevent installing packages that are no longer compatible.
The following packages needs to be upgraded together:
- mkinitcpio 38-3
- systemd 255.4-2
- lvm2 2.03.23-3
- mdadm 4.3-2
- cryptsetup 2.7.0-3
Please note that the mkinitcpio flag --microcode, and the microcode option in the preset files, has been deprecated in favour of a new microcode hook. This also allows you to drop the microcode initrd lines from your boot configuration as they are now packed together with the main initramfs image.
So basically:
- Update your system, don’t reboot yet
mkinitcpio.conf
--> make sure you havemicrocode
after theautodetect
in theHOOKS
line/etc/mkinitcpio.d/<kernel>.preset
--> remove the lineALL_microcode=(/boot/*-ucode.img)
- systemd-boot users:
arch.conf
--> remove or comment out theinitrd /amd-ucode.img (or intel-ucode.img)
line - Run
sudo mkinitcpio -p <kernel>
to generate your new initrd, and then reboot
Optional: run
grep microcode /proc/cpuinfo
before and after the reboot to verify that your microcode version hasn’t changed after the reboot - which means that the new microcode loading method is working correctly.On a tangential note, the above is a perfect example of why I don’t recommend Arch (and so-called “easy” derivatives like EndeavourOS) for newbies (ie people who don’t RTFM / keep up with Arch news / inspect their .pacnew files etc). Feel free to link this post in your future internet arguments. :)