Dear all,

I'm struggling with getting a RPi Zero based UAC2 gadget working with Windows 
10. In the progress I've found a bug in f_uac2.c , where wTotalLength was 
calculated erroneously (I'll be 
preparing a proper patch submission for this, which I've tested on Raspbian 
Stretch Lite).

However, that wasn't enough. The device still isn't loaded properly. Any 
pointers on how to proceed would be appreciated. 

The setup script for the gadget:
#!/bin/bash -e

modprobe libcomposite

cd /sys/kernel/config/usb_gadget/
mkdir g1 && cd g1

echo 0x1d6b > idVendor  # Linux Foundation
echo 0x0104 > idProduct # Multifunction Composite Gadget
echo 0x0100 > bcdDevice # v1.0.0
echo 0x0200 > bcdUSB    # USB 2.0
echo 0x01   > bDeviceClass
echo 0x02   > bDeviceSubClass
echo 0x20   > bDeviceProtocol

mkdir -p strings/0x409
echo "deadbeef00115599" > strings/0x409/serialnumber
echo "irq5 labs"        > strings/0x409/manufacturer
echo "Pi Zero Gadget"   > strings/0x409/product

mkdir -p functions/uac2.usb0   # audio
echo 3          > functions/uac2.usb0/c_chmask
echo 48000      > functions/uac2.usb0/c_srate
echo 4          > functions/uac2.usb0/c_ssize
echo 3          > functions/uac2.usb0/p_chmask
echo 48000      > functions/uac2.usb0/p_srate
echo 4          > functions/uac2.usb0/p_ssize

mkdir -p configs/c.1
echo 250 > configs/c.1/MaxPower
mkdir -p configs/c.1/strings/0x409
echo "Audio" > configs/c.1/strings/0x409/configuration
ln -s functions/uac2.usb0 configs/c.1/

echo 1       > os_desc/use
echo 0xcd    > os_desc/b_vendor_code
echo MSFT100 > os_desc/qw_sign
ln -s configs/c.1 os_desc

#udevadm settle -t 5 || :
ls /sys/class/udc/ > UDC

Best regards
/Robert Bielik
Ps. Apologies if this isn't the correct forum for these kinds of questions.

To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to
More majordomo info at

Reply via email to