From: Thomas Richard Date: Thu, 26 Jun 2025 09:26:00 +0000 (+0200) Subject: usbgadget: add OS descriptors support X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F19237%2Fhead;p=thirdparty%2Fopenwrt.git usbgadget: add OS descriptors support Add OS descriptors support. Configuring OS descriptors allows Microsoft Windows to bind the right drivers without any additional configuration. Signed-off-by: Thomas Richard Link: https://github.com/openwrt/openwrt/pull/19237 Signed-off-by: Chuanhong Guo --- diff --git a/package/utils/usbgadget/files/usbgadget.init b/package/utils/usbgadget/files/usbgadget.init index f2e105caaef..384ab548b6c 100644 --- a/package/utils/usbgadget/files/usbgadget.init +++ b/package/utils/usbgadget/files/usbgadget.init @@ -35,6 +35,9 @@ setup_gadget() { local strings_path="${gadget_path}/strings/0x409" mkdir "$strings_path" apply_configs "$strings_path" "$cfg" + + local os_desc_path="${gadget_path}/os_desc" + apply_configs "$os_desc_path" "$cfg" } setup_configuration() { @@ -54,6 +57,8 @@ setup_configuration() { local strings_path="${cfg_path}/strings/0x409" mkdir "$strings_path" apply_configs "$strings_path" "$cfg" + + ln -s "$cfg_path" "${GADGET_FS}/${GADGET_PREFIX}${gadget}/os_desc" } setup_function() { @@ -78,6 +83,9 @@ setup_function() { apply_configs "$fun_path" "$cfg" + local os_desc_path="$(find ${fun_path}/os_desc/* -type d)" + apply_configs "$os_desc_path" "$cfg" + ln -s "$fun_path" "$cfg_path" } @@ -134,6 +142,7 @@ stop() { for gadget_path in ${GADGET_FS}/${GADGET_PREFIX}* ; do [ -d "$gadget_path" ] || continue echo "" > ${gadget_path}/UDC + find ${gadget_path}/os_desc -maxdepth 1 -type l -exec rm '{}' ';' find ${gadget_path}/configs -maxdepth 2 -type l -exec rm '{}' ';' rmdir ${gadget_path}/configs/*/strings/* rmdir ${gadget_path}/configs/*