转载:linux驱动层到应⽤层的重要接⼝sys⽂件系统---sys⽬录
详解linux驱动层到应⽤层的重要接⼝sys⽂件系统---/sys⽬录详解
Linux2.6内核中引⼊了sysfs⽂件系统。sysfs⽂件系统整理的设备驱动的相关⽂件节点,被视为dev⽂件系统的替代者。同时也拥有类似proc⽂件系统⼀样查看系统相关信息的功能。最主要的作⽤是sysfs把连接在系统上的设备和总线组织成分级的⽂件,使其从⽤户空间可以访问或配置。
Sysfs被加载在 /sys/⽬录下,它的⼦⽬录包括:(本⽂以⾼通sdm630平台为例)
1) Block:在系统中发现的每个块设备在该⽬录下对应⼀个⼦⽬录,如mmcblk0对应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/uevent4)Devices:包含系统所有的设备。
该⽬录层次与devicetree中描述的设备层次是相互对应的。如上图中的soc⽂件夹对应dtsi⽂件中的:
slv_wlan⽂件夹对应dtsi中的:
5)Kernel:内核中的配置参数
6)Module:系统中所有模块的信息
7)Firmware:系统中的固件
8)Fs:描述系统中的⽂件系统
9)Power:系统中电源选项