You are not logged in.
Ref news: https://www.archlinux.org/news/changes- … deupdates/
Related forum posts:
This news sounds quite scary to me. The big question is if anything I do can brick my computer.
Does doing this on kernels < 3.17.2 brick my computer?
Will upgrading to 3.17.2 without doing this brick my computer?
Last edited by simendsjo (2014-10-23 07:25:02)
Offline
No and no. Update to the new kernel and then follow the wiki...
Offline
The wiki instructs us to edit the grub.cfg directly... isn't this bad, since it will just be overwritten the next time mkinitcpio is run?
Offline
The wiki instructs us to edit the grub.cfg directly... isn't this bad, since it will just be overwritten the next time mkinitcpio is run?
No, grub-mkconfig does that...
CPU-optimized Linux-ck packages @ Repo-ck • AUR packages • Zsh and other configs
Offline
You are just editing your bootloader config. You can revert any changes made at the boot menu.
Offline
I'm a bit curious about the microcode module. I have a pretty old laptop [1] on which I've never done anything through the bios to update the microcode. I'm following the wiki, but dmesg results suggest I don't need to change this in my bootloader, correct?
before modprobe
$ dmesg | grep micro
[ 0.315738] microcode: CPU0 sig=0x1067a, pf=0x80, revision=0xa07
[ 0.315742] microcode: CPU1 sig=0x1067a, pf=0x80, revision=0xa07
[ 0.315833] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
and after "sudo modprobe microcode" (which exited with a zero/successful exit code) the dmesg output is identical. But I also checked the lsmod output, and the microcode module was not listed. Does the microcode module automatically 'unload' itself when it is done? Or in other words, should the microcode module show up in lsmod output after being modprobed?
[1] Lenovo X200 with Intel Core2Duo
"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" - Richard Stallman
Online
If it doesn't need it, it just moves on.
I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.
Offline
Last night I made a test. Turns out the updates are not persistent and it's also written in the wiki. Here's what I had after the update and not using the img in INITRD:
0 « smirky » ~ » dmesg |grep microcode
[ 0.456037] CPU0 microcode updated early to revision 0x28, date = 2013-06-12
[ 0.456043] CPU1 microcode updated early to revision 0x28, date = 2013-06-12
[ 0.456049] CPU2 microcode updated early to revision 0x28, date = 2013-06-12
[ 0.456055] CPU3 microcode updated early to revision 0x28 date = 2013-06-12
[ 0.456096] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
I made a mode probe before that and a reboot too. The output was the same. After applying the intel-ucode img in the bootloader, I got:
1 « smirky » ~ » dmesg |grep microcode
[ 0.000000] CPU0 microcode updated early to revision 0x29, date = 2013-06-12
[ 0.309295] CPU1 microcode updated early to revision 0x29, date = 2013-06-12
[ 0.322585] CPU2 microcode updated early to revision 0x29, date = 2013-06-12
[ 0.339353] CPU3 microcode updated early to revision 0x29, date = 2013-06-12
[ 0.456712] microcode: CPU0 sig=0x206a7, pf=0x2, revision=0x29
[ 0.456717] microcode: CPU1 sig=0x206a7, pf=0x2, revision=0x29
[ 0.456723] microcode: CPU2 sig=0x206a7, pf=0x2, revision=0x29
[ 0.456729] microcode: CPU3 sig=0x206a7, pf=0x2, revision=0x29
[ 0.456769] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
Therefore updates from now on will be happening at every boot or we will have a downgraded microcode.
Personal spot :: https://www.smirky.net/ :: Try not to get lost!
Offline
Updates were always happening at every boot. The only thing that changed is when they get loaded.
Offline
No and no. Update to the new kernel and then follow the wiki...
Thanks!
Offline
Hi,
I have a rather silly question. I can't figure out if I have Intel microcode updates enabled. I have installed the intel-ucode package from [extra] (extra/intel-ucode 20140624-1), and I get this when I check dmesg:
prakhar@sim74stic ~ $ dmesg |grep microcode
[ 11.576665] microcode: CPU0 sig=0x306a9, pf=0x10, revision=0x15
[ 11.709317] microcode: CPU0 sig=0x306a9, pf=0x10, revision=0x15
[ 11.710515] microcode: CPU0 updated to revision 0x1b, date = 2014-05-29
[ 11.710545] microcode: CPU1 sig=0x306a9, pf=0x10, revision=0x15
[ 11.710602] microcode: CPU1 sig=0x306a9, pf=0x10, revision=0x15
[ 11.711282] microcode: CPU1 updated to revision 0x1b, date = 2014-05-29
[ 11.711296] microcode: CPU2 sig=0x306a9, pf=0x10, revision=0x15
[ 11.711341] microcode: CPU2 sig=0x306a9, pf=0x10, revision=0x15
[ 11.712068] microcode: CPU2 updated to revision 0x1b, date = 2014-05-29
[ 11.712080] microcode: CPU3 sig=0x306a9, pf=0x10, revision=0x15
[ 11.712134] microcode: CPU3 sig=0x306a9, pf=0x10, revision=0x15
[ 11.712859] microcode: CPU3 updated to revision 0x1b, date = 2014-05-29
[ 11.712897] microcode: CPU4 sig=0x306a9, pf=0x10, revision=0x15
[ 11.712972] microcode: CPU4 sig=0x306a9, pf=0x10, revision=0x15
[ 11.713683] microcode: CPU4 updated to revision 0x1b, date = 2014-05-29
[ 11.713698] microcode: CPU5 sig=0x306a9, pf=0x10, revision=0x15
[ 11.713736] microcode: CPU5 sig=0x306a9, pf=0x10, revision=0x15
[ 11.714451] microcode: CPU5 updated to revision 0x1b, date = 2014-05-29
[ 11.714469] microcode: CPU6 sig=0x306a9, pf=0x10, revision=0x15
[ 11.714503] microcode: CPU6 sig=0x306a9, pf=0x10, revision=0x15
[ 11.714878] microcode: CPU6 updated to revision 0x1b, date = 2014-05-29
[ 11.714888] microcode: CPU7 sig=0x306a9, pf=0x10, revision=0x15
[ 11.714907] microcode: CPU7 sig=0x306a9, pf=0x10, revision=0x15
[ 11.715282] microcode: CPU7 updated to revision 0x1b, date = 2014-05-29
[ 11.715322] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
My question is, did the microcode update work? And should I add it to mkinitcpio to trigger it early? (sudo modprobe microcode doesn't change the output above).
Last edited by prakharsingh95 (2014-10-23 16:21:56)
A person who never made a mistake never tried anything new.
Offline
If you remove the microcode image from your boot{loader,manager} and reboot, you won't see all those messages with "updated" in dmesg...
Offline
If you remove the microcode image from your boot{loader,manager} and reboot, you won't see all those messages with "updated" in dmesg...
Thats the problem! I installed the intel-ucode package, but it didn't put /intel-ucode.img in my /boot. I manually edited grub anyway, and I predictably got a kernel panic, upon which I edited grub install script at boot and reverted. I get the above output without editing my /boot/grub/grub.cfg in any way.
I don't understand how the microcode is updating. Also, is it safe to load the module early using mkinitcpio?
EDIT: I think I figured it out. I recently recompiled my linux-ck and it probably is the reason I am getting updated microcode. I added the microcode module to mkinitcpio and I get this
prakhar@sim74stic ~ $ dmesg |grep microcode
[ 2.753601] microcode: CPU0 sig=0x306a9, pf=0x10, revision=0x15
[ 2.753678] microcode: CPU1 sig=0x306a9, pf=0x10, revision=0x15
[ 2.753709] microcode: CPU2 sig=0x306a9, pf=0x10, revision=0x15
[ 2.753734] microcode: CPU3 sig=0x306a9, pf=0x10, revision=0x15
[ 2.753761] microcode: CPU4 sig=0x306a9, pf=0x10, revision=0x15
[ 2.753816] microcode: CPU5 sig=0x306a9, pf=0x10, revision=0x15
[ 2.753844] microcode: CPU6 sig=0x306a9, pf=0x10, revision=0x15
[ 2.753883] microcode: CPU7 sig=0x306a9, pf=0x10, revision=0x15
[ 2.753996] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
I guess I need img to load it faster than this.
Last edited by prakharsingh95 (2014-10-23 17:10:00)
A person who never made a mistake never tried anything new.
Offline
If it didn't write the image to boot, you need to upgrade your kernel.
I guess I need img to load it faster than this.
What makes you think that?
Offline
If it didn't write the image to boot, you need to upgrade your kernel.
I guess I need img to load it faster than this.
What makes you think that?
Just guessing, on average the microcode update is loading <500ms after boot (see above posts), and the arch wiki says that the update needs to be loaded at boot.
I also updated my kernel (linux-ck), to the latest version.
A person who never made a mistake never tried anything new.
Offline
I'm a bit curious about the microcode module. I have a pretty old laptop [1] on which I've never done anything through the bios to update the microcode. I'm following the wiki, but dmesg results suggest I don't need to change this in my bootloader, correct?
before modprobe
$ dmesg | grep micro [ 0.315738] microcode: CPU0 sig=0x1067a, pf=0x80, revision=0xa07 [ 0.315742] microcode: CPU1 sig=0x1067a, pf=0x80, revision=0xa07 [ 0.315833] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
and after "sudo modprobe microcode" (which exited with a zero/successful exit code) the dmesg output is identical. But I also checked the lsmod output, and the microcode module was not listed. Does the microcode module automatically 'unload' itself when it is done? Or in other words, should the microcode module show up in lsmod output after being modprobed?
[1] Lenovo X200 with Intel Core2Duo
Was your test before or after the Arch intel-ucode update?
microcode is no longer a seperate module, as it needs to be loaded before almost everything else in the kernel in order to do "early load" microcode updates. from your dmesg, I'm guessing that you're on the updated version? (+0.31 seems too early for external modules to be loaded)
...in which case, your test doesn't mean anything for two reasons - 1. no module to modprobe, and 2. no firmware to load (it got squashed into a blob only suitable for early-load, the module-loadable ucode blobs need to be split and in /lib/firmware/intel-ucode/ )
To answer your last two questions, no, microcode module doesn't unload automatically - AFAIK it is needed every time computer wakes from standby, to reapply the microcode.
My: [ GitHub | AUR Packages ]
Offline
Thanks stevenhoneyman, but there are several parts of your post that I don't understand. First, to answer the question, that was all after installing an up to date intel-ucode (I never had the package before). I had also booted into the 3.17 kernel, but I had not modified my bootloader.
You say microcode is no longer a separate module. But this seems at odds with the advice in the wiki which says to execute "modpobe microcode". Also when I run that command, it returns success. If I try to modprobe a truly non-existent module, modprobe returns an error and the message "modprobe: FATAL: Module xxxx not found." So it seems microcode is a module.
You also go on to say the microcode module doesn't unload automatically. Yet this is at odds with claiming it is not a module. Do you get a result from "lsmod | grep microcode" ? I do not, even right after modprobing it.
Following the steps in the wiki has lead me to believe I do not need to modify my bootloader to add the intel-ucode.img.
"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" - Richard Stallman
Online
Thanks stevenhoneyman, but there are several parts of your post that I don't understand. First, to answer the question, that was all after installing an up to date intel-ucode (I never had the package before). I had also booted into the 3.17 kernel, but I had not modified my bootloader.
You say microcode is no longer a separate module. But this seems at odds with the advice in the wiki which says to execute "modpobe microcode". Also when I run that command, it returns success. If I try to modprobe a truly non-existent module, modprobe returns an error and the message "modprobe: FATAL: Module xxxx not found." So it seems microcode is a module.
You also go on to say the microcode module doesn't unload automatically. Yet this is at odds with claiming it is not a module. Do you get a result from "lsmod | grep microcode" ? I do not, even right after modprobing it.
Following the steps in the wiki has lead me to believe I do not need to modify my bootloader to add the intel-ucode.img.
Ah, I see where the confusion might be. Up-to-date intel-ucode requires Arch kernel 3.17-2 (minimum) --- "3.17-1" config is incompatible with the latest ucode packaging method. Here is when the change happened (which is when microcode stopped being an external module):
https://projects.archlinux.org/svntogit … 38cdcbb64e
So yes, you will have a 3.17 microcode module; but there is nothing for it to load anymore. If you'd like to check on whether there are updates available for your CPU, you could download an older version (20140624-1) of the intel-ucode package and modprobe microcode afterwards.
The last line doesn't relate to the Arch stock kernel; I was just answering your question in case you planned to compile your own and keep microcode modular
Last edited by stevenhoneyman (2014-10-23 18:27:27)
My: [ GitHub | AUR Packages ]
Offline
*headdesk* sorry all. I misread all the documentation on this. I am only at 3.17.1-1. If -2 is even in the repos yet, it hasn't hit my mirror (edit: nope, not yet it repos).
Last edited by Trilby (2014-10-23 18:52:26)
"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" - Richard Stallman
Online
No Trilby, you're fine in that regard. The change was in 3.17-2 (i.e. 3.17.0). It is in 3.17.1-1.
Last edited by Scimmia (2014-10-23 18:50:55)
Offline
Hm, then I remain as baffled as ever. However, due to other issues, I've rollback to 3.16.4 and will wait for the next kernel version to try again.
"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" - Richard Stallman
Online
If you'd like to check on whether there are updates available for your CPU, you could download an older version (20140624-1) of the intel-ucode package and modprobe microcode afterwards.
I guess the best idea would be to install iucode-tool (from the AUR) and use it together with the cpuid kernel module to look for a microcode update in the ucode image:
# modprobe cpuid
# bsdtar -Oxf /boot/intel-ucode.img | iucode_tool -tb -lS -
iucode_tool: system has processor(s) with signature 0x00020652
selected microcodes:
001: sig 0x00020652, pf mask 0x12, 2013-06-26, rev 0x000e, size 8192
| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |
Offline
I am getting the same output as Trilby
dmesg | grep microcode
[ 0.282467] microcode: CPU0 sig=0x1067a, pf=0x10, revision=0xa07
[ 0.282477] microcode: CPU1 sig=0x1067a, pf=0x10, revision=0xa07
[ 0.282488] microcode: CPU2 sig=0x1067a, pf=0x10, revision=0xa07
[ 0.282499] microcode: CPU3 sig=0x1067a, pf=0x10, revision=0xa07
[ 0.282573] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
but I did not clearly understand, should be like that or not?
Offline
It's possible there simply isn't a microcode update for you CPU. Either that or you didn't load the initramfs correctly.
Edit: Out of curiosity theodore and Trilby, what's the output of
cat /proc/cmdline
uname -a
Last edited by Scimmia (2014-10-23 22:37:00)
Offline
It's possible there simply isn't a microcode update for you CPU. Either that or you didn't load the initramfs correctly.
Edit: Out of curiosity theodore and Trilby, what's the output of
cat /proc/cmdline uname -a
cat /proc/cmdline :
BOOT_IMAGE=/vmlinuz-linux root=/dev/sda3 rw rw radeon.modeset=1 radeon.gartsize=32 radeon.pcie_gen2=1
uname -a :
Linux tt 3.17.1-1-ARCH #1 SMP PREEMPT Wed Oct 15 15:04:35 CEST 2014 x86_64 GNU/Linux
is there any way to check if the initramfs is loaded correctly? because what I did was just to follow the instructions from the wiki and adding the /intel-ucode.img line in the grub.cfg file
Offline