From 02a2ba40b3ff8be715b2e223f5856e78032eae38 Mon Sep 17 00:00:00 2001 From: Danil Zagoskin Date: Tue, 11 Nov 2025 06:19:35 +0000 Subject: [PATCH] usbgadget: properly restore host mode on boot --- .../rocknix/sources/scripts/usbgadget | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/projects/ROCKNIX/packages/rocknix/sources/scripts/usbgadget b/projects/ROCKNIX/packages/rocknix/sources/scripts/usbgadget index 2ea9f8f277..81635da77e 100755 --- a/projects/ROCKNIX/packages/rocknix/sources/scripts/usbgadget +++ b/projects/ROCKNIX/packages/rocknix/sources/scripts/usbgadget @@ -298,7 +298,7 @@ cleanup_usb_mtp() { set_role() { for sw in $(ls -1 /sys/class/udc/${UDC_NAME}/device/usb_role/*/role 2>/dev/null); do - if [ "$verbose" -gt "0" ]; then echo "swithing usb role to device: $sw"; fi + if [ "$verbose" -gt "0" ]; then echo "swithing usb role to $1: $sw"; fi echo $1 > $sw done } @@ -328,8 +328,13 @@ usb_start() { usb_stop fi - # If there is a role switch, switch to device mode - set_role device + if [ "${USB_MODE}" == "disabled" ]; then + usb_disable + set_role host + return + else + set_role device + fi if [ "${USB_MODE}" = mtp ] ; then if [ ! -d "${g_mtp}" ]; then @@ -382,6 +387,17 @@ usb_stop() { ) >/dev/null 2>&1 } +set_usb_mode() { + case "${1}" in + cdc|mtp) + usb_start "${1}" + ;; + *) + usb_stop + ;; + esac +} + case "$1" in prepare) prepare_usb_network @@ -415,10 +431,9 @@ case "$1" in echo "disabled network file_transfer" ;; "--start") - set_role host prepare_usb_network prepare_usb_mtp - usb_start + set_usb_mode "${USB_MODE}" ;; "") case ${CURRENT_MODE} in