configfs

本文详细介绍了configfs,一种内存中的文件系统,用于在用户空间配置内核对象。它与ioctl和sysfs的区别,以及何时使用configfs,如何检查其安装和组织结构都被涵盖。
摘要由CSDN通过智能技术生成

一、什么是configfs
    是一种基于ram的文件系统
二、configfs有什么用处
    在用户空间配置内核对象
三、configfs VS ioctl
    configfs可直接察看,通过用户态目录文件访问接口,适用于内核对象有众多复杂的配置。
四、configs VS sysfs
    configfs可以在用户态创建和删除内核对象。
五、什么时候用configfs
    当内核需要很多参数需要配置时;
    当需要动态创建内核对象并且内核对象需要修改配置时;
    不想写用户态程序和ioctl时,写shell脚本就可以直接配置configfs。
六、怎么知道系统上是否已经安装了configfs,安装在哪个目录
    执行如下命令,可以看到安装目录为/sys/kernel/config
        cat /proc/mounts | grep configfs
            configfs /sys/kernel/config configfs rw,relatime 0 0
七、configfs组织结构是怎么样的
    顶层结构是struct configfs_subsystem,为configfs子系统结构,
    接着是struct config_group,是configfs目录和属性的容器,
    struct config_item是configfs目录,代表可配置的内核对象,
     struct configfs_attribute是目录下面的属性。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在嵌入式Linux下,设备树(device tree)用来描述硬件平台的各种资源,Linux内核在启动过程中,会解析设备树,获取各种硬件资源来初始化硬件。设备树的overlay功能是指可以在系统运行期间动态修改设备树。一般情况下,如上图所示,设备树经过DTC编译器编译为二进制的hello.dtb文件,加载到内存,随Linux内核一起启动后,一般就无法更改了。如果我们想修改设备树,需要修改hello.dts文件文件,重新编译成二进制文件:hello.dtb,然后重新启动内核,重新解析。有了设备树的overlay功能,省去了设备树的重新编译和内核重启,我们可以直接编写一个设备树插件:overlay.dts,编译成overlay.dtbo后,直接给设备树“打补丁”,在运行期间就可以动态添加节点、修改节点...设备树的overlay功能,在很多场合都会用得到,会让我们的开发更加方便:外界插拔设备,无法在设备树中预先描述:耳机树莓派 + FPGA开发板基于I2C的温度传感器管脚的重新配置:PIN multiplexing修改bootcmd、分区...设备树的overlay功能,目前还没有加入到内核mainline(linux-5.10.x),但目前有些开发板和配套的BSP已经支持了,支持在系统运行期间动态修改设备树文件。如果你手头的开发板或内核平台还没有支持device tree overlay,可以学习本期课程,学习内核中设备树overlay的实现原理,如何给内核打补丁,使内核支持设备树的overlay功能。有了本期课程的学习基础,明白了设备树overlay的实现原理和运行机制,你就可以尝试在自己的开发板平台上实现这个功能了。本期课程的主要内容如下:在开发板上如何实现设备树的overlay功能Configfs文件系统的配置与挂载Configfs编程接口如何编写设备树 overlay插件设备树 overlay的编译和运行设备树overlay运行机制分析本期课程适合哪些人学习:嵌入式驱动工程师嵌入式BSP工程师嵌入式软件工程师想从事嵌入式开发的同学全网首家讲解设备树overlay的视频教程。   
configfs是用于在Linux内核中创建和管理虚拟文件系统的工具。通过configfs,我们可以使用用户态工具创建虚拟目录及文件,并将其与内核中的驱动程序或功能模块关联起来。 configfs gadget是configfs的一个特性,它允许我们将一个设备模拟为USB gadget,从而实现与主机之间的通信。gadget是指在USB架构中,作为"设备"的一方。使用configfs gadget,我们可以模拟出各种不同类型的USB设备,例如存储设备、网络设备、音频设备等。 为了使用configfs gadget,我们需要编写一些驱动程序以及相应的功能模块,并将其注册到内核中。然后,我们可以通过configfs提供的API,在用户态下创建虚拟文件系统,并将这些驱动程序和功能模块与相应的目录和文件关联起来。这样,当主机连接到模拟的USB gadget时,内核通过configfs可以将对应的驱动程序和功能模块加载并启动,从而实现设备的模拟和通信。 使用configfs gadget的好处是可以快速方便地模拟各种类型的USB设备,方便开发和测试。同时,它也提供了灵活的接口,可以根据需要调整设备的功能和行为。此外,与传统的编写驱动程序并重新编译内核相比,configfs gadget的使用方式更加简洁和灵活。 总之,configfs gadget是一种使用configfs工具在Linux内核中创建和管理虚拟USB设备的方法,它可以快速方便地模拟各种类型的USB设备,并提供灵活的接口进行相关调整和测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值