网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

Linux configfs的使用

时间:2023-07-13 10:59

人气:

作者:admin

标签: 开发板 

导读:1. 体验 1.1 使用 所有命令都是在开发板上执行。 挂载 configfs 文件系统 # modprobe libcomposite# mount -t configfs none /sys/ kernel/config# ls /sys/ kernel /config/ usb_gadget#ls /sys/ kernel /config/u sb_gadget // 一开...

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/ -l
    total 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 bcdUSB
    drwxr-xr-x    2 root     root             0 Jan  1 01:49 configs
    drwxr-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 idVendor
    drwxr-xr-x    2 root     root             0 Jan  1 01:49 os_desc
    drwxr-xr-x    2 root     root             0 Jan  1 01:49 strings
    

    创建目录后,里面就自动生成了很多文件、目录,比如:

    • idVendor:表示厂家 ID,默认值是 0
    • idProduct:表示产品 ID,默认值是 0
  • 设置设备描述符,比如设置厂家 ID、产品 ID,这是可选的

    echo "0x1234" > idVendor
    echo "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 > UDC
    

1.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_serial
    

1.3 STM32MP157上的实验

因为 STM32MP157 系统里已经使用 adb 设备,要想模拟串口设备,需要先清除 adb,命令如下:

cd /sys/kernel/config/usb_gadget/g1
echo "" > UDC
rm configs/b.1/ffs.adb
rmdir configs/b.1/strings/0x409
rmdir configs/b.1
rmdir functions/ffs.adb
rm strings/0x409
cd ..
rmdir g1

清除后,就按照《1.1 使用》来操作,需要注意的是最后一步:

ls  /sys/class/udc/
49000000.usb-otg

echo 49000000.usb-otg > UDC
温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信