In the past updating microcode was as easy as compiling the CONFIG_MICROCODE as a module and not integrated and, then, it was automatically updated. Now, it seems it can only be compiled into the kernel and, then, it is not updated.
Probably this was an upstream change to force people to update the microcode earlier as explained in:
There are shown some instructions to rely on an initrd (default off currently in the ebuild) to do that job. In my case I would prefer to try to get the microcode loaded directly by the kernel to not need to start using initrd only for this :/
But there are multiple places with slightly different instructions:
https://wiki.gentoo.org/wiki/Intel_microcode -> Is this some kind of "official" documentation? Because it seems to be a bit messy mixing the old methods with the new ones (many of that methods like simply having CONFIG_MICROCODE as a module look to not work now).
https://www.kernel.org/doc/Documentation/x86/early-microcode.txt -> Here are the official instructions (but I miss how to get the microcode file I need to load)
http://www.linuxfromscratch.org/blfs/view/svn/postlfs/firmware.html -> In this case I also miss how they are converting the cpu_family-model-stepping to the hexadecimal value need for early loading it :/
Could maybe this be clarified a bit? In summary, the harder part for me is how to identify the firmware you need to load and, later, suggest to load it either with the initrd or compiling it directly in the kernel
Thanks a lot :)
Today met this problem, found this issue and your old bug 479854
"intel-ucode dirctory contains binary microcode files named in family-model-stepping pattern."
For my i5-5300U it looks simple:
cpu family : 6
model : 61
stepping : 4
file is 06-3d-04
And it works with
$ fgrep EXTRA_FIRMWARE /usr/src/linux/.config
Hm... if two cpu have different stepping, extra_firmware should contain both firmware? I believe.
It worked nice for me, thanks ;)
We have created https://wiki.gentoo.org/wiki/Microcode as new official document. Still not perfect but better then the previous Wiki.
I think we are done here. If not, please re-open and tell us what you are missing/expect us to do! :-)
I would try to import:
Into https://wiki.gentoo.org/wiki/Microcode , maybe under the "Manual way" :/
Thanks a lot for your attention :)
This will be challenging: The idea of the new wiki article was to combine AMD/Intel articles into one article. The more I think about it, the more I start to doubt if this was a good idea. So many differences between AMD and Intel:
- How to create CPIO which can be used by bootloader?
- Grub integration
- How to identify the file containing the required microcode so user can embed only this file into the kernel...
In my case I simply use the last method putting the firmware into the kernel:
1. I get the firmware ID with iucode_tool -S -l /lib/firmware/intel-ucode/*
2. I compile it in the kernel as https://wiki.gentoo.org/wiki/Intel_microcode#Kernel_3
I guess this cannot be done with AMD firmwares? I cannot try as my last AMD machine died some months ago :(
That's the problem: `iucode_tool --scan-system` doesn't work for AMD users and don't understand any AMD firmware. So all I know about AMD users is that they need to follow steps from https://wiki.gentoo.org/wiki/AMD_microcode
Yes, probably the solution is to have intel-firmware ebuilds pointing to the page adapted to intel firmwares and the amd firmwares package pointing to the page for them :/
(In reply to Pacho Ramos from comment #8)
> Yes, probably the solution is to have intel-firmware ebuilds pointing to the
> page adapted to intel firmwares and the amd firmwares package pointing to
> the page for them :/
What about that? I think pointing intel users to the intel dedicated page and AMD to AMD page will be the best option for all