您的位置:首页 > 运维架构 > Linux

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

2018-01-16 09:01 1501 查看

【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 )
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: