You are not logged in.

#1 2024-08-26 13:34:59

Idefix 75
Member
Registered: 2024-08-26
Posts: 3

[SOLVED] microcode for Intel i7-6850K not in intel_ucode

I have installed Arch Linux a few weeks ago, and keep getting "random" hard freezes and shutdowns (almost daily, and for modest usage time).

I believe the problem is related to missing microcode for my Intel CPU.

My PC has:

  • Gigabite X99-Designare EX-CF motherboard

  • Intel i7-6850K CPU

  • NVIDIA GE Force GTX

  • 2.7T WDC WD30EFRX-68EUZN0 hard disk -- where my Arch Linux OS is installed

  • Samsung SSD 960 EVO 500GB disk -- where my Windows 10 OS is installed

I have a "standard" Arch Linux installation, with no graphical environment, and use i3 as windows manager.

I see my CPU belongs to Family 6 (0x06), Model 79 (0x4f), Stepping 1 (0x01):

> head -8 /proc/cpuinfo                                                                     
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 79
model name	: Intel(R) Core(TM) i7-6850K CPU @ 3.60GHz
stepping	: 1
microcode	: 0xb000040
cpu MHz		: 1200.000

Hence, the microcode for my CPU -- here indicated as 0xb000040 - should be labelled as 06.4f.01.

I far as I understand, my CPU
Intel Core X-series processors
belongs to the Broadwell-E family, for which the wiki
https://wiki.archlinux.org/title/microcode
says that microcode update is mandatory:

Early loading updates the microcode very early during boot, before the initramfs stage [...]. This is mandatory for CPUs with severe hardware bugs, like the Intel Haswell and Broadwell processor families.

I have followed the wiki instructions at
https://wiki.archlinux.org/title/microcode
as per 2 LOADING MICROCODE and 2.1 EARLY LOADING.

When I run the command lsinitcpio I have the expected result:

> lsinitcpio --early /boot/initramfs-linux.img | grep kernel | head -4                      
kernel/
kernel/x86/
kernel/x86/microcode/
kernel/x86/microcode/GenuineIntel.bin

However, 06.4f.01 is missing from the list of CPUs whose microcode is currently made available from the package intel-ucode:

 > ls /usr/lib/firmware/intel-ucode                                                          
06-03-02  06-08-0a  06-16-01  06-2d-06	06-46-01  06-56-05  06-8c-02  06-9c-00	06-ba-03  0f-03-02
06-05-00  06-09-05  06-17-06  06-2d-07	06-47-01  06-5c-02  06-8d-01  06-9e-09	06-ba-08  0f-03-03
06-05-01  06-0a-00  06-17-07  06-2e-06	06-4c-03  06-5c-09  06-8e-09  06-9e-0a	06-be-00  0f-03-04
06-05-02  06-0a-01  06-17-0a  06-2f-02	06-4c-04  06-5c-0a  06-8e-0a  06-9e-0b	06-bf-02  0f-04-01
06-05-03  06-0b-01  06-1a-04  06-37-08	06-4d-08  06-5e-03  06-8e-0b  06-9e-0c	06-bf-05  0f-04-03
06-06-00  06-0b-04  06-1a-05  06-37-09	06-4e-03  06-5f-01  06-8e-0c  06-9e-0d	06-cf-01  0f-04-04
06-06-05  06-0d-06  06-1c-02  06-3a-09	06-55-03  06-66-03  06-8f-05  06-a5-02	06-cf-02  0f-04-07
06-06-0a  06-0e-08  06-1c-0a  06-3c-03	06-55-04  06-6a-05  06-8f-06  06-a5-03	0f-00-07  0f-04-08
06-06-0d  06-0e-0c  06-1d-01  06-3d-04	06-55-05  06-6a-06  06-8f-07  06-a5-05	0f-00-0a  0f-04-09
06-07-01  06-0f-02  06-1e-05  06-3e-04	06-55-06  06-6c-01  06-8f-08  06-a6-00	0f-01-02  0f-04-0a
06-07-02  06-0f-06  06-25-02  06-3e-06	06-55-07  06-7a-01  06-96-01  06-a6-01	0f-02-04  0f-06-02
06-07-03  06-0f-07  06-25-05  06-3e-07	06-55-0b  06-7a-08  06-97-02  06-a7-01	0f-02-05  0f-06-04
06-08-01  06-0f-0a  06-26-01  06-3f-02	06-56-02  06-7e-05  06-97-05  06-aa-04	0f-02-06  0f-06-05
06-08-03  06-0f-0b  06-2a-07  06-3f-04	06-56-03  06-8a-01  06-9a-03  06-b7-01	0f-02-07  0f-06-08
06-08-06  06-0f-0d  06-2c-02  06-45-01	06-56-04  06-8c-01  06-9a-04  06-ba-02	0f-02-09

Accordingly, running iucode_tool I get:

> iucode_tool -lS /usr/lib/firmware/intel-ucode                                             
iucode_tool: system has processor(s) with signature 0x000406f1
microcode bundle 1: /usr/lib/firmware/intel-ucode/06-25-02
microcode bundle 2: /usr/lib/firmware/intel-ucode/06-8a-01
microcode bundle 3: /usr/lib/firmware/intel-ucode/06-08-03
...
microcode bundle 147: /usr/lib/firmware/intel-ucode/06-2d-07
microcode bundle 148: /usr/lib/firmware/intel-ucode/06-5e-03
microcode bundle 149: /usr/lib/firmware/intel-ucode/06-9e-0d
selected microcodes:
                        

This apparently indicates that microcode for my Intel processor is not applied.
I had initially missed that.

The journal, on the other hand, tells me:

 > journalctl -k | grep -i microcode                                                         
Aug 26 13:58:10 kernel: microcode: Current revision: 0x0b000040
Aug 26 13:58:10 kernel: microcode: Updated early from: 0x0b00001d

This is confusing, as it seems to indicate that some (CPU??) microcode has been applied.

Finally, I note that I have no kernel folder

kernel/x86/microcode/GenuineIntel.bin

where the microcode is supposed to be located (after it has been identified).

My questions:

  1. Is my CPU's microcode being loaded correclty, or not at all?

  2. If not, how and where do I get the microcode for my Intel i7-6850K CPU?

I am a Linux newbie, and you can imagine how frustrating all this is. I love Arch Linux, but cannot get it to work on my desktop.
It goes without saying that I have completed this past week several hardware (disk and memory) testing suggested in the wiki, but found no problem at all.

Last edited by Idefix 75 (2024-08-26 21:37:30)

Offline

#2 2024-08-26 15:03:04

loqs
Member
Registered: 2014-03-06
Posts: 18,869

Re: [SOLVED] microcode for Intel i7-6850K not in intel_ucode

/usr/lib/firmware/intel-ucode/06-4f-01 is not provided by the intel-ucode package to prevent late loading of that microcode.  It is included as part of /boot/intel-ucode.img.

bsdtar -xf /boot/intel-ucode.img
ucode_tool -s 0x000406f1 ./kernel/x86/microcode/GenuineIntel.bin -l
microcode bundle 1: ./kernel/x86/microcode/GenuineIntel.bin
selected microcodes:
  001/160: sig 0x000406f1, pf_mask 0xef, 2021-05-19, rev 0xb000040, size 35840

Offline

#3 2024-08-26 21:07:29

Idefix 75
Member
Registered: 2024-08-26
Posts: 3

Re: [SOLVED] microcode for Intel i7-6850K not in intel_ucode

Thanks!

Does this mean that the microcode was loaded early as required?

Do I need to move ./kernel/x86 to /kernel/x86?

Last edited by Idefix 75 (2024-08-26 21:31:18)

Offline

#4 2024-08-26 21:27:59

loqs
Member
Registered: 2014-03-06
Posts: 18,869

Re: [SOLVED] microcode for Intel i7-6850K not in intel_ucode

Idefix 75 wrote:

Does this mean that the microcode was loaded early as required?

Yes

Idefix 75 wrote:

Do I need to move ./kernel/x86/ to /kernel/x86?

There is no need to extract the microcode from /boot/intel-ucode.img as the journal shows that it is being used from there as expected.

Offline

#5 2024-08-26 21:35:44

Idefix 75
Member
Registered: 2024-08-26
Posts: 3

Re: [SOLVED] microcode for Intel i7-6850K not in intel_ucode

Thank you, you were awesome!

The microcode was detected because I used grub-mkconfig to load /intel-ucode.img in the initial ramdisk.

Unfortunately, this means that I still have no idea of what causes my hard freezes.

Offline

Board footer

Powered by FluxBB