私は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 W2100(Erlanチップセット)この表には、次のファームウェアバイナリがリストされています。
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
れます。
ファームウェアバイナリを含める方法は次のとおりです。
モジュールではなくカーネルに直接ラドンドライバ(および直接レンダリングマネージャ)をビルドする必要があります。モジュールはファイルシステムからロードする必要があります。
CONFIG_EXTRA_FIRMWARE_DIR
次のように構成されています/lib/firmware
、位置分布はバイナリイメージをインストールします。これにより、ファームウェアバイナリをコピーする必要がなくなります。リストにファームウェアファイルを一覧表示します
CONFIG_EXTRA_FIRMWARE
。複数のファイルはスペースで区切られます。
使用メニュー構成:
radeonドライバをカーネルに直接ビルドします。
Device Drivers ---> Graphics support ---> <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> <*> AMD GPU
ファームウェアを含む
Device Drivers ---> Generic Driver Options ---> [*] Include in-kernel firmware blobs in kernel binary (radeon/... radeon/...) (/lib/firmware) Firmware blobs root directory