FunctionsFS绑定udc失败

Which version of system do you use? Khadas official images, self built images, or others?

Khadas official images

Please describe your issue below:

可以创建ffs的gadget,但是无法将gadget绑定到UDC

Post a console log of your issue below:


出现以下错误信息
root@Khadas:/sys/kernel/config/usb_gadget/g1# echo fdd00000.crgudc2 > UDC 
[ 4335.855750][7 T2245  ..] udc fdd00000.crgudc2: failed to start g1: -19
-bash: echo: write error: No such device

Hello @yxmstar

你是想要做什么呢?固件是最新版本1.7.1-240930吗?

我想要将视频流通过usb发送,应该是,从服务器同步下来的

Hello @yxmstar

详细描述下你的使用场景和操作步骤,以及期望的结果。

将编码后的视频流通过usb发送到平板端,平板APP接收usb数据并解码显示,除此之外双端还有一些数据交互。

mount -t configfs none /sys/kernel/config/
cd /sys/kernel/config/usb_gadget/

mkdir g1
cd g1

echo "0x0200" > bcdUSB
echo "0xef" > bDeviceClass
echo "2" > bDeviceSubClass
echo "0x302E" > idVendor
echo "0x0519" > idProduct
echo "0x3000" > bcdDevice
echo "0x01" > bDeviceProtocol
mkdir strings/0x409
echo "Solex Tech" > strings/0x409/manufacturer
echo "MFI Usb Camera" > strings/0x409/product
echo "32021919830108" > strings/0x409/serialnumber

cd functions
        mkdir ffs.iap2
cd ../configs
mkdir c.1
echo "1" > c.1/MaxPower
echo "0xC0" > c.1/bmAttributes
cd ../functions
ln -s ffs.iap2 ../configs/c.1
cd ../
echo "$(ls /sys/class/udc/)" > UDC
mkdir -p /dev/usb-ffs/iap2
	mount -o uid=2000,gid=2000 -t functionfs iap2 /dev/usb-ffs/iap2
#cd - >/dev/null 2>&1

以上是我的操作步骤,我希望能打通usb通道来进行数据收发

Hello @yxmstar

那你可以试试USB网络。参考文档使能USB网络:VIM4 USB Gadget [Khadas Docs]

使能后,你就可以通过usb0 网卡进行数据传输了。

Hello,
RNDIS方式对于商业平板支持性不好,该内核不支持FFS类型吗?

内核是支持FFS的,而且可以正常配置RNDIS,参考:/usr/local/bin/usb-gadget

你是必须要用iap2吗?上面的配置你有在其他平台成功实践过吗?

我想要通过USB直接收发数据,上面配置我在其他平台成功过,RNDIS方案暂时不考虑,

怎么样能让fdd00000.crgudc2设备绑定到ffs类型的UDC描述符中?或者有其他方案可以实现我的需求吗?

你是不是要先启动用户层应用然后再设置UDC ?比如:adb,需要先运行用户层程序adbd,然后才能执行echo "$(ls /sys/class/udc/)" > UDC

可能是这个问题,那我们验证一下。。。。。。。