#author("2022-04-28T12:41:43+00:00","","")
#author("2022-04-28T12:42:17+00:00","","")
[[diary/Kojima]]

・Linux firmware

最近、周辺機器用のfirmwareはカーネルとは独立したlinux_firmwareパッケージで配布されている。/lib/firmware/ 以下のfirmwareは一つ一つは小さいものの、全部合わせると848MBと結構な規模になる。

最近の大容量なHDDから見ると「848MB」は微々たるものなんだけど、インストーラのようにシステム一式をinitramfsに載せる場合、圧縮した状態で200MBくらいに抑えているのでfirmwareを全部入れるのは難しい。

  カーネルと共に initramfs イメージも読み込むのだけど、そこで結構時間がかかっているので、あまりinitramfsを大きくしたくない。
  起動時に、カーネルと共にinitramfsイメージも読み込むのだけど、そこで結構時間がかかっているので、あまりinitramfsを大きくしたくない。

firmwareの多くは無線LANとかGPU、サウンドカード用なので、インストールの際にはあまり必要ないか、と思って省いていたものの、手元のGPU組み込みなRyzen5(AMD Ryzen 5 3400G with Radeon Vega Graphics)で試したところ、/lib/firmware/amdgpu/ 以下の firmware が無いと正しく初期化できないようで、KMSが機能し始めたあたりで動作不能に陥いる(KMSな画面に切り替わらない)。

  もちろん、VirtualBoxとかではfirmwareが無くても問題なく表示できるし、VESAなVGAモードを表示するだけならfirmwareは必要なかろう、
  と思ってたんだけど、KMSが絡むとそういうわけにもいかないらしい。

仕方ないんで、インストーラに /lib/firmware/amdgpu/ 以下を持ちこんでみると、KMSも無事動作して、実機インストールもできたんだけど、他にも必須もfirmwareがあるんだろうなぁ。。とりあえず intel と nvidia なfirmware はインストーラに持ち込んでおくべきかな。
- 結局のところ、今のlinux-firmwareは、各社のfirmwareを集めただけで、どのfirmwareがどこの何用か、という情報が無いから、どこまでがインストーラでも必要になるかを見極められないんだよなぁ。。 -- [[kojima]] &new{2022-04-28 (木) 21:23:35};

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS