当前位置:首页>Linux>Linux 必学目录:/sys/firmware

Linux 必学目录:/sys/firmware

  • 2026-09-07 10:24:26
Linux 必学目录:/sys/firmware
大家好!我是大虫子🐛!
咱们继续 /sys 目录,这次分享的是 /sys/firmware 目录~
在 Linux 里,/sys/firmware 目录专门负责对接系统固件,是我们查看和管理固件信息的关键入口。像 UEFI、设备树(Device Tree)这类固件相关内容,都能在这个目录下找到。搞懂它,对我们管理系统启动、排查和调试固件问题,都有很大帮助。
目录结构
以下是 /sys/firmware 目录中常见的子目录和文件的详细介绍:
1. /sys/firmware/efi
描述: 这个目录包含与 UEFI 固件相关的信息。UEFI 是现代计算机的固件接口,取代了传统的 BIOS。
常用文件 / 子目录:
  • /sys/firmware/efi/systab:UEFI 系统表地址,内核用于和 UEFI 交互。
  • /sys/firmware/efi/efivars/:UEFI 变量存储目录(最重要)。存放启动项、安全启动、固件参数等 UEFI 变量,efibootmgr 命令就是读写这个目录。
  • /sys/firmware/efi/config_table:UEFI 配置表信息。
使用示例:
# 查看是否为 UEFI 启动(有目录则是)ls /sys/firmware/efi# 查看 UEFI 变量ls /sys/firmware/efi/efivars/
2. /sys/firmware/devicetree
描述: 此目录包含设备树(Device Tree)相关的信息。设备树是一种数据结构,用于描述硬件设备的配置,特别是在嵌入式系统中。
核心目录:
/sys/firmware/devicetree/base/:设备树根节点,包含所有硬件描述。
  • model:设备型号(如树莓派 4B)。
  • compatible:设备兼容属性。
  • serial-number:设备序列号。
  • 子节点:cpu、memory、uart、gpio 等硬件信息。
使用示例:
# 查看设备型号cat /sys/firmware/devicetree/base/model# 查看内存配置ls /sys/firmware/devicetree/base/memory
3. /sys/firmware/acpi
描述: 该目录包含与 ACPI(高级配置和电源接口)相关的信息。ACPI 是一种用于电源管理和硬件配置的标准。
常用内容:
  • /sys/firmware/acpi/tables/:存放系统所有 ACPI 表(DSDT、SSDT 等),硬件兼容性调试必备。
  • /sys/firmware/acpi/interrupts/:ACPI 中断信息。
  • /sys/firmware/acpi/power_resource/:电源资源管理。
作用:排查服务器无法休眠、电源管理异常、硬件识别失败时,必查这个目录。
使用示例:
ls /sys/firmware/acpi/cat /sys/firmware/acpi/tables/*  # 查看所有 ACPI 表
4. /sys/firmware/dmi(硬件信息,x86 桌面 / 服务器)
DMI(桌面管理接口)是固件记录硬件出厂信息的模块,我们常用的 dmidecode 命令,就是读取这个目录的数据。
存放信息:
  • 主板型号、厂商、序列号
  • BIOS 版本、发布日期
  • 处理器、内存、机箱信息
常用文件:
  • /sys/firmware/dmi/tables/smbios_entry_point:SMBIOS 入口点。
  • /sys/firmware/dmi/entries/:按类型分类的 DMI 条目。
作用:无需安装工具,直接读取硬件出厂信息,适合自动化脚本。
5. 其他常见子目录
  • /sys/firmware/meminit:内核启动时内存初始化相关信息。
  • /sys/firmware/qemu_fw_cfg:QEMU 虚拟机固件配置接口,虚拟机专用。
  • /sys/firmware/opal:IBM Power 平台专用固件接口。
关键功能和用途
1. 固件变量管理:
  • 通过 /sys/firmware/efi/efivars 目录,可以管理 EFI 变量,这对于定制系统启动过程、配置安全启动等非常重要。
2. 设备树支持:
  • 在嵌入式系统中,设备树提供了一种描述和配置硬件的平台无关的方法,使得 Linux 内核能够更灵活地支持多种硬件。
3. 电源管理:
  • ACPI 相关的信息可以帮助系统管理员和开发者优化电源使用,监控系统的电源状态,确保高效的电源管理。
4. 调试和故障排查:
  • 可以通过查看固件和设备树信息来调试硬件问题、启动失败等故障,为开发和维护提供支持。
实际应用
1. 修改启动选项:
  • 使用 efivars 目录中的变量,可以改变系统的启动顺序或启用/禁用安全启动等功能。
2. 检查硬件配置:
  • 通过设备树信息,可以确认系统是否正确识别了所有硬件组件,并且能够配置它们。
3. ACPI 监控:
  • 监控 ACPI 表和状态,可以帮助管理员了解系统的电源使用情况,并进行相应的优化。
注意事项(必看)
1、绝大多数文件只读,不要强行修改
固件信息固化在硬件 / 固件中,修改 /sys/firmware 不会改变底层配置,还可能导致内核异常。
2、平台不同,内容差异极大
不要在 x86 机器找 devicetree,也不要在 ARM 板卡找 efi。
3、排查启动 / 硬件问题的关键目录
开机异常、电源管理失效、硬件识别失败,优先查看 /sys/firmware 下的日志和表信息。
4、普通用户可查看,无需 root
该目录默认开放读权限,普通用户也能查看信息,无需 sudo。

最新文章

随机文章