From 5602fd9d5998e60c6a16ce831bc0a9d5b1cc6715 Mon Sep 17 00:00:00 2001 From: lxowalle Date: Wed, 19 Nov 2025 13:53:18 +0800 Subject: [PATCH] * add adbd monitor --- .../cvitek/SG200X/overlay/etc/adbd_monitor.sh | 15 +++++++++++++++ .../cvitek/SG200X/overlay/etc/init.d/S08usbdev | 18 ++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/adbd_monitor.sh diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/adbd_monitor.sh b/buildroot/board/cvitek/SG200X/overlay/etc/adbd_monitor.sh new file mode 100755 index 000000000..92ebba204 --- /dev/null +++ b/buildroot/board/cvitek/SG200X/overlay/etc/adbd_monitor.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +UDC_PATH=/sys/kernel/config/usb_gadget/g0/UDC +if [ -f /boot/usb.adbd ] && [ -f /boot/usb.dev ]; +then + while true; do + if [ -z "$(cat $UDC_PATH | tr -d '[:space:]')" ]; + then + echo "try restart usb device" + /etc/init.d/S03usbdev stop + /etc/init.d/S03usbdev start + fi + sleep 5 + done +fi diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S08usbdev b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S08usbdev index a5dff6b7d..e07a844db 100755 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S08usbdev +++ b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S08usbdev @@ -196,6 +196,13 @@ then sleep 0.4 done echo device > /proc/cviusb/otg_role + + if [ -e /boot/usb.adbd ] + then + if [ -z $(ps aux | grep adbd_monitor | grep -v grep) ]; then + /etc/adbd_monitor.sh & + fi + fi fi fi @@ -222,5 +229,16 @@ then unlink /sys/kernel/config/usb_gadget/g0/configs/c.1/ncm.usb0 rmdir /sys/kernel/config/usb_gadget/g0/functions/ncm.usb0 fi + + # adbd + if [ -e /sys/kernel/config/usb_gadget/g0/configs/c.1/ffs.adb ] + then + adbd_pid=$(ps aux | grep '/usr/bin/adbd' | grep -v grep | awk '{print $1}') + kill -15 $adbd_pid + umount /dev/usb-ffs/adb + rm /dev/usb-ffs/adb -rf + unlink /sys/kernel/config/usb_gadget/g0/configs/c.1/ffs.adb + rmdir /sys/kernel/config/usb_gadget/g0/functions/ffs.adb + fi fi