【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
sysfs
跟
kobject
框架紧密联系,而
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 )