Summary: | sys-apps/microcode-data[initramfs]: cpio should include the split intel-ucode/ data files | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | José María Fernández González <josemariafg> |
Component: | [OLD] Core system | Assignee: | Gentoo's Team for Core System packages <base-system> |
Status: | RESOLVED INVALID | ||
Severity: | minor | ||
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | My current .config file (modified at 2015-08-24) |
Description
José María Fernández González
2015-08-25 22:52:24 UTC
José: Do you have an existing initramfs that you are combining with the microcode initramfs or is that your only initramfs? I've made a tweaked ebuild that might address your issue. You can test it by grabbing a copy from https://github.com/cardoe/gentoo/commit/9f094dcd2e635fe00d936b6a8538179aa9404ec3 please attach your kernel config. the early microcode loader does not look for split ucode files, only the kernel/x86/microcode/GenuineIntel.bin file (which is what the generated cpio includes). you can see this in the documentation: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/x86/early-microcode.txt?id=v4.1 as well as the loader itself: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/x86/kernel/cpu/microcode/intel_early.c?id=v4.1 the loader falls back to the split ucode files only if the combined one is not found in the cpio, and it only looks at built-in firmware, so having it in the cpio still wouldn't help. see the scan_microcode function for details. (In reply to Doug Goldstein from comment #1) > José: Do you have an existing initramfs that you are combining with the > microcode initramfs or is that your only initramfs? Doug: It is my only initramfs Created attachment 410842 [details]
My current .config file (modified at 2015-08-24)
This is the .config which I'm using for sys-kernel/gentoo-sources-4.1.6 compilation
(In reply to SpanKY from comment #3) > please attach your kernel config. the early microcode loader does not look > for split ucode files, only the kernel/x86/microcode/GenuineIntel.bin file > (which is what the generated cpio includes). > > you can see this in the documentation: > https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/ > Documentation/x86/early-microcode.txt?id=v4.1 > > as well as the loader itself: > https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/ > x86/kernel/cpu/microcode/intel_early.c?id=v4.1 > > the loader falls back to the split ucode files only if the combined one is > not found in the cpio, and it only looks at built-in firmware, so having it > in the cpio still wouldn't help. see the scan_microcode function for > details. I have just added my current .config file. BTW, I have just also realized that, when I tried the cpio archive generated by the package, I didn't try a copy of the "raw" version, but a bzip2 compressed one (I enabled CONFIG_RD_BZIP2=y in my .config files years ago). And also, I have been inspecting both the generated cpio archive and the generated working one. As their internal directory topology is the same, I guess the problem could be that initrd/initramfs machinery related to bzip2 decompression silently failed in some step. In any case I'll try with the "raw" version of the cpio this evening. (In reply to Doug Goldstein from comment #2) > I've made a tweaked ebuild that might address your issue. You can test it by > grabbing a copy from > https://github.com/cardoe/gentoo/commit/ > 9f094dcd2e635fe00d936b6a8538179aa9404ec3 Nice tweak! It runs just the command I ran by hand to generate the working initramfs The uncompressed, original version of microcode.cpio, generated by the ebuild, worked. So, the problem with the compressed version is not on the generated cpio. Sorry for the inconvenience, José María (In reply to José María Fernández González from comment #6) > (In reply to SpanKY from comment #3) > > please attach your kernel config. the early microcode loader does not look > > for split ucode files, only the kernel/x86/microcode/GenuineIntel.bin file > > (which is what the generated cpio includes). > > > > you can see this in the documentation: > > https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/ > > Documentation/x86/early-microcode.txt?id=v4.1 > > > > as well as the loader itself: > > https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/ > > x86/kernel/cpu/microcode/intel_early.c?id=v4.1 > > > > the loader falls back to the split ucode files only if the combined one is > > not found in the cpio, and it only looks at built-in firmware, so having it > > in the cpio still wouldn't help. see the scan_microcode function for > > details. > > I have just added my current .config file. > > BTW, I have just also realized that, when I tried the cpio archive generated > by the package, I didn't try a copy of the "raw" version, but a bzip2 > compressed one (I enabled CONFIG_RD_BZIP2=y in my .config files years ago). > > And also, I have been inspecting both the generated cpio archive and the > generated working one. As their internal directory topology is the same, I > guess the problem could be that initrd/initramfs machinery related to bzip2 > decompression silently failed in some step. > > In any case I'll try with the "raw" version of the cpio this evening. |