Ignore:
Timestamp:
06/02/2017 02:42:51 AM (7 years ago)
Author:
Ken Moffat <ken@…>
Branches:
10.0, 10.1, 11.0, 11.1, 11.2, 11.3, 12.0, 12.1, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, basic, bdubbs/svn, elogind, kea, ken/TL2024, ken/inkscape-core-mods, ken/tuningfonts, lazarus, lxqt, perl-modules, 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:
2c54685c
Parents:
a01d308
Message:

Firmware: intel-microcode no longer needs a separate program. But on the balance of probabilities this does NOT address the AMT vulnerability. Also tweak the wording for video firmware - we now have nvidia firmware mentioned, and amdgpu is mentioned in the Xorg drivers.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • postlfs/config/firmware.xml

    ra01d308 rf2d5c26a  
    5757    </listitem>
    5858    <listitem>
    59       <para>Firmware for video controllers. On x86 machines this seems to only
    60       apply to ATI devices : Radeons require firmware to be able to use KMS
     59      <para>Firmware for video controllers. On x86 machines this seems to mostly
     60      apply to ATI devices : Radeons, the later AMD amdgpu chips, and Nvidia
     61      Maxwell cards require firmware to be able to use KMS
    6162      (kernel modesetting - the preferred option) as well as for Xorg. For
    6263      earlier radeon chips (before the R600), the firmware is still in the
     
    115116
    116117    <para>As a result, early loading is now expected, although for the moment
    117     (4.9 kernels) it is still possible to manually force late loading of
     118    (4.11 kernels) it is still possible to manually force late loading of
    118119    microcode for testing. You will need to reconfigure your kernel for either
    119120    method. The instructions here will create a kernel
     
    128129      <title>Intel Microcode for the CPU</title>
    129130
    130       <bridgehead renderas="sect4">Required File</bridgehead>
    131       <para role='required'>
    132          <ulink url='&sources-anduin-http;/intel-microcode/intel-microcode2ucode.c'/>
    133       </para>
    134 
    135       <para>For Intel CPUs an extra program, intel-microcode2ucode, is required.
    136       This is done a little differently since it is only a single source
    137       code file.  The reason for this is that there are different versions
    138       available, but most are specific to commercial distributions.</para>
    139 
    140       <para>This program reformats the microcode supplied by Intel into a
    141       format which the kernel can apply. The program
    142       <userinput>intel-microcode2ucode</userinput> is used to create the
    143       individual firmware blobs </para>
    144 
    145       <para>Create the program by downloading the source file and running:</para>
    146 
    147 <screen><userinput>gcc -g -Wall -O2 -o intel-microcode2ucode intel-microcode2ucode.c</userinput></screen>
    148 
    149       <para>Now install the program as the <systemitem class="username">root</systemitem> user:</para>
    150 
    151 <screen><userinput>install intel-microcode2ucode /usr/bin</userinput></screen>
    152 
    153      <para>The next step is to get the most recent version of the Intel
     131     <para>The first step is to get the most recent version of the Intel
    154132     microcode.  This must be done by navigating to
    155133     <ulink url='https://downloadcenter.intel.com/download/26400/Linux-Processor-Microcode-Data-File'/>
    156134     and following the instructions there.  As of this writing the most recent
    157      version of the microcode is <filename>microcode-20161104.tgz</filename>.
    158      This file is a tar file, but expands to <filename>microcode.dat</filename>
    159      in the current directory.</para>
    160 
    161      <para>Next, create various blobs with names in the form XX-YY-ZZ in a
    162      subdirectory named <filename class="directory">intel-ucode/</filename>:
    163      </para>
    164 
    165 <screen><userinput>intel-microcode2ucode microcode.dat</userinput></screen>
     135     version of the microcode is <filename>microcode-20170511.tgz</filename>.
     136     Extract this file in the normal way to create an <filename>intel-ucode</filename>
     137     directory, containing various blobs with names in the form XX-YY-ZZ.</para>
    166138
    167139     <para>Now you need to determine your processor's identity to see if there
    168140     is any microcode for it. Determine the decimal values of the cpu family,
    169      model and stepping by running:</para>
     141     model and stepping by running the following command (it will also report
     142     the current microcode version):</para>
    170143
    171144<screen><userinput>head -n7 /proc/cpuinfo</userinput></screen>
     
    204177      <para>This example from the Haswell i7 which was released in Q2 2014 and is
    205178      not affected by the TSX errata shows it has been updated from revision 0x19
    206       in the BIOS/UEFI to revision 0x20. Unlike in older kernels, the individual
     179      in the BIOS/UEFI to revision 0x22. Unlike in older kernels, the individual
    207180      CPUs are not separately reported:</para>
    208181
    209 <screen><literal>[    0.000000] Linux version 4.9.12 (ken@plexi) (gcc version 6.3.0 (GCC) )
    210                #3 SMP PREEMPT Mon Mar 6 03:29:27 GMT 2017
    211 [    0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.9.12-sda8 root=/dev/sda8 ro
    212 [    0.913685] microcode: sig=0x306c3, pf=0x2, revision=0x19
    213 [    0.913905] microcode: Microcode Update Driver: v2.01 &lt;tigran@aivazian.fsnet.co.uk&gt;, Peter Oruba
    214 [  148.723932] microcode: updated to revision 0x20, date = 2016-03-16</literal></screen>
     182<screen><literal>[    0.000000] Linux version 4.11.0 (lfs@plexi) (gcc version 7.1.0 (GCC) )
     183               #1 SMP PREEMPT Sun May 14 16:00:00 BST 2017
     184[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.11.0-sda6 root=/dev/sda6 ro
     185[    0.913685] microcode: sig=0x306c3, pf=0x2, revision=0x22
     186[    0.913905] microcode: Microcode Update Driver: v2.2.
     187[  148.723932] microcode: updated to revision 0x22, date = 2017-01-27</literal></screen>
     188    <para>That may be followed by individual reports for each core.</para>
    215189
    216190    <para>If the microcode was not updated, there is no new microcode for
     
    322296
    323297      <para>The places and times where early loading happens are very different
    324       in AMD and Intel machines. First, an Intel example from an updated stable
     298      in AMD and Intel machines. First, an Intel example from an updated
    325299      kernel, showing that the first notification comes before the kernel version
    326300      is mentioned:</para>
    327301
    328 <screen><literal>[    0.000000] microcode: microcode updated early to revision 0x20, date = 2016-03-16
    329 [    0.000000] Linux version 4.9.14 (ken@plexi) (gcc version 6.3.0 (GCC) )
    330                #6 SMP PREEMPT Mon Mar 13 16:19:11 GMT 2017
    331 [    0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.9.14-sda8 root=/dev/sda8 ro
    332 [    0.920217] microcode: sig=0x306c3, pf=0x2, revision=0x20
    333 [    0.920514] microcode: Microcode Update Driver: v2.01 &lt;tigran@aivazian.fsnet.co.uk&gt;, Peter Oruba</literal></screen>
    334 
    335       <para>An AMD example for the same kernel version:</para>
     302<screen><literal>[    0.000000] microcode: microcode updated early to revision 0x22, date = 2017-01-27
     303[    0.000000] Linux version 4.11.0 (lfs@plexi) (gcc version 7.1.0 (GCC) )
     304               #2 SMP PREEMPT Sun May 14 17:58:53 BST 2017
     305[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.11.0-sda6 root=/dev/sda6 ro
     306[    0.928947] microcode: sig=0x306c3, pf=0x2, revision=0x22
     307[    0.929160] microcode: Microcode Update Driver: v2.2.</literal></screen>
     308
     309      <para>An AMD example for an earlier stable kernel version:</para>
    336310
    337311<screen><literal>[    0.000000] Linux version 4.9.14 (ken@testserver) (gcc version 6.3.0 (GCC) )
Note: See TracChangeset for help on using the changeset viewer.