Ignore:
Timestamp:
07/17/2023 06:20:34 PM (10 months ago)
Author:
Xi Ruoyao <xry111@…>
Branches:
12.0, 12.1, ken/TL2024, ken/tuningfonts, lazarus, plabs/newcss, python3.11, rahul/power-profiles-daemon, renodr/vulkan-addition, trunk, xry111/llvm18
Children:
cb88494
Parents:
f3991348 (diff), db58c760 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'xry111/xf86-video-removal' into trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • postlfs/config/firmware.xml

    rf3991348 re56ca042  
    495495cp -v &lt;YOUR_BLOBS&gt; /lib/firmware/radeon</userinput></screen>
    496496
    497       <para>
    498         There are actually two ways of installing this firmware. BLFS, in the
    499         'Kernel Configuration for additional firmware' section part of the
    500         <xref linkend="xorg-ati-driver"/> section gives an example of
    501         compiling the firmware into the kernel - that is slightly faster to
    502         load, but uses more kernel memory. Here we will use the alternative
    503         method of making the radeon driver a module. In your kernel config
    504         set the following:
    505       </para>
    506 
    507 <screen><literal>Device Drivers ---&gt;
    508   Graphics support ---&gt;
    509       Direct Rendering Manager ---&gt;
    510         [*] Direct Rendering Manager (XFree86 ... support)  [CONFIG_DRM]
    511       [M] ATI Radeon                                        [CONFIG_DRM_RADEON]</literal></screen>
    512 
    513       <para>
    514         Loading several large blobs from /lib/firmware takes a noticeable
    515         time, during which the screen will be blank. If you do not enable the
    516         penguin framebuffer logo, or change the console size by using a bigger
    517         font, that probably does not matter. If desired, you can slightly
    518         reduce the time if you follow the alternate method of specifying 'y'
    519         for CONFIG_DRM_RADEON covered in BLFS at the link above &mdash; you
    520         must specify each needed radeon blob if you do that.
    521       </para>
     497    <para>
     498      Building the kernel amdgpu driver as a module is recommended because
     499      the firmware files need to be accessible at the time it is loaded.
     500      If you are building it as a part of the kernel image for any reason,
     501      you need to either include the firmware files in the initramfs (read
     502      <xref linkend='initramfs'/> for details), or include them in the
     503      kernel image itself (read <xref linkend='firmware-in-kernel-image'/>
     504      for details).
     505    </para>
    522506
    523507    </sect3>
     
    563547
    564548    <para>
    565       Building the kernel amdgpu driver as a module is recommended.
    566       In your kernel .config set at least the following options and review
    567       the other AMDGPU options according to your target hardware,
    568       for example "ACP (Audio Co-Processor) Configuration":
    569     </para>
    570 
    571 <screen><literal>Device Drivers ---&gt;
    572   Graphics support ---&gt;
    573       Direct Rendering Manager ---&gt;
    574         [*] Direct Rendering Manager (XFree86 ... support)  [CONFIG_DRM]
    575         [M] AMD GPU                                         [CONFIG_DRM_AMDGPU]
    576         Display Engine Configuration ---&gt;
    577           [*] AMD DC - Enable new display engine (NEW)      [CONFIG_DRM_AMD_DC]</literal></screen>
    578 
    579       <para>
    580         As written above at the end of the section on 'Firmware for ATI video
    581         chips', loading large blobs from /lib/firmware can take a noticeable
    582         time during which the screen will be blank. On a slow machine you might
    583         wish to refer to the 'Kernel Configuration for additional firmware'
    584         part of <xref linkend="xorg-amdgpu-driver"/> and compile all the
    585         required modules into the kernel to reduce this time, at the cost of
    586         using more kernel memory.
    587       </para>
     549      Building the kernel amdgpu driver as a module is recommended because
     550      the firmware files need to be accessible at the time it is loaded.
     551      If you are building it as a part of the kernel image for any reason,
     552      you need to either include the firmware files in the initramfs (read
     553      <xref linkend='initramfs'/> for details), or include them in the
     554      kernel image itself (read <xref linkend='firmware-in-kernel-image'/>
     555      for details).
     556    </para>
    588557
    589558    </sect3>
     
    756725  </sect2>
    757726
     727  <sect2 id='firmware-in-kernel-image'>
     728    <title>Include Firmware Blobs in the Kernel Image</title>
     729
     730    <para>
     731      Some drivers, notably the drivers for ATI or AMD GPU, requires the
     732      firmware files accessible at the time it is loaded.  The easiest
     733      method to handle these drivers is building them as a kernel module.
     734      An alternative method is creating an initramfs (read
     735      <xref linkend='initramfs'/> for details) including the firmware files.
     736      If you don't want to use either methods, you may include the firmware
     737      files in the kernel image itself.  Install the needed firmware files
     738      into <filename class='directory'>/lib/firmware</filename> first, then
     739      set the following kernel configuration and rebuild the kernel:
     740    </para>
     741
     742    <screen><literal>Device Drivers  ---&gt;
     743  Generic Driver Options  ---&gt;
     744    Firmware loader ---*gt;
     745      -*- Firmware loading facility
     746      (<replaceable>amdgpu/aaaa.bin amdgpu/bbbb.bin</replaceable>) Build named firmware blobs into the kernel binary
     747      (/lib/firmware) Firmware blobs root directory</literal></screen>
     748
     749    <para>
     750      Replace <replaceable>amdgpu/aaa.bin amdgpu/bbbb.bin</replaceable>
     751      with a whitespace-separated list of paths to the needed firmware
     752      files, relative to
     753      <filename class='directory'>/lib/firmware</filename>.  A method
     754      easier than manually typing the list (it may be long) is running the
     755      following command:
     756    </para>
     757
     758    <screen><userinput>echo CONFIG_EXTRA_FIRMWARE='"'$({ cd /lib/firmware; echo <replaceable>amdgpu/*</replaceable> })'"' &gt;&gt; .config
     759make oldconfig</userinput></screen>
     760
     761    <para>
     762      Replace <replaceable>amdgpu/*</replaceable> with a shell pattern
     763      matching the needed firmware files.
     764    </para>
     765
     766    <warning>
     767      <para>
     768        Do not distribute a kernel image containing the firmware to others
     769        or you may violate GPL.
     770      </para>
     771    </warning>
     772
     773  </sect2>
     774
    758775</sect1>
Note: See TracChangeset for help on using the changeset viewer.