天天看點

linux usb gadget u盤,LINUX USB gadget

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