diff --git a/build/tools/common/sd_tools/genimage_rootless.cfg b/build/tools/common/sd_tools/genimage_rootless.cfg index fb1fe68ea..8224e4e6b 100644 --- a/build/tools/common/sd_tools/genimage_rootless.cfg +++ b/build/tools/common/sd_tools/genimage_rootless.cfg @@ -5,7 +5,7 @@ image boot.vfat { "fip.bin", "rawimages/boot.sd", "usb.dev", - "usb.ncm0", + "usb.ncm", "wifi.sta", "gt9xx", "logo.jpeg", diff --git a/build/tools/common/sd_tools/sd_gen_burn_image_rootless.sh b/build/tools/common/sd_tools/sd_gen_burn_image_rootless.sh index 1de7e1c54..ada152d5d 100755 --- a/build/tools/common/sd_tools/sd_gen_burn_image_rootless.sh +++ b/build/tools/common/sd_tools/sd_gen_burn_image_rootless.sh @@ -27,7 +27,7 @@ cp -fv ${output_dir}/fip.bin ${output_dir}/input/ cp -fv ${output_dir}/rawimages/boot.sd ${output_dir}/input/rawimages/ cp -fv ${output_dir}/rawimages/rootfs.sd ${output_dir}/input/ touch ${output_dir}/input/usb.dev -touch ${output_dir}/input/usb.ncm0 +touch ${output_dir}/input/usb.ncm touch ${output_dir}/input/wifi.sta touch ${output_dir}/input/gt9xx touch ${output_dir}/input/fb diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S03usbdev b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S03usbdev index 35a4d80c7..c31b978f0 100755 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S03usbdev +++ b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S03usbdev @@ -61,7 +61,7 @@ then then cat /boot/usb.serialnumber > strings/0x409/serialnumber else - echo '20240808' > strings/0x409/serialnumber + cat /device_key > strings/0x409/serialnumber fi if [ -e /boot/usb.manufacturer ] then @@ -82,23 +82,6 @@ then rm -rf configs/c.1/acm.GS0 ln -s functions/acm.GS0 configs/c.1/ fi - if [ -e /boot/usb.ncm0 ] - then - mkdir -p functions/ncm.usb0 - rm -rf configs/c.1/ncm.usb0 - ln -s functions/ncm.usb0 configs/c.1/ - echo 02 > functions/rndis.usb0/class - echo 0d > functions/rndis.usb0/subclass - echo 00 > functions/rndis.usb0/protocol - elif [ -e /boot/usb.rndis0 ] - then - mkdir -p functions/rndis.usb0 - rm -rf configs/c.1/rndis.usb0 - ln -s functions/rndis.usb0 configs/c.1/ - echo e0 > functions/rndis.usb0/class - echo 01 > functions/rndis.usb0/subclass - echo 03 > functions/rndis.usb0/protocol - fi if [ -e /boot/usb.disk0 ] then @@ -124,6 +107,24 @@ then cat /boot/usb.disk0 > functions/mass_storage.disk0/lun.0/file fi fi + + # rndis + if [ -e /boot/usb.rndis ] + then + mkdir -p functions/rndis.usb0 + ln -s functions/rndis.usb0 configs/c.1/ + echo e0 > functions/rndis.usb0/class + echo 01 > functions/rndis.usb0/subclass + echo 03 > functions/rndis.usb0/protocol + fi + + # ncm + if [ -e /boot/usb.ncm ] + then + mkdir -p functions/ncm.usb0 + ln -s functions/ncm.usb0 configs/c.1/ + fi + ls /sys/class/udc/ | cat > UDC echo device > /proc/cviusb/otg_role fi @@ -131,6 +132,19 @@ fi if [ "$1" = "stop" ] then + # rndis + if [ -e /sys/kernel/config/usb_gadget/g0/configs/c.1/rndis.usb0 ] + then + unlink /sys/kernel/config/usb_gadget/g0/configs/c.1/rndis.usb0 + rmdir /sys/kernel/config/usb_gadget/g0/functions/rndis.usb0 + fi + + # ncm + if [ -e /sys/kernel/config/usb_gadget/g0/configs/c.1/ncm.usb0 ] + then + unlink /sys/kernel/config/usb_gadget/g0/configs/c.1/ncm.usb0 + rmdir /sys/kernel/config/usb_gadget/g0/functions/ncm.usb0 + fi echo '' > /sys/kernel/config/usb_gadget/g0/UDC echo host > /proc/cviusb/otg_role fi diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S10uuid b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S10uuid index 8d67144d0..bef0af9a4 100755 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S10uuid +++ b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S10uuid @@ -45,32 +45,4 @@ then ip link set eth0 address ${new_ethmac} ifconfig eth0 up echo "ethernet mac address: ${new_ethmac}" - - if [ -e /boot/usb.ncm0 ] - then - if [ -e /boot/usb.ncm0.mac ] - then - new_mac=$(cat /boot/usb.ncm0.mac) - else - new_mac=$(hex2mac 48da356e$(sha512sum /sys/class/cvi-base/base_uid | head -c 4)) - fi - ifconfig usb0 down - ip link set usb0 address ${new_mac} - ifconfig usb0 up - echo "ncm mac address: ${new_mac}" - fi - - if [ -e /boot/usb.rndis0 ] - then - if [ -e /boot/usb.rndis0.mac ] - then - new_rndismac=$(cat /boot/usb.rndis0.mac) - else - new_rndismac=$(hex2mac 48da356e$(sha512sum /sys/class/cvi-base/base_uid | head -c 4)) - fi - ifconfig usb0 down - ip link set usb0 address ${new_rndismac} - ifconfig usb0 up - echo "rndis mac address: ${new_rndismac}" - fi fi diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S30rndis b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S30rndis deleted file mode 100755 index dcd5d5695..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S30rndis +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/sh - -. /etc/profile - -gen_udhcpd_conf() { - interface=${1} - ipv4_prefix=${2} - echo "start ${ipv4_prefix}.100" - echo "end ${ipv4_prefix}.200" - echo "interface ${interface}" - echo "pidfile /var/run/udhcpd.${interface}.pid" - echo "lease_file /var/lib/misc/udhcpd.${interface}.leases" - echo "option subnet 255.255.255.0" - echo "option lease 864000" -} - -start() { - if [ -e /boot/usb.rndis0 ] - then - printf "start usb rndis: " - if [ ! -e /boot/rndis.nodhcpd ] - then - if [ -e /boot/rndis.ipv4_prefix ] - then - ipv4_prefix=`cat /boot/rndis.ipv4_prefix` - else - id2=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 2)) - id3=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 4 | tail -c 2)) - if [ "$id2" = "$id3" ] - then - id2=$((id2 + 1)) - fi - if [ "$id2" -ge 255 ] - then - id2=253 - fi - if [ "$id3" -ge 255 ] - then - id3=254 - fi - ipv4_prefix=10.$id2.$id3 - fi - gen_udhcpd_conf usb0 "${ipv4_prefix}" > /etc/udhcpd.usb0.conf - ip addr add $ipv4_prefix.1/24 dev usb0 - udhcpd -S /etc/udhcpd.usb0.conf - fi - echo "ok" - fi -} - -stop() { - kill `cat /var/run/udhcpd.usb0.pid` - rm /var/run/udhcpd.usb0.pid -} - -restart() { - start - stop -} - -if [ "${1}" = "start" ] -then - start -elif [ "${1}" = "stop" ] -then - stop -elif [ "${1}" = "restart" ] -then - restart -fi