From bdc4a8a27a5e4d9f278d0e93717e43bdd4ab02f0 Mon Sep 17 00:00:00 2001 From: carbon Date: Fri, 21 Jun 2024 18:34:15 +0800 Subject: [PATCH] enable usb rndis Signed-off-by: carbon --- .../br_overlay/common/etc/init.d/S99user | 4 ++ .../rootfs_overlay/common/mnt/system/usb.sh | 1 + .../overlay/mnt/system/usb-rndis.sh | 14 +++++++ .../overlay/mnt/system/usb-rndis.sh | 14 +++++++ .../overlay/mnt/system/usb-rndis.sh | 39 +++++++++++++++++++ .../overlay/mnt/system/usb-rndis.sh | 39 +++++++++++++++++++ 6 files changed, 111 insertions(+) create mode 120000 device/generic/rootfs_overlay/common/mnt/system/usb.sh create mode 100755 device/milkv-duo256m-glibc-arm64-sd/overlay/mnt/system/usb-rndis.sh create mode 100755 device/milkv-duo256m-musl-riscv64-sd/overlay/mnt/system/usb-rndis.sh create mode 100755 device/milkv-duos-glibc-arm64-sd/overlay/mnt/system/usb-rndis.sh create mode 100755 device/milkv-duos-musl-riscv64-sd/overlay/mnt/system/usb-rndis.sh diff --git a/device/generic/br_overlay/common/etc/init.d/S99user b/device/generic/br_overlay/common/etc/init.d/S99user index 597781bc8..c6fd6e174 100755 --- a/device/generic/br_overlay/common/etc/init.d/S99user +++ b/device/generic/br_overlay/common/etc/init.d/S99user @@ -23,6 +23,10 @@ case "$1" in . $SYSTEMPATH/blink.sh & fi + if [ -f $SYSTEMPATH/usb.sh ]; then + . $SYSTEMPATH/usb.sh & + fi + if [ -f $USERDATAPATH/auto.sh ]; then usleep 30000 . $USERDATAPATH/auto.sh & diff --git a/device/generic/rootfs_overlay/common/mnt/system/usb.sh b/device/generic/rootfs_overlay/common/mnt/system/usb.sh new file mode 120000 index 000000000..3827f5be8 --- /dev/null +++ b/device/generic/rootfs_overlay/common/mnt/system/usb.sh @@ -0,0 +1 @@ +usb-rndis.sh \ No newline at end of file diff --git a/device/milkv-duo256m-glibc-arm64-sd/overlay/mnt/system/usb-rndis.sh b/device/milkv-duo256m-glibc-arm64-sd/overlay/mnt/system/usb-rndis.sh new file mode 100755 index 000000000..e0f132b3a --- /dev/null +++ b/device/milkv-duo256m-glibc-arm64-sd/overlay/mnt/system/usb-rndis.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +/etc/uhubon.sh device >> /tmp/rndis.log 2>&1 +/etc/run_usb.sh probe rndis >> /tmp/rndis.log 2>&1 +/etc/run_usb.sh start rndis >> /tmp/rndis.log 2>&1 + +sleep 0.5 +ifconfig usb0 192.168.42.1 + +count=`ps | grep dnsmasq | grep -v grep | wc -l` +if [ ${count} -lt 1 ] ;then + echo "/etc/init.d/S80dnsmasq start" >> /tmp/rndis.log 2>&1 + /etc/init.d/S80dnsmasq start >> /tmp/rndis.log 2>&1 +fi diff --git a/device/milkv-duo256m-musl-riscv64-sd/overlay/mnt/system/usb-rndis.sh b/device/milkv-duo256m-musl-riscv64-sd/overlay/mnt/system/usb-rndis.sh new file mode 100755 index 000000000..e0f132b3a --- /dev/null +++ b/device/milkv-duo256m-musl-riscv64-sd/overlay/mnt/system/usb-rndis.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +/etc/uhubon.sh device >> /tmp/rndis.log 2>&1 +/etc/run_usb.sh probe rndis >> /tmp/rndis.log 2>&1 +/etc/run_usb.sh start rndis >> /tmp/rndis.log 2>&1 + +sleep 0.5 +ifconfig usb0 192.168.42.1 + +count=`ps | grep dnsmasq | grep -v grep | wc -l` +if [ ${count} -lt 1 ] ;then + echo "/etc/init.d/S80dnsmasq start" >> /tmp/rndis.log 2>&1 + /etc/init.d/S80dnsmasq start >> /tmp/rndis.log 2>&1 +fi diff --git a/device/milkv-duos-glibc-arm64-sd/overlay/mnt/system/usb-rndis.sh b/device/milkv-duos-glibc-arm64-sd/overlay/mnt/system/usb-rndis.sh new file mode 100755 index 000000000..06e1924d0 --- /dev/null +++ b/device/milkv-duos-glibc-arm64-sd/overlay/mnt/system/usb-rndis.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +usb_en=453 +usb_select=510 + +function set_gpio() +{ + local gpio_num=$1 + local gpio_val=$2 + local gpio_path="/sys/class/gpio/gpio${gpio_num}" + + if test -d ${gpio_path}; then + echo "GPIO ${gpio_num} already exported" >> /tmp/rndis.log 2>&1 + else + echo ${gpio_num} > /sys/class/gpio/export + fi + + echo out > ${gpio_path}/direction + sleep 0.1 + echo ${gpio_val} > ${gpio_path}/value +} + +set_gpio ${usb_en} 0 +sleep 0.5 +set_gpio ${usb_select} 0 +sleep 0.5 + +/etc/uhubon.sh device >> /tmp/rndis.log 2>&1 +/etc/run_usb.sh probe rndis >> /tmp/rndis.log 2>&1 +/etc/run_usb.sh start rndis >> /tmp/rndis.log 2>&1 + +sleep 0.5 +ifconfig usb0 192.168.42.1 + +count=`ps | grep dnsmasq | grep -v grep | wc -l` +if [ ${count} -lt 1 ] ;then + echo "/etc/init.d/S80dnsmasq start" >> /tmp/rndis.log 2>&1 + /etc/init.d/S80dnsmasq start >> /tmp/rndis.log 2>&1 +fi diff --git a/device/milkv-duos-musl-riscv64-sd/overlay/mnt/system/usb-rndis.sh b/device/milkv-duos-musl-riscv64-sd/overlay/mnt/system/usb-rndis.sh new file mode 100755 index 000000000..06e1924d0 --- /dev/null +++ b/device/milkv-duos-musl-riscv64-sd/overlay/mnt/system/usb-rndis.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +usb_en=453 +usb_select=510 + +function set_gpio() +{ + local gpio_num=$1 + local gpio_val=$2 + local gpio_path="/sys/class/gpio/gpio${gpio_num}" + + if test -d ${gpio_path}; then + echo "GPIO ${gpio_num} already exported" >> /tmp/rndis.log 2>&1 + else + echo ${gpio_num} > /sys/class/gpio/export + fi + + echo out > ${gpio_path}/direction + sleep 0.1 + echo ${gpio_val} > ${gpio_path}/value +} + +set_gpio ${usb_en} 0 +sleep 0.5 +set_gpio ${usb_select} 0 +sleep 0.5 + +/etc/uhubon.sh device >> /tmp/rndis.log 2>&1 +/etc/run_usb.sh probe rndis >> /tmp/rndis.log 2>&1 +/etc/run_usb.sh start rndis >> /tmp/rndis.log 2>&1 + +sleep 0.5 +ifconfig usb0 192.168.42.1 + +count=`ps | grep dnsmasq | grep -v grep | wc -l` +if [ ${count} -lt 1 ] ;then + echo "/etc/init.d/S80dnsmasq start" >> /tmp/rndis.log 2>&1 + /etc/init.d/S80dnsmasq start >> /tmp/rndis.log 2>&1 +fi