I.MX 8P Creates a USB Composite using HID Gadget and UAC Gadget fail.

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

I.MX 8P Creates a USB Composite using HID Gadget and UAC Gadget fail.

650 次查看
ZenJeams
Contributor I

Hi NXP Team,

I try to create a USB Composite using the 1 HID Gadget ( hid.usb0) and 4 UAC Gadgets (uac2.usb0、uac2.usb1、uac2.usb2、uac2.usb3)  drivers already in  Real-time Edge Yocto Project. 

When I configured the fourth UAC Gadget, I found a prompt error.

Errors in log:

root@imx8mp-lpddr4-evk:~# sh usb_gadget.sh start
Start usb gadget
mkdir functions/hid.usb0
mkdir functions/uac2.usb0
mkdir functions/uac2.usb1
mkdir functions/uac2.usb2
mkdir functions/uac2.usb3
[ 893.821612] ep->claimed = 2
[ 893.821784] configfs-gadget gadget: in_epnum=0,out_epnum= 0
[ 893.821790] ep->claimed = 1
[ 893.821792] ep->claimed = 2
[ 893.821795] configfs-gadget gadget: in_epnum=0,out_epnum= 0
usb_gadget.sh: line 118: echo: wr[ 893.821798] ep->claimed = 1
ite error: No such device[ 893.821800] ep->claimed = 2
[ 893.821801] ep->claimed = 4

[ 893.822097] configfs-gadget gadget: in_epnum=0,out_epnum= 0
[ 893.822101] ep->claimed = 1
[ 893.822102] ep->claimed = 2
[ 893.822104] ep->claimed = 4
[ 893.822105] ep->claimed = 6
[ 893.822107] configfs-gadget gadget: in_epnum=0,out_epnum= 0
[ 893.822110] ep->claimed = 1
[ 893.822111] ep->claimed = 2
[ 893.822113] ep->claimed = 4
[ 893.822114] ep->claimed = 6
[ 893.822115] ep->claimed = 8
[ 893.822427] configfs-gadget gadget: in_epnum=0,out_epnum= 0
[ 893.822434] ep->claimed = 1
[ 893.822435] ep->claimed = 2
[ 893.822437] ep->claimed = 4
[ 893.822438] ep->claimed = 6
[ 893.822440] ep->claimed = 8
[ 893.822441] ep->claimed = 10
[ 893.822444] configfs-gadget gadget: in_epnum=0,out_epnum= 0
root@imx8mp-lpddr4-evk:~# [ 893.822447] ep->claimed = 1
[ 893.822448] ep->claimed = 2
[ 893.822450] ep->claimed = 4
[ 893.822451] ep->claimed = 6
[ 893.822452] ep->claimed = 8
[ 893.822453] ep->claimed = 10
[ 893.822455] ep->claimed = 12
[ 893.826713] configfs-gadget gadget: in_epnum=0,out_epnum= 0
[ 893.826725] ep->claimed = 1
[ 893.826727] ep->claimed = 2
[ 893.826729] ep->claimed = 4
[ 893.826730] ep->claimed = 6
[ 893.826732] ep->claimed = 8
[ 893.826733] ep->claimed = 10
[ 893.826735] ep->claimed = 12
[ 893.826737] ep->claimed = 14
[ 893.826739] configfs-gadget gadget: afunc_bind:1113 Error!
[ 893.828520] udc 38100000.usb: failed to start g1: -19

It is possible that the system does not have enough endpoints to allocate? What can I do to meet my project requirements?

 

标签 (1)
0 项奖励
2 回复数

618 次查看
Rita_Wang
NXP TechSupport
NXP TechSupport

Are you using NXP EVK board or the board you design yourself? Which version BSP are you using? Have you already run the proper steps?

0 项奖励

597 次查看
ZenJeams
Contributor I

Using  NXP IMX8M Plus  LPDDR4 EVK with  Real-time Edge V2.5 Image.

Here is my config shell script:

#!/bin/sh

UDC_USB=$(ls /sys/class/udc)

do_start() {
    # Mount configfs
    # mount -t configfs none /sys/kernel/config
    mkdir -m 0770 /sys/kernel/config/usb_gadget/g1
    cd /sys/kernel/config/usb_gadget/g1

    # Setting English strings
    echo 0x0300 > bcdUSB
    echo 0x0101 > idProduct
    echo 0x17EF > idVendor
    # USB 1.1: 0x0110
    # USB 2.0: 0x0200, USB 2.1: 0x0210, USB 2.5: 0x0250
    # USB 3.0: 0x0300, USB 3.1: 0x0310, USB 3.2: 0x0320
    # echo 0x0210 > /sys/kernel/config/usb_gadget/g1/bcdUSB

    mkdir "strings/0x409"
    echo "0123456789ABCDEF" > "strings/0x409/serialnumber"
    echo "Lenovo" > "strings/0x409/manufacturer"
    echo "Intelligent Spkeaker" > "strings/0x409/product"
    echo "0xEF" > bDeviceClass
    echo "0x02" > bDeviceSubClass
    echo "0x01" > bDeviceProtocol

    mkdir "configs/c.1"
    echo 120 > "configs/c.1/MaxPower"
    mkdir "configs/c.1/strings/0x409"
    echo "Conf 1" > "configs/c.1/strings/0x409/configuration"

    # HID
    echo "mkdir functions/hid.usb0"
    mkdir functions/hid.usb0
    echo 1 > functions/hid.usb0/protocol
    echo 1 > functions/hid.usb0/subclass
    echo 8 > functions/hid.usb0/report_length
    cat /home/root/Audio/hid_report_desc > functions/hid.usb0/report_desc
    ln -s functions/hid.usb0 configs/c.1

    # uac2.usb0
    echo "mkdir functions/uac2.usb0"
    mkdir functions/uac2.usb0
    #Speaker
    echo 0 > functions/uac2.usb0/c_chmask
    echo 2 > functions/uac2.usb0/c_ssize
    echo 16000 > functions/uac2.usb0/c_srate
    #MIC
    echo 0x01> functions/uac2.usb0/p_chmask
    echo 2 > functions/uac2.usb0/p_ssize
    echo 16000 > functions/uac2.usb0/p_srate
    ln -s functions/uac2.usb0 configs/c.1

    # uac2.usb1
    echo "mkdir functions/uac2.usb1"
    mkdir functions/uac2.usb1
    ## Speaker
    echo 0 > functions/uac2.usb1/c_chmask
    echo 2 > functions/uac2.usb1/c_ssize
    echo 96000 > functions/uac2.usb1/c_srate
    ## MIC
    echo 0x01> functions/uac2.usb1/p_chmask
    echo 2 > functions/uac2.usb1/p_ssize
    echo 96000 > functions/uac2.usb1/p_srate
    ln -s functions/uac2.usb1 configs/c.1

    # uac2.usb2
    echo "mkdir functions/uac2.usb2"
    mkdir functions/uac2.usb2
    ## Speaker
    echo 0 > functions/uac2.usb2/c_chmask
    echo 2 > functions/uac2.usb2/c_ssize
    echo 16000 > functions/uac2.usb2/c_srate
    ## MIC
    echo 0x01  > functions/uac2.usb2/p_chmask
    echo 2   > functions/uac2.usb2/p_ssize
    echo 16000 > functions/uac2.usb2/p_srate
    ln -s functions/uac2.usb2 configs/c.1

    # uac2.usb3
    echo "mkdir functions/uac2.usb3"
    mkdir functions/uac2.usb3
    ## Speaker
    echo 0x01 > functions/uac2.usb3/c_chmask
    echo 2 > functions/uac2.usb3/c_ssize
    echo "adaptive" > functions/uac2.usb3/c_sync
    echo 48000 > functions/uac2.usb3/c_srate
    ## MIC
    echo 0   > functions/uac2.usb3/p_chmask
    echo 2   > functions/uac2.usb3/p_ssize
    echo 48000 > functions/uac2.usb3/p_srate
    ln -s functions/uac2.usb3 configs/c.1

    #Binding USB Device Controller
    echo "$UDC_USB" > UDC
}
do_stop() {
        cd /sys/kernel/config/usb_gadget/g1
        echo "" > UDC
        rm configs/c.1/hid.usb0
        rm configs/c.1/uac2.usb0
        rm configs/c.1/uac2.usb1
        rm configs/c.1/uac2.usb2
        rm configs/c.1/uac2.usb3
       
        #rm configs/c.1/acm.gs0
        #rm configs/c.1/mass_storage.0

        rmdir configs/c.1/strings/0x409
        rmdir configs/c.1/
        rmdir functions/hid.usb0/
        rmdir functions/uac2.usb0/
        rmdir functions/uac2.usb1/
        rmdir functions/uac2.usb2/
        rmdir functions/uac2.usb3/

        #rmdir functions/acm.gs0/
        #rmdir functions/mass_storage.0/
        rmdir strings/0x409

        cd ..
        rmdir g1/
}


case $1 in
    start)
        echo "Start usb gadget"
        do_start
        ;;
    stop)
        echo "Stop usb gadget"
        do_stop
        ;;
    *)
        echo "Usage: $0 (stop | start)"
        ;;
esac
0 项奖励