1. 體驗(yàn)
1.1 使用
所有命令都是在開(kāi)發(fā)板上執(zhí)行。
掛載 configfs 文件系統(tǒng)
# modprobe libcomposite # mount -t configfs none /sys/kernel/config # ls /sys/kernel/config/ usb_gadget #ls /sys/kernel/config/usb_gadget // 一開(kāi)始它是空目錄
創(chuàng)建目錄
# 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
創(chuàng)建目錄后,里面就自動(dòng)生成了很多文件、目錄,比如:
- idVendor:表示廠家 ID,默認(rèn)值是 0
- idProduct:表示產(chǎn)品 ID,默認(rèn)值是 0
設(shè)置設(shè)備描述符,比如設(shè)置廠家 ID、產(chǎn)品 ID,這是可選的
echo "0x1234" > idVendor echo "0x5678" > idProduct
創(chuàng)建配置:格式為"configs/.",name 可以取任意字符,number 是配置編號(hào)
mkdir configs/c.1
創(chuàng)建功能(function、接口):格式為"functions/.",name 對(duì)應(yīng) function 的名字,比如 acm 對(duì)應(yīng) ACM 功能,對(duì)應(yīng)的驅(qū)動(dòng)為usb_f_acm.ko;instance name 可以取任意字符
mkdir functions/acm.test1
把配置和功能聯(lián)系起來(lái):ln -s functions/. configs/.
ln -s functions/acm.test1 configs/c.1/
使能 Gadget(確定使用哪個(gè) 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上的實(shí)驗(yàn)
因?yàn)?STM32MP157 系統(tǒng)里已經(jīng)使用 adb 設(shè)備,要想模擬串口設(shè)備,需要先清除 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 使用》來(lái)操作,需要注意的是最后一步:
ls /sys/class/udc/
49000000.usb-otg
echo 49000000.usb-otg > UDC
-
嵌入式
+關(guān)注
關(guān)注
5068文章
19020瀏覽量
303308 -
Linux
+關(guān)注
關(guān)注
87文章
11229瀏覽量
208931
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論