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