View previous topic :: View next topic |
Author |
Message |
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5168 Location: Bavaria
|
Posted: Wed Jun 28, 2017 2:33 pm Post subject: Howto: Intel Skylake microcode update bug broken hyperthread |
|
|
Yesterday I read this article: https://lwn.net/Articles/726496/
... and thought its time to learn how to install a microcode update. I had a little help from the gentoo-wiki: https://wiki.gentoo.org/wiki/intel_microcode
It took me longer than I thought before ... maybe this will help you a little bit.
First of all, I had to emerge the unstable package "intel-microcode" to get the version: 20170511.
Now I have a lot of files in /lib/firmware/intel-ucode. But which one do I need ? After (a long) searching in the web I found the missing Info: All Versions showing me in "cat /proc/cpuinfo" are in decimal and I have to translate in in hexadecimal. I have an i7-6700 and got this Output:
Code: | processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 94
model name : Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz
stepping : 3
|
After translating dec 94 in hex 5E I knew I need the file 06-5e-03 (cpu family-model-stepping)
Edit 2020-07-24: With a newer kernel it is also possible to search for the needed infos:
Code: | ~ # dmesg | grep "Intel(R)"
[ 1.397890] smpboot: CPU0: Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz (family: 0x6, model: 0x5e, stepping: 0x3) |
Edit 2023-11-21: In Kernel version 6.6 CONFIG_MICROCODE is enabled by default and so you will have no options anymore in "Processor type and features" to enable it. So all you have to do is add the name of your microcode file in the section "Device Drivers".
I choosed the method "New method without initram-fs/disk" from the gentoo-wiki because I allready included a file before. If you want to load 2 files you only need to seperate them with a whitespace.
Code: | Processor type and features --->
<*> CPU microcode loading support
[*] Intel microcode loading support
Device Drivers --->
Generic Driver Options --->
Firmware Loader --->
-*- Firmware loading facility
(i915/skl_dmc_ver1_26.bin intel-ucode/06-5e-03) Build named firmware blobs into the kernel binary
(/lib/firmware) Firmware blobs root directory |
After rebooting the new kernel I saw in the log my new revision "0xba".
Code: | Jun 28 15:57:38 big kernel: Symbols match kernel version 4.9.34.
Jun 28 15:57:38 big kernel: No module symbols loaded - kernel modules not enabled.
Jun 28 15:57:38 big kernel: [ 0.000000] microcode: microcode updated early to revision 0xba, date = 2017-04-09
[...]
Jun 28 15:57:38 big kernel: [ 1.114173] microcode: sig=0x506e3, pf=0x2, revision=0xba
Jun 28 15:57:38 big kernel: [ 1.114326] microcode: Microcode Update Driver: v2.01 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[...] |
Update: Nowadays the logging is different - the first line is completely missing (here is my log for an i9):
Code: | # dmesg | grep microcode
[ 9.201034] microcode: Current revision: 0x00000123
[ 9.201039] microcode: Updated early from: 0x00000113 |
Have a good time,
Peter
[Moderator edit: broke long whitespace-free lines in code tags to fix thread layout. -Hu] _________________ https://wiki.gentoo.org/wiki/User:Pietinger
Last edited by pietinger on Thu Jul 25, 2024 2:51 pm; edited 6 times in total |
|
Back to top |
|
|
Shoaloak n00b
Joined: 05 Nov 2016 Posts: 48
|
Posted: Sat Jul 08, 2017 7:54 pm Post subject: |
|
|
Thanks for the post, works like a charm. _________________ Happy hacking. |
|
Back to top |
|
|
statikregimen Apprentice
Joined: 16 Jul 2011 Posts: 173 Location: USA/Michigan
|
Posted: Wed Jul 26, 2017 8:49 pm Post subject: |
|
|
Wow....I never read forums unless I'm looking for something or have something useful to share. So normally would have missed this, and gone on in blissful ignorance of the fact that my CPU could go rogue at any moment. I suppose it's always a risk anyway...
Lucky me, I have the exact same model & stepping as you, so this just made the fix really easy. Thank you for posting! |
|
Back to top |
|
|
Ant P. Watchman
Joined: 18 Apr 2009 Posts: 6920
|
Posted: Thu Jul 27, 2017 10:57 pm Post subject: |
|
|
Warning for anyone that wants to try this on a 32-bit-only CPU: the "include firmware in kernel" method doesn't work on those (it's actually documented as such but hard to find), your only option is to have iucode-tool write a cpio file and set that as the initrd. Remember to enable initramfs support (not initrd) in the kernel.
Turned out a waste of time for me, my Atom has a few errata warnings at boot, but it fixed none of them and made the system way less stable. It does matter for the Skylake bug though. (And the older Haswell TSX bug) |
|
Back to top |
|
|
statikregimen Apprentice
Joined: 16 Jul 2011 Posts: 173 Location: USA/Michigan
|
Posted: Fri Sep 01, 2017 1:22 am Post subject: |
|
|
I just did this. As of now, the latest version of intel-microcode package is 20170707 - you shouldn't need to emerge the unstable now.
Any update on the issue itself or where can we go to get news like this? |
|
Back to top |
|
|
|