16.04: How to get the recommended intel-microcode package to fix hyper-threading issue?

11,868

Solution 1

Install the latest official package manually. i.e. for 64-bit OS:

wget http://ftp.us.debian.org/debian/pool/non-free/i/intel-microcode/intel-microcode_3.20170511.1~bpo8+1_amd64.deb
sudo dpkg -i intel-microcode_3.20170511.1~bpo8+1_amd64.deb

Reboot the machine, and you're set. ALSO, you need to install the latest BIOS update from your machine. Consult with your computer's manufacturer for the latest official BIOS update.

Solution 2

You can install the package that is for artful.

This package contains binary firmware. It is release independent.

Share:
11,868

Related videos on Youtube

DK Bose
Author by

DK Bose

Updated on September 18, 2022

Comments

  • DK Bose
    DK Bose over 1 year

    The Debian mailing list has a post relevant to some Skylake and Kaby Lake users: [WARNING] Intel Skylake/Kaby Lake processors: broken hyper-threading

    Users are to run

    grep name /proc/cpuinfo | sort -u
    

    to obtain their processor details and then to check http://ark.intel.com/products/codename/37572/Skylake or http://ark.intel.com/products/codename/82879/Kaby-Lake as appropriate.

    If their processor is listed, they should next run

    grep -q '^flags.*[[:space:]]ht[[:space:]]' /proc/cpuinfo && \
    echo "Hyper-threading is supported"
    

    According to a follow-up post, the above command which I've struck through is not reliable and users need to run lscpu and check if

    the lscpu output reports: "Thread(s) per core: 2", that means hyper-threading is enabled and supported.

    If hyper-threading is supported, advice is provided for both Skylake and Kaby Lake.

    I have an affected Skylake processor on 16.04 which can be fixed because

    grep -E 'model|stepping' /proc/cpuinfo | sort -u
    

    returns

    model       : 78
    model name  : Intel(R) Core(TM) i3-6006U CPU @ 2.00GHz
    stepping    : 3
    

    For such processors the fix suggested is to install

    the non-free "intel-microcode" package with base version 3.20170511.1, and reboot the system. THIS IS THE RECOMMENDED SOLUTION FOR THESE SYSTEMS, AS IT FIXES OTHER PROCESSOR ISSUES AS WELL.

    But the 16.04 repo shows me an older version:

    apt policy intel-microcode
    intel-microcode:
    Installed: (none)
    Candidate: 3.20151106.1
    Version table:
    3.20151106.1 500
    500 http://archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages
    

    Is it possible to get the recommended version and, if it is possible, how can I do so?

    Edit: I found https://launchpad.net/ubuntu/xenial/+package/intel-microcode but they all seem to be older versions.

    Second edit: https://launchpad.net/ubuntu/+source/intel-microcode has the relevant update but it is for Artful Aadvark.

  • Pilot6
    Pilot6 almost 7 years
    How is BIOS related? New BIOS may have the new microcode. In that case you don't need the deb.
  • Cloud
    Cloud almost 7 years
    @Pilot6 Not 100% sure. Just going by what I found in the only post so far (another site) that had concrete instructions on resolving this.
  • Jane Lane
    Jane Lane almost 7 years
    "It is release independent." That's not entirely true according to some people in the Freenode #ubuntu channel. The reason that some Ubuntu releases lag behind with the intel-microcode package is because newer versions of intel-microcode require appropriate kernel support. This is why you see Trusty still has an old intel-microcode package even though Trusty is a LTS release and it's supposed to be still supported.
  • Jane Lane
    Jane Lane almost 7 years
    I would recommend not doing this. See wiki.debian.org/DontBreakDebian#Don.27t_make_a_FrankenDebian