跳转至内容

Linux 固件

来自 ArchWiki
(重定向自 Firmware)

Linux firmware 是一个固件二进制大对象 (binary blobs)集合,随内核一同分发,对于某些硬件设备的部分或全部功能至关重要。这些二进制大对象不允许包含在 GPL 许可的作品中,但被允许在单独的覆盖下重新分发。

需要固件的典型硬件类型:

安装

安装 linux-firmware 元软件包以获取所有常用固件。这是大多数用户的推荐方式。为了节省空间,您可以选择仅安装系统所使用的特定硬件供应商的固件。

警告 缺少必要的固件可能会导致您的系统无法运行。

linux-firmware 包含的主要软件包:

可选包

第三方包

技巧与提示

检测已加载的固件

有时为了调试或选择要安装的固件包,您需要知道系统加载了哪些固件。这可以通过使用动态调试 (dynamic debug)来实现。

  • dyndbg="func fw_log_firmware_info +p" 添加到内核参数中。
注意 根据引导加载程序的不同,引号可能需要进行转义。
  • 修改内核参数后,列出已加载的固件 (loaded firmware)
# journalctl -kg 'loaded f'
Jan 01 00:00:00 example kernel: amdgpu 0000:03:00.0: Loaded FW: amdgpu/psp_13_0_0_sos.bin, sha256: SHA_sum
Jan 01 00:00:00 example kernel: amdgpu 0000:6d:00.0: Loaded FW: amdgpu/vcn_3_1_2.bin, sha256: SHA_sum
…
Jan 01 00:00:00 example kernel: bluetooth hci0: Loaded FW: mediatek/BT_RAM_CODE_MT7922_1_1_hdr.bin, sha256: SHA_sum
Jan 01 00:00:00 example kernel: mt7921e 0000:0a:00.0: Loaded FW: mediatek/WIFI_RAM_CODE_MT7922_1.bin, sha256: SHA_sum

参见

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.