【TINY4412】LINUX学习笔记:(4)sysfs、debugfs、procfs文件系统

2019-07-12 21:46发布

【TINY4412】LINUX学习笔记:(4)procfs、sysfs、debugfs 文件系统

宿主机 : 虚拟机 Ubuntu 16.04 LTS / X64
目标板[底板]: Tiny4412SDK - 1506
目标板[核心板]: Tiny4412 - 1412
LINUX内核: 4.12.0
交叉编译器: arm-none-linux-gnueabi-gcc(gcc version 4.8.3 20140320)
日期: 2017-8-24 20:07:43
作者: SY

procfs

procfs 历史最早,最初就是用来跟内核交互的唯一方式,用来获取处理器、内存、设备驱动、进程等各种信息。

挂载

默认挂载目录:/proc root@ubuntu:/opt/fs/rootfs/rootfs# cat etc/fstab #device mount-point type options dump fsck order proc /proc proc defaults 0 0 root@ubuntu:/opt/fs/rootfs/rootfs# vim etc/init.d/rcS [ -e /proc/1 ] || /bin/mount -n -t proc none /proc

sysfs

sysfskobject 框架紧密联系,而 kobject 是为设备驱动模型而存在的,所以 sysfs 是为设备驱动服务的。

设备树

Device Drivers —> GPIO Support —> [*] /sys/class/gpio/... (sysfs interface)

挂载

默认挂载目录:/sys root@ubuntu:/opt/fs/rootfs/rootfs# cat etc/fstab #device mount-point type options dump fsck order sysfs /sys sysfs defaults 0 0 root@ubuntu:/opt/fs/rootfs/rootfs# vim etc/init.d/rcS [ -e /sys/class ] || /bin/mount -n -t sysfs none /sys

遍历 gpio

[root@TINY4412:~]# cd /sys/class/gpio/ [root@TINY4412:/sys/class/gpio]# for i in gpiochip* ; do echo `cat $i/label`: `cat $i/base` ; done gpa0: 0 gpk3: 104 gpl0: 111 gpl1: 118 gpl2: 120 gpm0: 128 gpm1: 136 gpb: 14

debugfs

debugfs 从名字来看就是为 debug 而生,所以更加灵活。

挂载

默认挂载目录:/sys/kernel/debug root@ubuntu:/opt/fs/rootfs/rootfs# cat etc/fstab #device mount-point type options dump fsck order dbgfs /sys/kernel/debug dbgfs defaults 0 0 root@ubuntu:/opt/fs/rootfs/rootfs# vim etc/init.d/rcS /bin/mount -t debugfs none /sys/kernel/debug

查看 gpio 资源

[root@TINY4412:/sys/kernel/debug]# cat gpio gpiochip0: GPIOs 0-7, parent: platform/11400000.pinctrl, gpa0: gpiochip1: GPIOs 8-13, parent: platform/11400000.pinctrl, gpa1: gpiochip2: GPIOs 14-21, parent: platform/11400000.pinctrl, gpb: gpiochip3: GPIOs 22-26, parent: platform/11400000.pinctrl, gpc0: gpiochip4: GPIOs 27-31, parent: platform/11400000.pinctrl, gpc1: gpiochip5: GPIOs 32-35, parent: platform/11400000.pinctrl, gpd0:

参考

Linux 文件系统:procfs, sysfs, debugfs 用法简介 Linux内核里的DebugFS )