Linux 3.0新的USB gadget configfs.c驅動的用法如下所示:
挂載configfs檔案系統:
# mount -t configfs none /sys/kernel/config
# cd /sys/kernel/config
# ls
usb_gadget
# cd usb_gadget
建立g1目錄,執行個體化一個新的gadget模闆:
# mkdir g1
# cd g1
# ls
UDC bDeviceProtocol bMaxPacketSize0 bcdUSB functions idVendor
bDeviceClass bDeviceSubClass bcdDevice configs idProduct strings
定義産品的VendorID和ProductID
# echo "0xabcd" > idVendor
# echo "0x1234" > idProduct
執行個體化英語ID:
# mkdir strings/0x409
# ls strings/0x409
manufacturer product serialnumber
将開發商、産品和序列号字元串寫入核心:
# echo "0123456789ABCDEF" > strings/0x409/serialnumber
# echo "Master" > strings/0x409/manufacturer
# echo "Demo" > strings/0x409/product
建立功能執行個體,需要注意的是,一個功能如果有多個執行個體的話,擴充名必須用數字編号:
# mkdir functions/acm.GS0
# mkdir functions/acm.GS1
# mkdir functions/ecm.usb0
建立一個USB配置執行個體:
# mkdir configs/c.1
# ls configs/c.1
MaxPower bmAttributes strings
定義配置描述符使用的字元串
# mkdir configs/c.1/strings/0x409
# ls configs/c.1/strings/0x409/
configuration
# echo "2XACM+ECM" > configfs/c.1/strings/0x409/configuration
捆綁功能執行個體到配置c.1
# ln -s functions/acm.GS0 configs/c.1
# ln -s functions/acm.GS1 configs/c.1
# ln -s functions/ecm.usb0 configs/c.1
查找本機可獲得的UDC執行個體
# ls /sys/class/udc/
msm_hsusb
将gadget驅動注冊到UDC上,插上USB線到電腦上,電腦就會枚舉USB裝置。
# echo "msm_hsusb" > UDC