How to update Intel microcode properly?

I've installed intel-microcode=2.20140913.1ubuntu2 but I'm still getting 2014-05-29 loaded according to

dmesg | head -n1

Do I have to use iucode-tool?


Solution 1:

Manual method

How to verify if there's a new microcode update for your processor (Intel)

Go to the Intel drivers download center. Download the most recent microcode and then unpack the file, giving you a microcode.dat file.

  1. make sure you have the package iucode-tool:

    sudo apt-get install iucode-tool
    
  2. Create temp folder:

    mkdir /tmp/micro
    
  3. "Unpack" this microcode.dat file to a temporary location:

    iucode_tool -K/tmp/micro microcode.dat
    
  4. You can now check if there's a more recent microcode file using:

    modprobe cpuid && iucode_tool -tb -lS /tmp/micro
    

    (or wherever you unpacked the microcodes to).

    On my old Core 2 Duo the output is like this:

    iucode_tool: system has processor(s) with signature 0x0001067a
    selected microcodes:
    001: sig 0x0001067a, pf mask 0xa0, 2010-09-28, rev 0x0a0b, size 8192
    002: sig 0x0001067a, pf mask 0x11, 2010-09-28, rev 0x0a0b, size 8192
    003: sig 0x0001067a, pf mask 0x44, 2010-09-28, rev 0x0a0b, size 8192
    
  5. Compare this to the output of:

    dmesg | grep "updated"
    

    Sample output:

    [    1.056012] microcode: CPU0 updated to revision 0xa0b, date = 2010-09-28
    [    1.112010] microcode: CPU1 updated to revision 0xa0b, date = 2010-09-28
    

    This shows that my system already uses the most recent microcode.

Method using a repository

Follow the instructions in this tutorial (note that you do not need to install synaptic)

  1. Install the following packages:

    sudo apt-get install microcode.ctl intel-microcode
    
  2. Reboot your computer.

  3. Now check whether the microcode has been loaded properly, with the following terminal command:

    dmesg | grep microcode
    

    If all is well you should see several reports about the applied microcode.

Solution 2:

Here is Pool of microcodes released by intel
http://ftp.ubuntu.com/ubuntu/pool/main/i/intel-microcode/
download latest .deb package and install via

sudo dpkg -i intel-microcode_3.20191115.1ubuntu3_amd64.deb  

in My case it's intel-microcode_3.20191115.1ubuntu3_amd64.deb

P.S: ubuntu 18.04 shipped with 3.20180807a.0ubuntu0.18.04.1 and maintained to the latest, so no longer has to manually install it.

Solution 3:

While @Rajat had the way to do it, his link is outdated You will be able to find the latest microcode here: http://ftp.ubuntu.com/ubuntu/pool/main/i/intel-microcode/?C=M;O=D

than after that, as root on your machine, do something like this:

wget http://ftp.ubuntu.com/ubuntu/pool/main/i/intel-microcode/intel-microcode_3.20191115.1ubuntu0.19.10.3_amd64.deb
dpkg -i intel-microcode_3.20191115.1ubuntu0.19.10.3_amd64.deb
reboot