You are not logged in.
Think of the microcode as the firmware of your processor. Normally this is part of your BIOS/UEFI and only gets updated when your motherboard manufacturer releases a new update and you flash your board. Linux has the ability to instead load a file at runtime for your processor to use, allowing you to update it whenever you want.
I see. Basically if I didn't follow the instructions in the future I would have just ended up with really old bios right?. So it's not really necessary unless you want those to be up to date?.
Offline
@lucas7_
Not out of date BIOS but cpu microcode. BIOS is more complex and doesn't get updated this way.
Offline
@lucas7_
Not out of date BIOS but cpu microcode. BIOS is more complex and doesn't get updated this way.
Right. Thanks.
Offline
Ok guys, great success --- in my case the solution was to update the kernel (which I did not do previously)
Current output:
$ sudo dmesg | grep microcode
[ 0.000000] CPU0 microcode updated early to revision 0x29, date = 2013-06-12
[ 0.117644] CPU2 microcode updated early to revision 0x29, date = 2013-06-12
[ 0.340929] microcode: CPU0 sig=0x206a7, pf=0x10, revision=0x29
[ 0.340935] microcode: CPU1 sig=0x206a7, pf=0x10, revision=0x29
[ 0.340944] microcode: CPU2 sig=0x206a7, pf=0x10, revision=0x29
[ 0.340951] microcode: CPU3 sig=0x206a7, pf=0x10, revision=0x29
[ 0.340999] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
Offline
So am I correct that if
bsdtar -Oxf /boot/intel-ucode.img | iucode_tool -tb -lS -
iucode_tool: system has processor(s) with signature 0x000206d7
selected microcodes:
001: sig 0x000206d7, pf mask 0x6d, 2013-06-17, rev 0x0710, size 17408
and
journalctl -b | grep microcode
Okt 26 18:27:45 archlinux kernel: microcode: CPU0 sig=0x206d7, pf=0x1, revision=0x710
Okt 26 18:27:45 archlinux kernel: microcode: CPU1 sig=0x206d7, pf=0x1, revision=0x710
Okt 26 18:27:45 archlinux kernel: microcode: CPU2 sig=0x206d7, pf=0x1, revision=0x710
Okt 26 18:27:45 archlinux kernel: microcode: CPU3 sig=0x206d7, pf=0x1, revision=0x710
Okt 26 18:27:45 archlinux kernel: microcode: CPU4 sig=0x206d7, pf=0x1, revision=0x710
Okt 26 18:27:45 archlinux kernel: microcode: CPU5 sig=0x206d7, pf=0x1, revision=0x710
Okt 26 18:27:45 archlinux kernel: microcode: CPU6 sig=0x206d7, pf=0x1, revision=0x710
Okt 26 18:27:45 archlinux kernel: microcode: CPU7 sig=0x206d7, pf=0x1, revision=0x710
Okt 26 18:27:45 archlinux kernel: microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
show the same revision number I already have the latest version? If not how do I check if I already have the latest version. I am using grub and followed the wiki by editing the 10_linux file. I did not get an "updated early to revision" entry in the dmesg.
thanks
Last edited by archtom (2014-10-26 16:46:15)
Offline
... .. .
Simply add in the microcode image as
linux /boot/vmlinuz-linux root=UUID=87d59fd7-646d-4604-a5a5-395d7e0495a7 rw quiet echo 'Loading initial ramdisk ...' initrd /intel-ucode.img /boot/initramfs-linux.img }
Save the file and reboot.... there will be multiple instances of similar lines - one for each type of boot such as graphical boot, multi-user, fallback etc and you will need to change each of them.
I believe that the
initrd /intel-ucode.img /boot/initramfs-linux.img
line in the quote above should be
initrd /boot/intel-ucode.img /boot/initramfs-linux.img
or if the existing line is
initrd /initramfs-linux.img
then the line should be
initrd /intel-ucode.img /initramfs-linux.img
as both the initramfs-linux.img & intel-ucode.img will be in the same directory. The difference here occurs when the /boot directory is in a separate partition or not.
In any case thanks for the clear steps, which I used on my two Intel archlinux systems, one of which has the /boot director in a separate partition.
BTW: My AMD Athlon (10h family) system has the microcode updates in the package linux-firmware, which I verified.
Al Einstein: "Man soll die Dinge so einfach machen wie möglich ~ aber nicht einfacher." (Things should be as simple as possible ~ but not too simple.) ~ Al (Einstein) war ein Cousin von Albert, "Al" ist die Abkürzung für Aloysius
Offline
@keepitsimpleengineer
I can't speak for anyone else, but I have /boot in front of my initramfs-linux.img and then /intel-ucode.img without /boot in front. I also have a separate boot partition.
I ran demsg | grep microcode before I made the changes to my grub.cfg and then again after I made the changes and rebooted the machine. I saw the updates after the reboot.
So I don't know if this is something strange with my setup or what. But I do not have /boot in front of the intel-ucode.img but I do in front of my linux image and everything works for me. As i stated above, I have a separate boot partition.
Last edited by stevenmw (2014-10-27 20:36:12)
Offline
@czubek
Try running the command as root.
Thank you Orschiro. Performing as root worked.
Offline
@keepitsimpleengineer
I can't speak for anyone else, but I have /boot in front of my initramfs-linux.img and then /intel-ucode.img without /boot in front. I also have a separate boot partition.
I ran demsg | grep microcode before I made the changes to my grub.cfg and then again after I made the changes and rebooted the machine. I saw the updates after the reboot.
So I don't know if this is something strange with my setup or what. But I do not have /boot in front of the intel-ucode.img but I do in front of my linux image and everything works for me. As i stated above, I have a separate boot partition.
When I updated my 32bit laptop (Intel Atom) I got "intel-ucode.img could not be found" fail with grub2 boot loader. Making the change using "/boot" prefix in the initrd command resolved the error.
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 232.9G 0 disk
├─sda1 8:1 0 100G 0 part
├─sda2 8:2 0 10G 0 part [SWAP]
├─sda3 8:3 0 40G 0 part /
└─sda4 8:4 0 82.9G 0 part /home
I found ewaller's post here #11 instructive.
For my 64bit archlinux workstation with separate boot partition...
# lsblk | grep sdc
sdc 8:32 0 465.8G 0 disk
├─sdc1 8:33 0 54.3G 0 part /boot
├─sdc2 8:34 0 54.3G 0 part /
├─sdc3 8:35 0 129.3G 0 part
├─sdc4 8:36 0 1K 0 part
└─sdc5 8:37 0 227.8G 0 part /home
using the initrd command without the "/boot" prefix on both arguments worked.
I just made sure the added "/intel-ucode.img" matched the existing "/initramfs-linux-ck.img" prefix in both cases.
Last edited by keepitsimpleengineer (2014-10-27 21:24:32)
Al Einstein: "Man soll die Dinge so einfach machen wie möglich ~ aber nicht einfacher." (Things should be as simple as possible ~ but not too simple.) ~ Al (Einstein) war ein Cousin von Albert, "Al" ist die Abkürzung für Aloysius
Offline
Both intel-ucode.img and initramfs are supposed to be in the same directory.
Offline
hi boys, i installed intel-ucode and edit the 10_linux file and now the result is:
dmesg | grep microcode
[ 0.000000] CPU0 microcode updated early to revision 0x1b, date = 2014-05-29
[ 0.201790] CPU1 microcode updated early to revision 0x1b, date = 2014-05-29
[ 0.849270] microcode: CPU0 sig=0x306a9, pf=0x10, revision=0x1b
[ 0.849280] microcode: CPU1 sig=0x306a9, pf=0x10, revision=0x1b
[ 0.849291] microcode: CPU2 sig=0x306a9, pf=0x10, revision=0x1b
[ 0.849304] microcode: CPU3 sig=0x306a9, pf=0x10, revision=0x1b
[ 0.849369] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
and
grep "processor\|core id" /proc/cpuinfo
processor : 0
core id : 0
processor : 1
core id : 1
processor : 2
core id : 0
processor : 3
core id : 1
Linux xyz 3.17.1-1-ARCH #1 SMP PREEMPT Wed Oct 15 15:04:35 CEST 2014 x86_64 GNU/Linux
model name : Intel(R) Core(TM) i7-3517U CPU @ 1.90GHz
is all ok?
why only cpu0 and 1 are microcode updated early to revision 0x1b?
tnk y
Last edited by mcpalls (2014-10-28 15:15:04)
Offline
Interesting. I note that about 600mS later they were all updated.
That system appears to have two processors each with two cores. It may not be physical, but I think the 1 and 2 probaly share a L2 cache, and 3 and 4 share a L2 cache.
At boot, it looks like they only start one processor (both cores). When the kernel comes up, it initializes everything.
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
The shortest way to ruin a country is to give power to demagogues.— Dionysius of Halicarnassus
---
How to Ask Questions the Smart Way
Offline
mcpalls, you have a hyperthreaded CPU, meaning two real cores and two "thread siblings", giving you four "logical cores". So it's fully ok that you get only two update messages, one for each real core. Note how despite only two update messages, all four logical cores have the new 0x1b revision.
Offline
@mcpalls I am seeing the same thing on my end after updating. I was under the impression it was correct because I only have two real cores.
Last edited by stevenmw (2014-10-28 16:22:53)
Offline
I've overcome my paranoia regarding the bootloader and installed syslinux. Now everything is working fine with the microcode update. So I guess you really cannot use grub-legacy anymore.
Can you guys confirm this? I still use grub legacy and I get kernel panic if I use this line in /boot/grub/menu.lst:
kernel /vmlinuz-linux-ck root=/dev/mapper/cryptroot cryptdevice=/dev/disk/by-id/ata-WDC_WD2500AAKX-001CA0_WD-WCAYV2125327-part2:cryptroot ro video=vesafb:ywrap,mtrr:3 vga=791 elevator=bfq
initrd /intel-ucode.img /initramfs-linux-ck.img
zʇıɹɟʇıɹʞsuɐs AUR || Cycling in Budapest with a helmet camera || Revised log levels proposal: "FYI" "WTF" and "OMG" (John Barnette)
Offline
@SanskritFritz I'm using grub legacy without error. My laptop is capable of UEFI, so i should proably switch, but everything works flawlessly so I haven't.
Last edited by stevenmw (2014-10-30 22:46:12)
Offline
@SanskritFritz I'm using grub legacy without error. My laptop is capable of UEFI, so i should proably switch, but everything works flawlessly so I haven't.
What is your initrd line?
zʇıɹɟʇıɹʞsuɐs AUR || Cycling in Budapest with a helmet camera || Revised log levels proposal: "FYI" "WTF" and "OMG" (John Barnette)
Offline
For some reason i thought I had /boot in front, but I guess I don't.
First boot entry:
initrd /intel-ucode.img /initramfs-linux.img
Second boot entry:
initrd /intel-ucode.img /initramfs-linux-fallback.img
Third boot entry:
initrd /intel-code.img /initramfs-linux-fallback.img
dmesg | grep microcode output:
[steven@smw ~]$ dmesg | grep microcode
[ 0.000000] CPU0 microcode updated early to revision 0x1c, date = 2014-07-03
[ 0.126596] CPU2 microcode updated early to revision 0x1c, date = 2014-07-03
[ 0.499335] microcode: CPU0 sig=0x40651, pf=0x40, revision=0x1c
[ 0.499343] microcode: CPU1 sig=0x40651, pf=0x40, revision=0x1c
[ 0.499349] microcode: CPU2 sig=0x40651, pf=0x40, revision=0x1c
[ 0.499357] microcode: CPU3 sig=0x40651, pf=0x40, revision=0x1c
[ 0.499418] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
Offline
So, maybe my CPU is not supported? dmesg reports it as follows:
CPU0: Intel(R) Core(TM)2 CPU 6420 @ 2.13GHz (fam: 06, model: 0f, stepping: 06)
BTW my system works well without the microcode update, should I care?
zʇıɹɟʇıɹʞsuɐs AUR || Cycling in Budapest with a helmet camera || Revised log levels proposal: "FYI" "WTF" and "OMG" (John Barnette)
Offline
@SanskritFritz - search dmesg for microcode. Mine says this:
perf_event_intel: PEBS disabled due to CPU errata, please upgrade microcode
If yours has anything similar to that, you need it. Otherwise, you're probably ok.
Tim
Offline
@SanskirtFritz,
You might also try this suggestion that was way at the nether end of the wiki article. https://wiki.archlinux.org/index.php/Mi … ode_update
It shows how to, without actually enabling the microcode, to use a tool from the AUR to see if the upgrade has an entry for your CPU. You do have to install the ucode, but you don't change the bootloader.
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
The shortest way to ruin a country is to give power to demagogues.— Dionysius of Halicarnassus
---
How to Ask Questions the Smart Way
Offline
@ratcheer mine says simply
[ 1.226969] microcode: CPU0 sig=0x6f6, pf=0x1, revision=0xcb
[ 1.226980] microcode: CPU1 sig=0x6f6, pf=0x1, revision=0xcb
[ 1.227084] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
@ewaller Thanks, I tried that.
# bsdtar -Oxf /boot/intel-ucode.img | iucode_tool -tb -lS -
iucode_tool: system has processor(s) with signature 0x000006f6
selected microcodes:
001: sig 0x000006f6, pf mask 0x01, 2010-09-30, rev 0x00d0, size 4096
002: sig 0x000006f6, pf mask 0x04, 2010-10-01, rev 0x00d2, size 4096
003: sig 0x000006f6, pf mask 0x20, 2010-10-01, rev 0x00d1, size 4096
This means, I don't need a microcode update? But what if later I will?
zʇıɹɟʇıɹʞsuɐs AUR || Cycling in Budapest with a helmet camera || Revised log levels proposal: "FYI" "WTF" and "OMG" (John Barnette)
Offline
I'm really confused because I think I did exactly what wiki said (https://wiki.archlinux.org/index.php/Mi … de_Updates) but there are no microcode updates loaded.
I also looked at this discussion. And - nothing gives me answer. Some of you asked if the paths in grub.cfg are correct or not... but grub-mkconfig takes care of everything, isn't it?
* before installing intel-ucode:
[root@t61:~]# dmesg | grep microcode
[ 0.292849] microcode: CPU0 sig=0x10676, pf=0x80, revision=0x60f
[ 0.292860] microcode: CPU1 sig=0x10676, pf=0x80, revision=0x60f
[ 0.292957] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
* of course there are some updates available:
[root@t61:~]# bsdtar -Oxf /boot/intel-ucode.img | iucode_tool -tb -lS -
iucode_tool: system has processor(s) with signature 0x00010676
selected microcodes:
001: sig 0x00010676, pf mask 0x01, 2010-09-29, rev 0x060f, size 4096
002: sig 0x00010676, pf mask 0x80, 2010-09-29, rev 0x060f, size 4096
003: sig 0x00010676, pf mask 0x04, 2010-09-29, rev 0x060f, size 4096
004: sig 0x00010676, pf mask 0x40, 2010-09-29, rev 0x060f, size 4096
005: sig 0x00010676, pf mask 0x10, 2010-09-29, rev 0x060f, size 4096
3) after running grub-mkconfig and rebooting system there are still no updates (see output from point 1)
Last edited by jakub (2014-11-17 00:17:26)
Offline
They're both showing revision 0x060f, so the microcode in your bios is already up to date.
Offline
OK, so I interpreted wiki wrong or it's not precise:
# bsdtar -Oxf /boot/intel-ucode.img | iucode_tool -tb -lS -
(Extract microcode image and search it for your cpuid)
If an update is available, it should show up below selected microcodes
Offline