Linux2.6内核中引入了sysfs文件系统。sysfs文件系统整理的设备驱动的相关文件节点,被视为dev文件系统的替代者。同时也拥有类似proc文件系统一样查看系统相关信息的功能。最主要的作用是sysfs把连接在系统上的设备和总线组织成分级的文件,使其从用户空间可以访问或配置。
Sysfs被加载在 /sys/目录下,它的子目录包括:
(本文以高通sdm630平台为例)
1) Block:在系统中发现的每个块设备在该目录下对应一个子目录,如mmcblk0对应eMMC设备主节点(此部分可以参考文章: linux驱动由浅入深系列:块设备驱动之一(高通eMMC分区实例)。每个子目录中又包含一些属性文件,它们描述了这个块设备的各方面属性,如:设备大小。(loop块设备是使用文件来模拟的)
我们查看/sys/block目录的详细信息,发现都是链接文件,指向了/sys/devices/下的设备:
2)Bus:在内核中注册的每条总线在该目录下对应一个子目录,如: ide pci scsi usbpcmcia 其中每个总线目录内又包含两个子目录:devices和drivers,devices目录包含了在整个系统中发现的属于该总线类型的设备,drivers目录包含了注册到该总线的所有驱动。
3)Class:将设备按照功能进行的分类,如/sys/class/net目录下包含了所有网络接口。
其中power_supply可以查看充电相关的信息:cat /sys/class/power_supply/battery/uevent
4)Devices:包含系统所有的设备。
该目录层次与devicetree中描述的设备层次是相互对应的。
如上图中的soc文件夹对应dtsi文件中的:
slv_wlan文件夹对应dtsi中的:
5)Kernel:内核中的配置参数
6)Module:系统中所有模块的信息
7)Firmware:系统中的固件
8)Fs:描述系统中的文件系统
9)Power:系统中电源选项
转载:https://blog.csdn.net/radianceblau/article/details/75047997