Changeset 083a8d7


Ignore:
Timestamp:
05/06/2022 11:45:05 PM (2 years ago)
Author:
Ken Moffat <ken@…>
Branches:
11.2, 11.3, 12.0, 12.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, xry111/llvm18, xry111/soup3, xry111/xf86-video-removal
Children:
83cc2cc3
Parents:
14736e0d
Message:

Rework various items in About Firmware.

In particular, CPU microcode now that the affected AMD processors
can be identified. For both Intel and AMD determine the hex triplet.

Also, rework the Nvidia details to reflect the current situation.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • introduction/welcome/changelog.xml

    r14736e0d r083a8d7  
    4646      <itemizedlist>
    4747        <listitem>
     48          <para>[ken] - Rework 'About Firmware'. Fixes
     49          <ulink url="&blfs-ticket-root;16416">#16416</ulink>.</para>
     50        </listitem>
     51        <listitem>
    4852          <para>[bdubbs] - Update to doxygen-1.9.4. Fixes
    4953          <ulink url="&blfs-ticket-root;16518">#16518</ulink>.</para>
  • postlfs/config/firmware.xml

    r14736e0d r083a8d7  
    9797        Nvidia GPUs from Kepler onwards require signed firmware, otherwise the
    9898        nouveau driver is unable to provide hardware acceleration. Nvidia has
    99         now released firmware up to Turing (most, maybe all, GTX16xx and RTX20xx
    100         GPUs) to linux-firmware, and kernels from linux-5.6 should support it,
    101         although Mesa support may require a development version until Mesa-20.2
    102         is released. Note that faster clocks than the default are not enabled
     99        now released firmware up to Ampere (GeForce30 series) to linux-firmware.
     100        Note that faster clocks than the default are not enabled
    103101        by the released firmware.
    104102      </para>
     
    156154      are no-longer supported for new fixes. New versions of AMD
    157155      firmware are rare and usually only apply to a few models, although
    158       motherboard manufacturers get extra updates which maybe update microcode
    159       along with the changes to support newer CPUs and faster memory.
     156      motherboard manufacturers get AGESA (AMD Generic Encapsulated Software
     157      Architecture) updates to change BIOS values, e.g. to support more memory
     158      variants or newer CPUs.
    160159    </para>
    161160
     
    177176
    178177    <para>
     178      In previous versions of this book, late loading of microcode to see if
     179      it gets applied was recommended, followed by using an initrd to force
     180      early loading. But now that the contents of the Intel microcode tarball
     181      is documented, and AMD microcode can be read by a Python script to
     182      determine which machines it covers, there is no real reason to use late
     183      loading.
     184    </para>
     185
     186    <para>
    179187      It is still possible to manually force late loading of microcode, either
    180188      for testing or to prevent having to reboot. You will need to reconfigure
     
    183191      forcing late loading to see if there is any microcode. If there is,
    184192      the instructions then show you how to create an initrd for early loading.
     193      It is also possible to build the same microcode bin file into the kernel,
     194      which allows early loading but requires the kernel to be recompiled to
     195      update the microcode
    185196    </para>
    186197
    187198    <para>
    188199      To confirm what processor(s) you have (if more than one, they will be
    189       identical) look in /proc/cpuinfo.
     200      identical) look in /proc/cpuinfo. Determine the decimal values of the cpu
     201      family, model and stepping by running the following command (it will also
     202      report the current microcode version):
     203    </para>
     204
     205<screen><userinput>head -n7 /proc/cpuinfo</userinput></screen>
     206
     207    <para>
     208      Convert the cpu family, model and stepping to pairs of hexadecimal digits.
     209      You can now check if there is any microcode available.
    190210    </para>
    191211
     
    195215      the Intel blobs to GenuineIntel.bin or cat all the AMD blobs to
    196216      AuthenticAMD.bin. This creates a larger initrd - for all Intel machines in
    197       the 20200609 update the size is 3.0 MB compared to typically 24 KB for one
     217      the 20200609 update the size was 3.0 MB compared to typically 24 KB for one
    198218      machine.
    199219    </para>
     
    210230        secure version of the microcode, for those machines which can boot it, -->
    211231        secure version of the microcode
    212         is microcode-20220207.<!-- If you have a Skylake machine, please read the
     232        is microcode-20220419.<!-- If you have a Skylake machine, please read the
    213233        Caution in the 'Early loading of microcode' section below.-->  Extract this
    214234        file in the normal way, the microcode is in the <filename>intel-ucode
     
    219239      <para>
    220240        In the past, intel did not provide any details of which blobs had
    221         changed versions, but now the release note details this.
     241        changed versions, but now the releasenote details this.
    222242      </para>
    223243
     
    232252      </para>
    233253
    234       <!-- commented, I don't think there is a new listed item for 2011-11 vulns
    235           (platypus etc : intel-sa-00381 and 0389)
    236           and anyway the very latest stable releases have backports : ken
    237       <para>
    238         The documentation on the latest SRBDS (Special Register Buffer Data
    239         Sampling) vulnerabilities/fixes will be documented in kernels 5.4.46,
    240         5.6.18, 5.7.2, 5.8.0 and later.
    241       </para>-->
    242 
    243       <para>
    244         Now you need to determine your processor's identity to see if there
    245         is any microcode for it. Determine the decimal values of the cpu family,
    246         model and stepping by running the following command (it will also report
    247         the current microcode version):
    248       </para>
    249 
    250 <screen><userinput>head -n7 /proc/cpuinfo</userinput></screen>
    251 
    252       <para>
    253         Convert the cpu family, model and stepping to pairs of hexadecimal
    254         digits. For a Skylake i3 6100 (described as Intel(R) Core(TM) i3-6100
     254      <para>
     255        For a Skylake i3 6100 (described as Intel(R) Core(TM) i3-6100
    255256        CPU) the relevant values are cpu family 6, model 94, stepping 3 so in
    256257        this case the required identification is 06-5e-03. A look at the blobs
    257258        will show that there is one for this CPU (although for older issues it
    258         might have already been applied by the BIOS). If there is a blob for
     259        might have already been applied by the BIOS).
     260        If there is a blob for
    259261        your system then test if it will be applied by copying it (replace
    260262        &lt;XX-YY-ZZ&gt; by the identifier for your CPU) to where the
     
    284286
    285287      <para>
    286         Then use the following command to see if anything was loaded:
     288        Then use the following command to check if anything was loaded:
    287289        (N.B. the dates when microcode was created may be months ahead of when
    288290        it was released.)
     
    330332          '&sources-anduin-http;/linux-firmware/amd-ucode/'/>.
    331333        The family is always specified in hex. Families 10h to 14h (16 to 20)
    332         are in microcode_amd.bin.  Families 15h, 16h and 17h have their own
    333         containers.  Create the required directory and put the firmware you
     334        are in microcode_amd.bin.  Families 15h, 16h, 17h (Zen, Zen+, Zen2) and
     335        19h (Zen3) have their own containers.  Very few machines are likely to
     336        get updated microcode. There is a Python3 script at <ulink url=
     337        'https://github.com/AMDESE/amd_ucode_info/blob/master/amd_ucode_info.py'/>.
     338        Download that script and run it against the bin file to check which
     339        processors have updates.
     340      </para>
     341
     342      <para>
     343        For the very old Athlon(tm) II X2 in these examples the values were
     344        cpu family 16, model 5, stepping 3 giving an identification of
     345        Family=0x10 Model=0x05 Stepping=0x03
     346      </para>
     347
     348      <para>
     349        If you wish to try late loading,
     350        create the required directory and put the firmware you
    334351        downloaded into it as the <systemitem
    335352        class="username">root</systemitem> user:
     
    358375
    359376      <para>
    360         Then use the following command to see if anything was loaded:
     377        Then use the following command to check if anything was loaded:
    361378      </para>
    362379
     
    599616
    600617      <para>
    601         Some Nvidia graphics chips need firmware updates to take advantage
    602         of all the card's capability.  These are generally the GeForce 8, 9,
    603         9300, and 200-900 series chips.  For more exact information, see
     618        Nvidia has released basic signed firmware for recent graphics chips,
     619        but significantly after the chips and its own binary drivers were first
     620        available. For other chips it has been necessary to extract the firmware
     621        from the binary driver.
     622      </para>
     623      <para>
     624        For more exact information about which chips need extracted firmware, see
    604625        <ulink url=
    605626          "https://nouveau.freedesktop.org/wiki/VideoAcceleration/#firmware"/>.
     
    617638
    618639      <para>
    619         The steps to install the Nvidia firmware are:
     640        If the necessary firmware is available in the
     641        <filename class="directory">nvidia/</filename> directory of
     642        linux-firmware, copy it to
     643        <filename class="directory">/lib/firmware/nouveau</filename>.
     644      </para>
     645      <para>
     646        If the firmware has not been made available in linux-firmware,
     647        for the old chips mentioned in the nouveau wiki link above ensure you have
     648        installed <xref linkend="python2"/> and run the following commands:
    620649      </para>
    621650
     
    623652wget http://us.download.nvidia.com/XFree86/Linux-x86/325.15/NVIDIA-Linux-x86-325.15.run
    624653sh NVIDIA-Linux-x86-325.15.run --extract-only
    625 python extract_firmware.py
     654python2 extract_firmware.py
    626655mkdir -p /lib/firmware/nouveau
    627656cp -d nv* vuc-* /lib/firmware/nouveau/</userinput></screen>
Note: See TracChangeset for help on using the changeset viewer.