diff --git a/board/miyoo/main/apps/usb-hid/usb-hid.sh b/board/miyoo/main/apps/usb-hid/usb-hid.sh index 90a8b525..d06536e0 100755 --- a/board/miyoo/main/apps/usb-hid/usb-hid.sh +++ b/board/miyoo/main/apps/usb-hid/usb-hid.sh @@ -7,6 +7,7 @@ st_exec_func(){ } echo peripheral > /sys/devices/platform/soc/1c13000.usb/musb-hdrc.1.auto/mode killall umtprd + /mnt/apps/usb-mtd/remove.sh g2 modprobe -r g_serial mount none /sys/kernel/config -t configfs gadget-hid diff --git a/board/miyoo/main/apps/usb-mtd/remove.sh b/board/miyoo/main/apps/usb-mtd/remove.sh new file mode 100644 index 00000000..69a8f2c5 --- /dev/null +++ b/board/miyoo/main/apps/usb-mtd/remove.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +SYSDIR=/sys/kernel/config/usb_gadget/ +DEVDIR=$SYSDIR/$1 + +[ -d $DEVDIR ] || exit + +echo '' > $DEVDIR/UDC + +echo "Removing strings from configurations" +for dir in $DEVDIR/configs/*/strings/*; do + [ -d $dir ] && rmdir $dir +done + +echo "Removing functions from configurations" +for func in $DEVDIR/configs/*.*/*.*; do + [ -e $func ] && rm $func +done + +echo "Removing configurations" +for conf in $DEVDIR/configs/*; do + [ -d $conf ] && rmdir $conf +done + +echo "Removing functions" +for func in $DEVDIR/functions/*.*; do + [ -d $func ] && rmdir $func +done + +echo "Removing strings" +for str in $DEVDIR/strings/*; do + [ -d $str ] && rmdir $str +done + +echo "Removing gadget" +rmdir $DEVDIR \ No newline at end of file diff --git a/board/miyoo/main/apps/usb-mtd/usb-mtd.sh b/board/miyoo/main/apps/usb-mtd/usb-mtd.sh index c21652a9..982f6b9f 100755 --- a/board/miyoo/main/apps/usb-mtd/usb-mtd.sh +++ b/board/miyoo/main/apps/usb-mtd/usb-mtd.sh @@ -3,4 +3,27 @@ echo peripheral > /sys/devices/platform/soc/1c13000.usb/musb-hdrc.1.auto/mode modprobe -r g_serial killall umtprd +/mnt/apps/usb-mtd/remove.sh g2 +mount none /sys/kernel/config -t configfs +mkdir /sys/kernel/config/usb_gadget/g2 +cd /sys/kernel/config/usb_gadget/g2 +mkdir configs/c.1 +mkdir functions/ffs.mtp +mkdir strings/0x409 +mkdir configs/c.1/strings/0x409 + +echo 0x0100 > idProduct +echo 0x1D6B > idVendor + +echo "Miyoo Handheld" > strings/0x409/manufacturer +echo "Miyoo CFW 2.0" > strings/0x409/product + +echo "Conf 1" > configs/c.1/strings/0x409/configuration +echo 120 > configs/c.1/MaxPower +ln -s functions/ffs.mtp configs/c.1 +mkdir /dev/ffs-mtp +mount -t functionfs mtp /dev/ffs-mtp umtprd & +sleep 1 +ls /sys/class/udc/ > /sys/kernel/config/usb_gadget/g2/UDC + diff --git a/board/miyoo/main/apps/usb-network/usb-network.sh b/board/miyoo/main/apps/usb-network/usb-network.sh new file mode 100644 index 00000000..494ca76e --- /dev/null +++ b/board/miyoo/main/apps/usb-network/usb-network.sh @@ -0,0 +1,51 @@ +#!/bin/busybox sh + +MAC_HOST="12:34:56:78:9a:bd" +MAC_DEV="12:34:56:78:9a:bc" + +echo peripheral > /sys/devices/platform/soc/1c13000.usb/musb-hdrc.1.auto/mode +modprobe -r g_serial +killall umtprd +/mnt/apps/usb-mtd/remove.sh g2 +sleep 1 + +mount none /sys/kernel/config -t configfs +mkdir /sys/kernel/config/usb_gadget/g2 +cd /sys/kernel/config/usb_gadget/g2 +mkdir configs/c.1 +mkdir strings/0x409 + +mkdir functions/rndis.usb0 +mkdir configs/c.1/strings/0x409 + +echo 0x0104 > idProduct +echo 0x1D6B > idVendor +echo "0x0200" > bcdUSB +echo "0x02" > bDeviceClass +echo "0x00" > bDeviceSubClass +echo "0x3066" > bcdDevice +echo "1" > os_desc/use +echo "0xcd" > os_desc/b_vendor_code +echo "MSFT100" > os_desc/qw_sign +echo "RNDIS" > functions/rndis.usb0/os_desc/interface.rndis/compatible_id +echo "5162001" > functions/rndis.usb0/os_desc/interface.rndis/sub_compatible_id + +echo $MAC_HOST > functions/rndis.usb0/host_addr +echo $MAC_DEV > functions/rndis.usb0/dev_addr + +echo "Miyoo Handheld" > strings/0x409/manufacturer +echo "Miyoo CFW 2.0" > strings/0x409/product + +echo "Conf 1" > configs/c.1/strings/0x409/configuration +echo 120 > configs/c.1/MaxPower +ln -s functions/rndis.usb0 configs/c.1 +ln -s configs/c.1 os_desc +sleep 1 + +ls /sys/class/udc/ > /sys/kernel/config/usb_gadget/g2/UDC +sleep 5 +echo "" > UDC +echo "0x00" > bDeviceClass +ls /sys/class/udc/ > /sys/kernel/config/usb_gadget/g2/UDC +ifconfig usb0 up 169.254.147.2 + diff --git a/board/miyoo/main/gmenu2x/sections/applications/usb-network b/board/miyoo/main/gmenu2x/sections/applications/usb-network new file mode 100644 index 00000000..ff01d25a --- /dev/null +++ b/board/miyoo/main/gmenu2x/sections/applications/usb-network @@ -0,0 +1,3 @@ +title=usb-network +description=IP:169.254.147.2 +exec=/mnt/apps/usb-network/usb-network.sh diff --git a/board/miyoo/rootfs/etc/main b/board/miyoo/rootfs/etc/main index 3bd9c6d3..85ad6038 100755 --- a/board/miyoo/rootfs/etc/main +++ b/board/miyoo/rootfs/etc/main @@ -26,9 +26,29 @@ fi # load kernel modules # load usb gadget -modprobe g_ffs idVendor=0x1fc9 idProduct=0x0146 iSerialNumber="01234567" iProduct="Miyoo CFW 2.0" iManufacturer="Miyoo Handheld" functions=mtp >> "${LOGS}" 2>&1 -mkdir /dev/ffs-mtp && mount -t functionfs mtp /dev/ffs-mtp >> "${LOGS}" 2>&1 +mount none /sys/kernel/config -t configfs +mkdir /sys/kernel/config/usb_gadget/g2 +cd /sys/kernel/config/usb_gadget/g2 +mkdir configs/c.1 +mkdir functions/ffs.mtp +mkdir strings/0x409 +mkdir configs/c.1/strings/0x409 + +echo 0x0100 > idProduct +echo 0x1D6B > idVendor + +echo "Miyoo Handheld" > strings/0x409/manufacturer +echo "Miyoo CFW 2.0" > strings/0x409/product + +echo "Conf 1" > configs/c.1/strings/0x409/configuration +echo 120 > configs/c.1/MaxPower +ln -s functions/ffs.mtp configs/c.1 +mkdir /dev/ffs-mtp +mount -t functionfs mtp /dev/ffs-mtp umtprd >> "${LOGS}" 2>&1 & +sleep 1 +ls /sys/class/udc/ > /sys/kernel/config/usb_gadget/g2/UDC + # Load the expected one screen driver from here with modprobe ## automatically from rootfs/lib/modules/VERSION