エントリー

dynamic debug、E200HA

E200HAにArchを、その24

linux-firmwareメタパッケージをインストールすることで、よく使われるすべてのファームウェアを取得できます。これはほとんどのユーザーに推奨される方法です。ディスク容量を節約したい場合は、自身のシステムで使用しているハードウェアベンダー向けのファームウェアのみを選んでインストールすることもできます。

ArchWikiの「Linux ファームウェア」の項でそう解説されている。

確かに「ディスク容量を節約」したい。何せ、容量は全部合わせると350MBを優に超えていて、当家のE200HAでは、32GBしかないストレージの内、1%以上を占めている。

そのこともさることながら、より大きな気掛かりは、pacmanによる更新作業。更新対象となる時には、その大きな容量のファイル群がダウンロードされ置き換えられる。10/21付け最新版が出た折にも、無駄なDLをしているように思えてならなかった。

必ずしも全部が要るわけではない。そうならば、必要な「ファームウェアのみを選んでインストール」しようじゃないか、と以前から考えていた(cf.その17)。

lspciやinxiでシステム情報を見る。dmesgが吐き出す文字を読む。そんなこんなで、どんなファームウェアが必要とされるのか、だいたい判る。が、詳細は不明。

上で引用したArchWikiのページに、ヒントとテクニック「読み込まれたファームウェアの検出」という項目がある。これだ。PC起動時に「どのファームウェアが読み込まれたか」それは「dynamic debug」で確認可能。これには少し手の込んだ作業が要る。

以下の文字列を、カーネルへ渡す。具体的には、PC起動時、systemd-bootのメニューが表示されたら、eのキーを押し、現れた窓に文字列を書き込む。先客あればスペースを一つ挟んで後ろに追記。ブートを続行する。

dyndbg="func fw_log_firmware_info +p"

立ち上がったら、念のため、カーネルコマンドラインに、上記文字列が、一時的に追加されたことを確認。そして、読み込まれたファームウェアを一覧表示する。

$ cat /proc/cmdline
$ journalctl -kg 'loaded f'

結果、以下のファームウェアが読み込まれたと表示された。わずか3つ。ath10kはlspciでも表示されていたWiFi関係。fw_sst_22a8はノーマークだった。音がらみの模様。

Loaded FW: intel/fw_sst_22a8.bin
Loaded FW: ath10k/QCA9377/hw1.0/firmware-6.bin
Loaded FW: ath10k/QCA9377/hw1.0/board-2.bin

なるほど、この3つさえあればいいんだな。思い切って、これだけ残してあとは全部削除してみることにした(ある程度、予備テストした上で)。

3つ(ath10kの方はフォルダごと)をバックアップしておいて、linux-firmware群すべてを削除($ yay -Rdd )し、バックアップを元の場所へ戻した。その容量、計1MBほど。

リブートすると、音も出るしネットワーク接続も問題なし。成功。ただし、firmwareを削除する作業の際には以下のような、どきっとするメッセージがちらほら出ていた。何か支障が出ないか、しばらくは様子を見てみよう。

WARNING: Possibly missing firmware for module: 'i915'

E200HAにArchをlinux-firmware、E200HA(いずれもサイト内)

linux-firmware 20251021-1|Arch Linux Packages
Linux ファームウェア|ArchWiki
systemd-boot|ArchWiki
カーネルパラメータ|ArchWiki
Dynabook tab s80/fにChromeOS FlexをインストールしてChromebook化

ページ移動

ユーティリティ

« 2025年12月 »

- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

検索

エントリー検索フォーム
キーワード

新着エントリー

過去ログ

Feed