Changeset 3c19265 for postlfs


Ignore:
Timestamp:
05/19/2019 08:52:16 PM (5 years ago)
Author:
Ken Moffat <ken@…>
Branches:
10.0, 10.1, 11.0, 11.1, 11.2, 11.3, 12.0, 12.1, 9.0, 9.1, kea, ken/TL2024, ken/inkscape-core-mods, ken/tuningfonts, lazarus, lxqt, plabs/newcss, plabs/python-mods, python3.11, qt5new, rahul/power-profiles-daemon, renodr/vulkan-addition, trunk, upgradedb, xry111/intltool, xry111/llvm18, xry111/soup3, xry111/test-20220226, xry111/xf86-video-removal
Children:
b18436b4
Parents:
909e238
Message:

Update firmware details re recent intel move to github and newly disclosed vulnerabilities.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@21608 af4574ff-66df-0310-9fd7-8a98e5e911e0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • postlfs/config/firmware.xml

    r909e238 r3c19265  
    101101    need to be applied on every boot.</para>
    102102
    103     <para>Intel provide frequent updates of their microcode. It is not uncommon
    104     to find a newer version of microcode for an Intel processor even two years
    105     after its release. New versions of AMD firmware are rare and usually only
    106     apply to a few models, although motherboard manufacturers get extra updates
    107     which maybe update microcode along with the changes to support newer CPUs
    108     and faster memory.</para>
    109 
    110     <para>There used to be two ways of loading the microcode, described as 'early'
     103    <para>Intel provide updates of their microcode for SandyBridge and later
     104    processors as new vulnerabilities come to light. New versions of AMD
     105    firmware are rare and usually only apply to a few models, although
     106    motherboard manufacturers get extra updates which maybe update microcode
     107    along with the changes to support newer CPUs and faster memory.</para>
     108
     109    <para>There are two ways of loading the microcode, described as 'early'
    111110    and 'late'. Early loading happens before userspace has been started, late
    112111    loading happens after userspace has started. Not surprisingly, early loading
    113     was preferred, (see e.g. an explanatory comment in a kernel commit noted at
     112    is preferred, (see e.g. an explanatory comment in a kernel commit noted at
    114113    <ulink url="https://lwn.net/Articles/530346/">x86/microcode: Early load
    115114    microcode </ulink> on LWN.)  Indeed, it is needed to work around one
     
    121120    uncommon situations. </para>
    122121
    123     <para>As a result, early loading is now expected, although for the moment
    124     (4.18 kernels) it is still possible to manually force late loading of
    125     microcode for testing. You will need to reconfigure your kernel for either
    126     method. The instructions here will create a kernel
    127     <filename>.config</filename> to suite early loading, before forcing late
    128     loading to see if there is any microcode. If there is, the instructions
    129     then show you how to create an initrd for early loading.</para>
     122    <para>It is still possible to manually force late loading of microcode,
     123    either for testing or to prevent having to reboot. You will need to
     124    reconfigure your kernel for either method. The instructions here will
     125    create a kernel <filename>.config</filename> to suite early loading, before
     126    forcing late loading to see if there is any microcode. If there is, the
     127    instructions then show you how to create an initrd for early loading.</para>
    130128
    131129    <para>To confirm what processor(s) you have (if more than one, they will be
     
    136134
    137135     <para>The first step is to get the most recent version of the Intel
    138      microcode.  This must be done by navigating to
    139      <ulink url='https://downloadcenter.intel.com/download/28087/Linux-Processor-Microcode-Data-File'/>
    140      and following the instructions there.  As of this writing the most recent
    141      version of the microcode is <filename>microcode-20180807.tgz</filename>.
    142      Extract this file in the normal way to create an <filename>intel-ucode</filename>
     136     microcode.  This must be done by navigating to <ulink
     137     url='https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/'/>
     138     and downloading the latest file there.  As of this writing the most recent
     139     version of the microcode is microcode-20190514a.
     140     Extract this file in the normal way, the microcode is in the <filename>intel-ucode</filename>
    143141     directory, containing various blobs with names in the form XX-YY-ZZ.
    144      This tarball does not contain a top-level directory, two files
    145      (microcode.dat which is the old-style of updates, still used by some
    146      linux distros, and releasenote) will be extracted into the current
    147      directory.</para>
    148 
    149      <note><para>The above URL may not be the latest page.  If it is not,
    150      a line at the top of the page will direct you to the latest page.
    151      </para></note>
     142     There are also various other files, and a releasenote.</para>
     143
     144     <para>In the past, intel did not provide any details of which blobs had
     145     changed versions, but now the releasenote details this.</para>
     146
     147     <para>The recent firmware for older processors is provided to deal with
     148     vulnerabilities which have now been made public, and for some of these such
     149     as Microarchitectural Data Sampling (MDS) you might wish to increase the
     150     protection by disabling hyperthreading, or alternatively to disable the
     151     kernel's default mitigation because of its impact on compile times. Please
     152     read the online documentation at <ulink
     153     url='https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/index.html'/>.
     154     </para>
     155
     156     <para>To be able to use the microcode which addresses MDS, the kernel must
     157     be one of the following stable versions: 5.1.2, 5.0.16, 4.19.43, 4.14.119,
     158     4.9.176 or a later version of those series, or a later kernel series such
     159     as 5.2.</para>
    152160
    153161     <para>Now you need to determine your processor's identity to see if there
     
    189197<screen><userinput>dmesg | grep -e 'microcode' -e 'Linux version' -e 'Command line'</userinput></screen>
    190198
    191       <para>This example from the Haswell i7 which was released in Q2 2014 and is
     199      <para>This old example (from before Intel provided details of the latest
     200      versions) from the Haswell i7 which was released in Q2 2014 and is
    192201      not affected by the TSX errata shows it has been updated from revision 0x19
    193202      in the BIOS/UEFI (which this version of the kernel now complains about) to
     
    313322<screen><userinput>dmesg | grep -e 'microcode' -e 'Linux version' -e 'Command line'</userinput></screen>
    314323
     324      <para>If you updated to address vulnerabilities, you can look at <filename
     325      class="directory">/sys/devices/system/cpu/vulnerabilities/</filename> to
     326      see what is now reported.</para>
     327
    315328      <para>The places and times where early loading happens are very different
    316329      in AMD and Intel machines. First, an Intel example from an updated
     
    318331      is mentioned:</para>
    319332
    320 <screen><literal>[    0.000000] microcode: microcode updated early to revision 0x25, date = 2018-04-02
    321 [    0.000000] Linux version 4.18.1-rc1 (ken@plexi) (gcc version 8.2.0 (GCC))
    322                #2 SMP PREEMPT Tue Aug 14 20:22:35 BST 2018
    323 [    0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.18.1-rc1-sda5 root=/dev/sda5 ro resume=/dev/sdb1
    324 [    0.275864] microcode: sig=0x306c3, pf=0x2, revision=0x25
     333<screen><literal>[    0.000000] microcode: microcode updated early to revision 0x27, date = 2019-02-26
     334[    0.000000] Linux version 5.0.16 (lfs@plexi) (gcc version 9.1.0 (GCC))
     335               #2 SMP PREEMPT Sat May 18 23:10:29 BST 2019
     336[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-5.0.16-sda5 root=/dev/sda5 ro resume=/dev/sdb1
     337[    0.275864] microcode: sig=0x306c3, pf=0x2, revision=0x27
    325338[    0.275911] microcode: Microcode Update Driver: v2.2.</literal></screen>
    326339
Note: See TracChangeset for help on using the changeset viewer.