rk3568_ubuntu_r60_v1.3.2/yocto/meta-quectel-app/recipes/usb-mount/files/rcS

91 lines
2.5 KiB
Plaintext
Raw Normal View History

2023-11-03 14:12:44 +08:00
#! /bin/sh
/bin/mount -a
/bin/busybox --install
/bin/mount -t sysfs none /sys
/bin/mount -t debugfs debugfs /sys/kernel/debug
/bin/mount -t tracefs tracefs /sys/kernel/debug/tracing > /dev/null 2>&1
/sbin/mdev -s
/bin/echo /sbin/mdev > /proc/sys/kernel/hotplug
# This is necessary to emulate the android environment expected by adbd
echo "Configuring the Kdev environment to support 'adb shell' ..."
mkdir /dev/pts
mount -t devpts devpts /dev/pts
chmod 0666 /dev/ptmx
mkdir -p /system/bin
ln -s /bin/sh /system/bin/sh
chmod 4755 /bin/su
# get soc platform
if [ -f /sys/devices/soc0/hw_platform ]; then
socplatform=`cat /sys/devices/soc0/machine` 2> /dev/null
else
socplatform=`cat /sys/devices/system/soc/soc0/machine` 2> /dev/null
fi
echo "soc:" $socplatform
# find serialno from cmdline
cmdline=`cat /proc/cmdline` 2> /dev/null
strsearch="androidboot.serialno="
if echo "$cmdline" | grep -q "$strsearch"; then
startsearch=${cmdline#*$strsearch}
pos=$(( ${#cmdline} - ${#startsearch}))
serialno=${cmdline:$pos:8}
else
echo "serialno not found with cmdline, use default"
serialno="12345678"
fi
echo "serialno:" $serialno
mount -t configfs none /sys/kernel/config
if [ -d /sys/kernel/config/usb_gadget ]; then
echo "Configuring the USB gadget using ConfigFS..."
cd /sys/kernel/config/usb_gadget
mkdir g1
cd g1
mkdir strings/0x409
mkdir configs/c.1
mkdir configs/c.1/strings/0x409
mkdir functions/ffs.adb
echo "$serialno" > strings/0x409/serialnumber
echo "QCOM" > strings/0x409/manufacturer
echo "$socplatform" > strings/0x409/product
echo 0x18d1 > /sys/kernel/config/usb_gadget/g1/idVendor
echo 0x4E11 > /sys/kernel/config/usb_gadget/g1/idProduct
echo "ADB" > configs/c.1/strings/0x409/configuration
else
echo "Configuring the USB gadget using legcy method..."
cd /sys/class/android_usb/android0/
echo 0 > enable
echo 05C6 > idVendor
echo 901D > idProduct
echo "$serialno" > iSerial
echo "QCOM" > iManufacturer
echo "$socplatform" > iProduct
echo diag > f_diag/clients
echo diag,ffs > functions
echo 1 > enable
fi
echo "Configuring FunctionFS endpoints for adbd..."
if [ ! -d /dev/usb-ffs/adb ]; then
mkdir -p /dev/usb-ffs/adb
fi
if [ ! -e /dev/usb-ffs/adb/ep0 ]; then
mount -o uid=2000,gid=2000 -t functionfs adb /dev/usb-ffs/adb
fi
echo "Launching adbd..."
/sbin/adbd &
if [ -d /sys/kernel/config/usb_gadget ]; then
ln -s functions/ffs.adb configs/c.1/f1
sleep 1
udcname=`ls -1 /sys/class/udc | head -n 1`
echo "binding UDC with Gadget..." $udcname
echo $udcname > UDC
fi