Closed AndrewAmmerlaan closed 3 months ago
Hello. thank you for heads up! Will take a look at this.
Thanks, one small remark from my side, I think the elif should be an if, because it is not uncommon to have both microcode packages installed (especially on intel systems). If it magically prefers one over the other we might end up accidentally omitting the microcode we actually want.
Indeed, now if there are both installed, it will prefer amd by default.
I did it this way because I'm not sure if loading both will not cause conflicts. Hence if both are installed and only intel one is needed. amd one can be ignore via the inbuilt mechanism.
However if loading both doesn't cause conflicts I'll change it to two ifs.
Loading both should be fine. AFAIK you can have as many initrd=
as you want on the cmdline.
In that case, I'll change it.
Great, Thanks!
Dracut by default includes CPU microcode in the initramfs image. However for kernels without an initramfs, or with an initramfs not generated with dracut. We need to update the CPU mircrocode in some other way.
sys-kernel/linux-firmware[initramfs,-dist-kernel]
andsys-firmware/intel-microcode[initramfs,-dist-kernel]
currently install/boot/amd-uc.img
and/boot/intel-uc.img
. This already works with GRUB, and the next version of installkernel will also be capable of passing this on so it can be used in systemd-boot, UKIs, and efistub.These images will be
ESP/EFI/Gentoo/amd-uc.img
andESP/EFI/Gentoo/intel-uc.img
(i.e. in the same directory as the kernel image). If these images are present, then we should specify them in the efi entry with additionalinitrd=...
arguments. Note that these early microcode images should be specified before any regular initramfs we find.