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
-
嵌入式
+关注
关注
5163文章
19810浏览量
320196 -
Linux
+关注
关注
88文章
11542浏览量
215059
发布评论请先 登录
树莓派编译内核报错
Linux系统启动卡制作及系统固化
怎么去解决D1s tina linux连接失败的问题
Imx6如何作为UVC wbcam相机?
Linux之chardev_buttom_linux_struc
Linux之chardev_buttom_linux_struc
REDIce-Linux--灵活的实时Linux内核
Linux教程之Linux的文件权限管理实验

如何学习Linux学习Linux的详细步骤说明

国内最好用的linux系统_linux系统入门命令

Linux有什么优势?Linux能替代Windows 吗?
嵌入式linux和桌面linux的区别

Linux configfs的内部机制介绍

评论