カーネルバイナリにカーネル内のファームウェアブロブを含める

カーネルバイナリにカーネル内のファームウェアブロブを含める

私はDebian Stretchでカーネル(4.4.x)をコンパイルしています。

CONFIG_FIRMWARE_IN_KERNEL
CONFIG_EXTRA_FIRMWARE

ファームウェアファイルをインストールしました/lib/firmware/

apt-get install firmware-amd-graphics

特定のグラフィックカードにどのファームウェアファイルを含めるべきかをどのように知ることができますか?

VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Oland GL [FirePro W2100]

次のファームウェアファイルの一部が必要であるとします。

/lib/firmware/radeon/oland_*.bin

しかし、どれ?

通常、特定のハードウェア/ドライバに必要なファームウェアファイルを見つけるプロセスは何ですか?

ベストアンサー1

Gentoo WikiRadeonの記事カーネルバイナリにファームウェアを含める方法を説明します。このドキュメントには、各GPUモデルに必要なファームウェアバイナリがリストされている表も含まれています。あなたのためFirePro W2100Erlanチップセット)この表には、次のファームウェアバイナリがリストされています。

radeon/oland_ce.bin radeon/oland_mc.bin radeon/oland_me.bin
radeon/oland_pfp.bin radeon/oland_rlc.bin radeon/oland_smc.bin 
radeon/TAHITI_uvd.bin

dmesg| grep "direct-loading firmware"システムで使用されているカーネルログを確認すると、どのファームウェアが自動的にロードされたかがわかります。

radeon 0000:01:00.0: firmware: direct-loading firmware radeon/OLAND_pfp.bin
radeon 0000:01:00.0: firmware: direct-loading firmware radeon/OLAND_me.bin
radeon 0000:01:00.0: firmware: direct-loading firmware radeon/OLAND_ce.bin
radeon 0000:01:00.0: firmware: direct-loading firmware radeon/OLAND_rlc.bin
radeon 0000:01:00.0: firmware: direct-loading firmware radeon/OLAND_mc2.bin
radeon 0000:01:00.0: firmware: direct-loading firmware radeon/OLAND_smc.bin
radeon 0000:01:00.0: firmware: direct-loading firmware radeon/TAHITI_uvd.bin

この方法は、Gentoo Wikiのテーブルで使用されるデータを収集するために使用されるようです。

ビルド中にカーネルイメージに含まれるファームウェアは、以下を使用して設定されます。CONFIG_EXTRA_FIRMWAREオプション。ビルドシステムが追加のファームウェアを探すディレクトリは、オプションを使用して設定さCONFIG_EXTRA_FIRMWARE_DIRれます。

ファームウェアバイナリを含める方法は次のとおりです。

  1. モジュールではなくカーネルに直接ラドンドライバ(および直接レンダリングマネージャ)をビルドする必要があります。モジュールはファイルシステムからロードする必要があります。

  2. CONFIG_EXTRA_FIRMWARE_DIR次のように構成されています/lib/firmware、位置分布はバイナリイメージをインストールします。これにより、ファームウェアバイナリをコピーする必要がなくなります。

  3. リストにファームウェアファイルを一覧表示しますCONFIG_EXTRA_FIRMWARE。複数のファイルはスペースで区切られます。

使用メニュー構成:

  1. radeonドライバをカーネルに直接ビルドします。

    Device Drivers  --->
        Graphics support  --->
            <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)  --->
            <*> AMD GPU 
    
  2. ファームウェアを含む

    Device Drivers  --->
        Generic Driver Options  --->
            [*] Include in-kernel firmware blobs in kernel binary
                (radeon/... radeon/...)
                (/lib/firmware) Firmware blobs root directory
    

おすすめ記事