Linux configfs的使用

1. 体验1.1 使用所有命令都是在开发板上执行。
挂载 configfs 文件系统
# modprobe libcomposite# mount -t configfs none /sys/kernel/config# ls /sys/kernel/config/usb_gadget#ls /sys/kernel/config/usb_gadget // 一开始它是空目录创建目录
# cd /sys/kernel/config/usb_gadget# mkdir test_serial# ls test_serial/ -ltotal 0-rw-r--r-- 1 root root 4096 jan 1 03:20 udc-rw-r--r-- 1 root root 4096 jan 1 03:20 bdeviceclass-rw-r--r-- 1 root root 4096 jan 1 03:20 bdeviceprotocol-rw-r--r-- 1 root root 4096 jan 1 03:20 bdevicesubclass-rw-r--r-- 1 root root 4096 jan 1 03:20 bmaxpacketsize0-rw-r--r-- 1 root root 4096 jan 1 03:20 bcddevice-rw-r--r-- 1 root root 4096 jan 1 03:20 bcdusbdrwxr-xr-x 2 root root 0 jan 1 01:49 configsdrwxr-xr-x 2 root root 0 jan 1 01:49 functions-rw-r--r-- 1 root root 4096 jan 1 03:20 idproduct-rw-r--r-- 1 root root 4096 jan 1 03:20 idvendordrwxr-xr-x 2 root root 0 jan 1 01:49 os_descdrwxr-xr-x 2 root root 0 jan 1 01:49 strings创建目录后,里面就自动生成了很多文件、目录,比如:
idvendor:表示厂家 id,默认值是 0idproduct:表示产品 id,默认值是 0设置设备描述符,比如设置厂家 id、产品 id,这是可选的
echo 0x1234 > idvendorecho 0x5678 > idproduct创建配置:格式为configs/.,name 可以取任意字符,number 是配置编号
mkdir configs/c.1创建功能(function、接口):格式为functions/.,name 对应 function 的名字,比如 acm 对应 acm 功能,对应的驱动为usb_f_acm.ko;instance name 可以取任意字符
mkdir functions/acm.test1把配置和功能联系起来:ln -s functions/. configs/.
ln -s functions/acm.test1 configs/c.1/使能 gadget(确定使用哪个 usb device controller):echo > udc,可用的 udc,可以在 /sys/class/udc/* 目录下查看
echo ci_hdrc.0 > udc1.2 清除禁止 gadget echo > udc移除配置里的功能(remove functions from configurations):命令:rm configs/./ rm configs/c.1/acm.test1移除配置:rmdir configs/. rmdir configs/c.1移除功能:rmdir functions/. rmdir functions/acm.test1移除 gadget rmdir test_serial1.3 stm32mp157上的实验因为 stm32mp157 系统里已经使用 adb 设备,要想模拟串口设备,需要先清除 adb,命令如下:
cd /sys/kernel/config/usb_gadget/g1echo > udcrm configs/b.1/ffs.adbrmdir configs/b.1/strings/0x409rmdir configs/b.1rmdir functions/ffs.adbrm strings/0x409cd ..rmdir g1清除后,就按照《1.1 使用》来操作,需要注意的是最后一步:
ls /sys/class/udc/49000000.usb-otgecho 49000000.usb-otg > udc

人脸识别再现弊端,对出入口控制系统带来那些影响
LTC3225/LTC3225-1-150mA超级电容充电器
变压器电源污染及其解决方案
浅谈电连接器过热注意事项以及电连接器的常见故障
国芯思辰|基于京微齐力HME-R(河)系列FPGA CME-HR03PN0Q68的国产激光打印机控制系统解决方案
Linux configfs的使用
Xilinx如何在模拟混合信号评估平台上整合数字和模拟?
pcb的插件有哪一些连接的方式
电动机原理与结构图
GaN HEMT大信号模型
中国信息通信研究院与恩智浦签订智能网联汽车/车联网战略合作协议
MP4播放器音视频端口
卷积码状态图怎么画 卷积编码器状态图画法
搭载联发科 helio x25处理器的手机有哪些
LT8390低EMI降压-升压可实现高功率和高效率
凯迪拉克展示以氢气为动力的飞行赛车
FORESEE S58A:一款来自Longsys江波龙的高稳定性SSD
智能家居的主流有线协议介绍
追赶台积电! 三星计划2022年3nm量产
分析总结2020年中国太阳能光伏发电应用现状