LINUX USB gadget

    本文地址:http://www.tongxinmao.com/Article/Detail/id/365

    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


    上一篇:LINUX OPENOCD+JLINK/STLINK 下载HEX
    下一篇:虚拟打印机实现