From 2ad0073a43a85874396de255af422030f9ea0e24 Mon Sep 17 00:00:00 2001 From: BuGu <1220627966@qq.com> Date: Mon, 17 Feb 2025 16:53:11 +0800 Subject: [PATCH] Remove all additional boot scripts The NanoKVM boot scripts will be added/modified after compilation --- .../cvitek/SG200X/overlay/etc/init.d/S00kmod | 34 --- .../cvitek/SG200X/overlay/etc/init.d/S00pmu | 31 -- .../cvitek/SG200X/overlay/etc/init.d/S01fs | 12 - .../SG200X/overlay/etc/init.d/S02config | 76 ----- .../SG200X/overlay/etc/init.d/S02devicekey | 13 - .../SG200X/overlay/etc/init.d/S03usbdev | 200 ------------- .../SG200X/overlay/etc/init.d/S04backlight | 33 --- .../cvitek/SG200X/overlay/etc/init.d/S04fb | 21 -- .../cvitek/SG200X/overlay/etc/init.d/S05tp | 29 -- .../cvitek/SG200X/overlay/etc/init.d/S10uuid | 48 --- .../SG200X/overlay/etc/init.d/S25wifimod | 14 - .../cvitek/SG200X/overlay/etc/init.d/S30eth | 33 --- .../SG200X/overlay/etc/init.d/S30gadget_nic | 176 ----------- .../cvitek/SG200X/overlay/etc/init.d/S30wifi | 168 ----------- .../SG200X/overlay/etc/init.d/S99audtest | 42 --- .../SG200X/overlay/etc/init.d/S99camtest | 31 -- .../SG200X/overlay/etc/init.d/S99ednctest | 39 --- .../SG200X/overlay/etc/init.d/S99ivetest | 38 --- .../SG200X/overlay/etc/init.d/S99lcdtest | 39 --- .../SG200X/overlay/etc/init.d/S99loadtest | 36 --- .../cvitek/SG200X/overlay/etc/init.d/S99local | 9 - .../SG200X/overlay/etc/init.d/S99modeltest | 35 --- .../SG200X/overlay/etc/init.d/S99nettest | 109 ------- .../SG200X/overlay/etc/init.d/S99nntest | 35 --- .../SG200X/overlay/etc/init.d/S99resizefs | 14 - .../SG200X/overlay/etc/init.d/S99temptest | 47 --- .../overlay/etc/init.d/uvc-gadget-server.elf | Bin 26712 -> 0 bytes .../etc/init.d/uvc-gadget-server.tar.xz | Bin 11148 -> 0 bytes .../SG200X/overlay/etc/init.d/uvc_tool.sh | 274 ------------------ 29 files changed, 1636 deletions(-) delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S00kmod delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S00pmu delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S01fs delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S02config delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S02devicekey delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S03usbdev delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S04backlight delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S04fb delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S05tp delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S10uuid delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S25wifimod delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S30eth delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S30gadget_nic delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S30wifi delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99audtest delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99camtest delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99ednctest delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99ivetest delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99lcdtest delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99loadtest delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99local delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99modeltest delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99nettest delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99nntest delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99resizefs delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99temptest delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/uvc-gadget-server.elf delete mode 100644 buildroot/board/cvitek/SG200X/overlay/etc/init.d/uvc-gadget-server.tar.xz delete mode 100755 buildroot/board/cvitek/SG200X/overlay/etc/init.d/uvc_tool.sh diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S00kmod b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S00kmod deleted file mode 100755 index c41e6dd45..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S00kmod +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh - -if [ "$1" = "start" ] -then - . /etc/profile - printf "load kernel module: " - cd /mnt/system/ko/ - insmod soph_sys.ko - insmod soph_base.ko - insmod soph_rtos_cmdqu.ko - insmod soph_fast_image.ko - insmod soph_mipi_rx.ko - insmod soph_snsr_i2c.ko - insmod soph_vi.ko - insmod soph_vpss.ko - insmod soph_dwa.ko - insmod soph_vo.ko -# insmod soph_mipi_tx.ko - insmod soph_rgn.ko - insmod soph_wdt.ko - insmod soph_clock_cooling.ko - insmod soph_tpu.ko - insmod soph_vcodec.ko - insmod soph_jpeg.ko - insmod soph_vc_driver.ko MaxVencChnNum=9 MaxVdecChnNum=9 - insmod soph_rtc.ko - insmod soph_ive.ko - insmod soph_mon.ko - insmod soph_pwm.ko - insmod soph_saradc.ko - insmod soph_wiegand.ko - echo "OK" - exit 0 -fi diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S00pmu b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S00pmu deleted file mode 100755 index f3d9786b5..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S00pmu +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh - -if ! command -v i2cget &> /dev/null -then - echo "i2cdetect not find, please install i2c-tools" - exit 1 -fi - -pmu_version=$(i2cget -y 4 0x34 0x03) -pmu_version=$((pmu_version & 0xCF)) - -chip_id_1=$(printf "%d" 0x47) -chip_id_2=$(printf "%d" 0x4a) - -if [ "$pmu_version" -eq "$chip_id_1" ] || [ "$pmu_version" -eq "$chip_id_2" ]; then - case "$1" in - start) - exec /usr/bin/axp2101 - echo "Starting PMU: OK\n" - ;; - stop) - runlevel=$(cat /run/runlevel | awk '{ print $1 }') - if [ "$runlevel" = "0" ]; then - printf "Stopping PMU\n" - value=$(i2cget -y 4 0x34 0x10) - value=$((value | 0x01)) - i2cset -y 4 0x34 0x10 $value - fi - ;; - esac -fi diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S01fs b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S01fs deleted file mode 100755 index 18c6fe785..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S01fs +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -if [ "$1" = "start" ] -then - . /etc/profile - printf "mounting filesystem : " - mkdir -p /boot - mount -t vfat /dev/mmcblk0p1 /boot - mount -t configfs configfs /sys/kernel/config - mount -t debugfs debugfs /sys/kernel/debug - echo "OK" -fi diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S02config b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S02config deleted file mode 100755 index b5a791a76..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S02config +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/sh - -if [ "$1" = "start" ] -then - . /etc/profile - printf "copy config file from /boot: " - if [ -e /boot/sshd_config ] - then - cp -vf /boot/sshd_config /etc/ssh/sshd_config - fi - if [ -e /boot/resolv.conf ] - then - rm -rf /etc/resolv.conf - cp -vf /boot/resolv.conf /etc/resolv.conf - fi - if [ -e /boot/input-event-daemon ] - then - if [ ! -e /etc/input-event-daemon.conf ] - then - cp /etc/input-event-daemon.conf.bak /etc/input-event-daemon.conf - fi - else - if [ -e /etc/input-event-daemon.conf ] - then - cp /etc/input-event-daemon.conf /etc/input-event-daemon.conf.bak - rm /etc/input-event-daemon.conf - fi - fi - if [ -e /boot/rc.local ] - then - cp -vf /boot/rc.local /etc/rc.local - fi - if [ -e /boot/ttyGS0_handler.sh ] - then - cp /boot/ttyGS0_handler.sh /etc/ttyGS0_handler.sh - fi - if [ -e /boot/console_handler.sh ] - then - cp /boot/console_handler.sh /etc/console_handler.sh - fi - if [ -e /boot/alpha ] - then - if [ ! -e /mnt/data/sensor_cfg.ini ] - then - cp /mnt/data/sensor_cfg.ini.alpha /mnt/data/sensor_cfg.ini - fi - if [ $(cat /mnt/data/sensor_cfg.ini | wc -l) -eq 0 ] - then - cp /mnt/data/sensor_cfg.ini.beta /mnt/data/sensor_cfg.ini - fi - # MIPI RX 4N PINMUX MCLK0 - devmem 0x0300116C 32 0x5 - # MIPI RX 0N PINMUX MIPIP RX 0N - devmem 0x0300118C 32 0x3 - echo " alpha " - else - if [ ! -e /mnt/data/sensor_cfg.ini ] - then - cp /mnt/data/sensor_cfg.ini.beta /mnt/data/sensor_cfg.ini - fi - if [ $(cat /mnt/data/sensor_cfg.ini | wc -l) -eq 0 ] - then - cp /mnt/data/sensor_cfg.ini.beta /mnt/data/sensor_cfg.ini - fi - # MIPI RX 4N PINMUX MIPI RX 4N - devmem 0x0300116C 32 0x3 - # MIPI RX 0N PINMUX MCLK1 - devmem 0x0300118C 32 0x5 - echo -n " beta " - fi - if [ -e /boot/kvmtest ] - then - cp /mnt/data/sensor_cfg.ini.LT /mnt/data/sensor_cfg.ini - fi - echo "OK" -fi diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S02devicekey b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S02devicekey deleted file mode 100755 index 9d55fb43b..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S02devicekey +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -if [ "$1" = "start" ] -then - str_value=$(cat /sys/class/cvi-base/base_uid | awk '{print $2}') - first_uint=$(echo $str_value | cut -d'_' -f1) - second_uint=$(echo $str_value | cut -d'_' -f2) - result="$first_uint$second_uint" - echo $result > /device_key - # for compatibility with previous network mac addr - cat /sys/class/cvi-base/base_uid > /device_key_legacy -fi - diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S03usbdev b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S03usbdev deleted file mode 100755 index 27f2cc88f..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S03usbdev +++ /dev/null @@ -1,200 +0,0 @@ -#!/bin/sh - - -if [ "$1" = "start" ] -then - . /etc/profile - if [ -e /boot/usb.host ] - then - echo "usb mode: host" - echo host > /proc/cviusb/otg_role - elif [ -e /boot/usb.dev ] - then - echo "usb mode: device" - cd /sys/kernel/config/usb_gadget - mkdir -p g0 - cd g0 - if [ -e /boot/usb.idVendor ] - then - cat /boot/usb.idVendor > idVendor - else - echo 0x359F > idVendor - fi - if [ -e /boot/usb.idProduct ] - then - cat /boot/usb.idProduct > idProduct - else - echo 0x2120 > idProduct - fi - if [ -e /boot/usb.bcdDevice ] - then - cat /boot/usb.bcdDevice > bcdDevice - else - echo 0x0300 > bcdDevice - fi - if [ -e /boot/usb.bcdUSB ] - then - cat /boot/usb.bcdUSB > bcdUSB - else - echo 0x0200 > bcdUSB - fi - if [ -e /boot/usb.bDeviceClass ] - then - cat /boot/usb.bDeviceClass > bDeviceClass - else - echo 0xef > bDeviceClass - fi - if [ -e /boot/usb.bDeviceSubClass ] - then - cat /boot/usb.bDeviceSubClass > bDeviceSubClass - else - echo 0x02 > bDeviceSubClass - fi - if [ -e /boot/usb.bDeviceProtocol ] - then - cat /boot/usb.bDeviceProtocol > bDeviceProtocol - else - echo 0x01 > bDeviceProtocol - fi - mkdir -p strings/0x409 - if [ -e /boot/usb.serialnumber ] - then - cat /boot/usb.serialnumber > strings/0x409/serialnumber - else - cat /device_key > strings/0x409/serialnumber - fi - if [ -e /boot/usb.manufacturer ] - then - cat /boot/usb.manufacturer > strings/0x409/manufacturer - else - echo 'sipeed' > strings/0x409/manufacturer - fi - if [ -e /boot/usb.product ] - then - cat /boot/usb.product > strings/0x409/product - else - echo 'licheervnano' > strings/0x409/product - fi - mkdir -p configs/c.1 - # uvc - if [ -e /boot/usb.uvc ] - then - /etc/init.d/uvc_tool.sh mount /boot/usb.uvc - /etc/init.d/uvc_tool.sh server - fi - - if [ -e /boot/usb.GS0 ] - then - mkdir -p functions/acm.GS0 - rm -rf configs/c.1/acm.GS0 - ln -s functions/acm.GS0 configs/c.1/ - fi - - if [ -e /boot/usb.disk0 ] - then - mkdir -p functions/mass_storage.disk0 - rm -rf configs/c.1/mass_storage.disk0 - ln -s functions/mass_storage.disk0 configs/c.1/ - echo 1 > functions/mass_storage.disk0/lun.0/removable - if [ -e /boot/usb.disk0.ro ] - then - echo 1 > functions/mass_storage.disk0/lun.0/ro - echo 1 > functions/mass_storage.disk0/lun.0/cdrom - fi - disk=$(cat /boot/usb.disk0) - if [ -z "${disk}" ] - then - if [ ! -e /mnt/usbdisk.img ] - then - dd if=/dev/zero of=/mnt/usbdisk.img bs=1M count=16 - mkfs.vfat /mnt/usbdisk.img - fi - echo /mnt/usbdisk.img > functions/mass_storage.disk0/lun.0/file - else - 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 - - # keyboard - if [ -e /boot/usb.keyboard ] - then - mkdir functions/hid.GS0 - # echo 1 > functions/hid.GS0/subclass - echo 1 > functions/hid.GS0/wakeup_on_write - echo 1 > functions/hid.GS0/protocol - echo 6 > functions/hid.GS0/report_length - echo -ne \\x05\\x01\\x09\\x06\\xa1\\x01\\x05\\x07\\x19\\xe0\\x29\\xe7\\x15\\x00\\x25\\x01\\x75\\x01\\x95\\x08\\x81\\x02\\x95\\x01\\x75\\x08\\x81\\x03\\x95\\x05\\x75\\x01\\x05\\x08\\x19\\x01\\x29\\x05\\x91\\x02\\x95\\x01\\x75\\x03\\x91\\x03\\x95\\x06\\x75\\x08\\x15\\x00\\x25\\x65\\x05\\x07\\x19\\x00\\x29\\x65\\x81\\x00\\xc0 > functions/hid.GS0/report_desc - ln -s functions/hid.GS0 configs/c.1 - fi - - # mouse - if [ -e /boot/usb.mouse ] - then - mkdir functions/hid.GS1 - # echo 1 > functions/hid.GS1/subclass - echo 1 > functions/hid.GS1/wakeup_on_write - echo 2 > functions/hid.GS1/protocol - echo -ne \\x34 > functions/hid.GS1/report_length - echo -ne \\x5\\x1\\x9\\x2\\xa1\\x1\\x9\\x1\\xa1\\x0\\x5\\x9\\x19\\x1\\x29\\x3\\x15\\x0\\x25\\x1\\x95\\x3\\x75\\x1\\x81\\x2\\x95\\x1\\x75\\x5\\x81\\x3\\x5\\x1\\x9\\x30\\x9\\x31\\x9\\x38\\x15\\x81\\x25\\x7f\\x75\\x8\\x95\\x3\\x81\\x6\\xc0\\xc0 > functions/hid.GS1/report_desc - ln -s functions/hid.GS1 configs/c.1 - fi - - # touchpad - if [ -e /boot/usb.touchpad ] - then - mkdir functions/hid.GS2 - # echo 1 > functions/hid.GS2/subclass - echo 1 > functions/hid.GS2/wakeup_on_write - echo 2 > functions/hid.GS2/protocol - echo 6 > functions/hid.GS2/report_length - echo -ne \\x05\\x01\\x09\\x02\\xa1\\x01\\x09\\x01\\xa1\\x00\\x05\\x09\\x19\\x01\\x29\\x03\\x15\\x00\\x25\\x01\\x95\\x03\\x75\\x01\\x81\\x02\\x95\\x01\\x75\\x05\\x81\\x01\\x05\\x01\\x09\\x30\\x09\\x31\\x15\\x00\\x26\\xff\\x7f\\x35\\x00\\x46\\xff\\x7f\\x75\\x10\\x95\\x02\\x81\\x02\\x05\\x01\\x09\\x38\\x15\\x81\\x25\\x7f\\x35\\x00\\x45\\x00\\x75\\x08\\x95\\x01\\x81\\x06\\xc0\\xc0 > functions/hid.GS2/report_desc - ln -s functions/hid.GS2 configs/c.1 - fi - - ls /sys/class/udc/ | cat > UDC - echo device > /proc/cviusb/otg_role - fi -fi - -if [ "$1" = "stop" ] -then - echo '' > /sys/kernel/config/usb_gadget/g0/UDC - echo host > /proc/cviusb/otg_role - # uvc - if [ -e /sys/kernel/config/usb_gadget/g0/configs/c.1/uvc.usb0 ] - then - /etc/init.d/uvc_tool.sh unmount - fi - - # 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 -fi - diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S04backlight b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S04backlight deleted file mode 100755 index ba397cc24..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S04backlight +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -if [ "$1" = "start" ] -then - . /etc/profile - if [ ! -e /boot/alpha ] - then - devmem 0x030010AC 32 0x04 # PINMUX PWM10 - blpwm="/sys/class/pwm/pwmchip8/pwm2/" - if [ ! -e "${blpwm}" ] - then - echo 2 > /sys/class/pwm/pwmchip8/export - fi - echo 0 > $blpwm/enable - echo "10000" > ${blpwm}/period # 100KHZ - panel_value="" - if [ -e /boot/board ] - then - panel_value=$(grep '^panel=' /boot/board | cut -d '=' -f 2) - elif [ -e /boot/uEnv.txt ] - then - panel_value=$(grep '^panel=' /boot/uEnv.txt | cut -d '=' -f 2) - fi - if [ "$panel_value" = "st7701_hd228001c31" ] - then - echo "2000" > ${blpwm}/duty_cycle # 20% - else - echo "9000" > ${blpwm}/duty_cycle - fi - echo 1 > $blpwm/enable - fi - exit 0 -fi diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S04fb b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S04fb deleted file mode 100755 index 39ae6e746..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S04fb +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -if [ "$1" = "start" ] -then - . /etc/profile - if [ -e /boot/fb ] - then - echo "framebuffer enable" - insmod /mnt/system/ko/soph_fb.ko - # we need keep node /dev/fb0 open - # graphic layer will disable after node /dev/fb0 is closed - ( - exec 3<>/dev/fb0 - while true - do - sleep 65535 - done - ) & - fi - exit 0 -fi diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S05tp b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S05tp deleted file mode 100755 index bfec20842..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S05tp +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -if [ "$1" = "start" ] -then - . /etc/profile - panel_value="" - if [ -e /boot/board ] - then - panel_value=$(grep '^panel=' /boot/board | cut -d '=' -f 2) - elif [ -e /boot/uEnv.txt ] - then - panel_value=$(grep '^panel=' /boot/uEnv.txt | cut -d '=' -f 2) - fi - if [ "$panel_value" = "st7701_lct024bsi20" ] - then - echo "load cst7xx touchscreen driver" - insmod /mnt/system/ko/hynitron_touch_new.ko - elif [ "$panel_value" = "st7701_hd228001c31" ] - then - echo "load cst3xx touchscreen driver" - insmod /mnt/system/ko/hynitron_touch.ko - fi - if [ -e /boot/gt9xx ] - then - echo "load gt9xx touchscreen driver" - insmod /mnt/system/ko/3rd/gt9xx.ko - fi - exit 0 -fi diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S10uuid b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S10uuid deleted file mode 100755 index 53afed049..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S10uuid +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -hex2mac() { - MAC="" - seq 2 2 12 | while read i - do - echo -n ${1} | head -c $i | tail -c 2 - if [ $i != 12 ] - then - echo -n ':' - fi - done | tr '[:upper:]' '[:lower:]' -} - -if [ "${1}" = start ] -then - prefix=licheervnano - if [ -e /boot/hostname.prefix ] - then - prefix=$(cat /boot/hostname.prefix) - fi - old_hostname=$(cat /etc/hostname) - new_hostname=${prefix}-$(sha512sum /device_key_legacy | head -c 4) - - if [ -e /boot/hostname ] - then - new_hostname=$(cat /boot/hostname) - fi - - if [ "${old_hostname}" != "${new_hostname}" ] - then - hostname ${new_hostname} - echo ${new_hostname} > /etc/hostname - sed -i -e "s/${old_hostname}/${new_hostname}/g" /etc/hosts - fi - echo "hostname: ${new_hostname}" - - if [ -e /boot/eth.mac ] - then - new_ethmac=$(cat /boot/ethmac) - else - new_ethmac=$(hex2mac 48da356f$(sha512sum /device_key_legacy | head -c 4)) - fi - - ifconfig eth0 down - ip link set eth0 address ${new_ethmac} - ifconfig eth0 up - echo "ethernet mac address: ${new_ethmac}" -fi diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S25wifimod b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S25wifimod deleted file mode 100755 index b287dd4a0..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S25wifimod +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -if [ "$1" = "start" ] -then - . /etc/profile - printf "load wifi kernel module: " - cd /mnt/system/ko/ - insmod cfg80211.ko - insmod 3rd/aic8800_bsp.ko - insmod 3rd/aic8800_fdrv.ko - insmod 3rd/8733bs.ko - echo "OK" - exit 0 -fi diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S30eth b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S30eth deleted file mode 100755 index d30bc52c1..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S30eth +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -. /etc/profile - -start() { - printf "start ethernet: " - if [ ! -e /boot/eth.nodhcp ] - then - (udhcpc -i eth0 -t 10 -T 1 -A 5 -b -p /run/udhcpc.eth0.pid) & - fi - echo "OK" -} - -stop() { - kill `cat /run/udhcpc.eth0.pid` - rm /run/udhcpc.eth0.pid -} - -restart() { - start - stop -} - -if [ "${1}" = "start" ] -then - start -elif [ "${1}" = "stop" ] -then - stop -elif [ "${1}" = "restart" ] -then - restart -fi diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S30gadget_nic b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S30gadget_nic deleted file mode 100755 index 6ed4bb279..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S30gadget_nic +++ /dev/null @@ -1,176 +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" -} - -hex2mac() { - MAC="" - seq 2 2 12 | while read i - do - echo -n ${1} | head -c $i | tail -c 2 - if [ $i != 12 ] - then - echo -n ':' - fi - done | tr '[:upper:]' '[:lower:]' -} - -start() { - # S03usbdev start first - if [ -e /boot/usb.dev ] - then - rndis_ifname=usb0 - # RNDIS - if [ -e /boot/usb.rndis ] - then - # mac - if [ -e /boot/usb.rndis.mac ] - then - new_rndismac=$(cat /boot/usb.rndis.mac) - else - new_rndismac=$(hex2mac 48da356f$(sha512sum /device_key_legacy | head -c 4)) - fi - ip link set $rndis_ifname address ${new_rndismac} - ifconfig $rndis_ifname up - echo "rndis mac address: ${new_rndismac}" - - # dhcp - 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 /device_key_legacy | head -c 2)) - id3=$(printf "%d" 0x$(sha512sum /device_key_legacy | head -c 4 | tail -c 2)) - id3=$((id3 + 1)) - if [ "$id2" = "$id3" ] - then - id2=$((id2 + 2)) - fi - if [ "$id2" -ge 255 ] - then - id2=252 - fi - if [ "$id3" -ge 255 ] - then - id3=251 - fi - ipv4_prefix=10.$id2.$id3 - fi - gen_udhcpd_conf $rndis_ifname "${ipv4_prefix}" > /etc/udhcpd.${rndis_ifname}.conf - ip addr add $ipv4_prefix.1/24 dev $rndis_ifname - udhcpd -S /etc/udhcpd.${rndis_ifname}.conf - fi - echo "RNDIS DHCP OK" - rndis_ifname=usb1 - fi - - # CDC NCM - if [ -e /boot/usb.ncm ] - then - # mac - if [ -e /boot/usb.ncm.mac ] - then - new_mac=$(cat /boot/usb.ncm.mac) - else - new_mac=$(hex2mac 48da356e$(sha512sum /device_key_legacy | head -c 4)) - fi - ip link set $rndis_ifname address ${new_mac} - ifconfig $rndis_ifname up - echo "ncm mac address: ${new_mac}" - - # dhcp - if [ ! -e /boot/ncm.nodhcpd ] - then - if [ -e /boot/ncm.ipv4_prefix ] - then - ipv4_prefix=`cat /boot/ncm.ipv4_prefix` - else - id2=$(printf "%d" 0x$(sha512sum /device_key_legacy | head -c 2)) - id3=$(printf "%d" 0x$(sha512sum /device_key_legacy | 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 $rndis_ifname "${ipv4_prefix}" > /etc/udhcpd.${rndis_ifname}.conf - ip addr add $ipv4_prefix.1/24 dev $rndis_ifname - udhcpd -S /etc/udhcpd.${rndis_ifname}.conf - fi - echo "CDC NCM DHCP OK" - fi - fi -} - -stop() { - # first card - if [ -e /var/run/udhcpd.usb0.pid ] - then - kill $(cat "/var/run/udhcpd.usb0.pid") - rm /var/run/udhcpd.usb0.pid || true - fi - pnum=$(ps -ef|grep udhcpd|grep -v grep| grep udhcpd.usb0.conf | awk '{print $1}' | wc -l) - if [ x$pnum != x0 ] - then - ps -ef|grep udhcpd|grep -v grep| grep udhcpd.usb0.conf | awk '{print $1}'|xargs kill -2 || true - fi - usb0_info=$(ip link |grep usb0) - if [ -n "$usb0_info" ] - then - ifconfig usb0 down - fi - - # second card - if [ -e /var/run/udhcpd.usb1.pid ] - then - kill $(cat /var/run/udhcpd.usb1.pid) - rm /var/run/udhcpd.usb1.pid || true - fi - pnum=$(ps -ef|grep udhcpd|grep -v grep| grep udhcpd.usb1.conf | awk '{print $1}' | wc -l) - if [ x$pnum != x0 ] - then - ps -ef|grep udhcpd|grep -v grep| grep udhcpd.usb1.conf | awk '{print $1}'|xargs kill -2 || true - fi - usb0_info=$(ip link |grep usb1) - if [ -n "$usb0_info" ] - then - ifconfig usb1 down - fi -} - -restart() { - stop - start -} - -if [ "${1}" = "start" ] -then - start -elif [ "${1}" = "stop" ] -then - stop -elif [ "${1}" = "restart" ] -then - restart -fi diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S30wifi b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S30wifi deleted file mode 100755 index 9c4df0f22..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S30wifi +++ /dev/null @@ -1,168 +0,0 @@ -#!/bin/sh - -. /etc/profile - -gen_hostapd_conf() { - ssid="${1}" - pass="${2}" - echo "ctrl_interface=/var/run/hostapd" - echo "ctrl_interface_group=0" - echo "ssid=${ssid}" - echo "hw_mode=g" - echo "channel=1" - echo "beacon_int=100" - echo "dtim_period=2" - echo "max_num_sta=255" - echo "rts_threshold=-1" - echo "fragm_threshold=-1" - echo "macaddr_acl=0" - echo "auth_algs=3" - echo "wpa=2" - echo "wpa_passphrase=${pass}" - echo "ieee80211n=1" -} - - - -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/wifi.sta ] - then - echo "wifi mode: sta" - if [ -e /boot/wpa_supplicant.conf ] - then - cp /boot/wpa_supplicant.conf /etc/wpa_supplicant.conf - else - ssid="" - pass="" - if [ -e /boot/wifi.ssid ] - then - echo -n "ssid: " - cat /boot/wifi.ssid - ssid=`cat /boot/wifi.ssid` - fi - if [ -e /boot/wifi.pass ] - then - echo -n "wifi.pass: " - cat /boot/wifi.pass - pass=`cat /boot/wifi.pass` - fi - if [ ! -z "${ssid}${pass}" ] - then - echo "ctrl_interface=/var/run/wpa_supplicant" > /etc/wpa_supplicant.conf - wpa_passphrase "$ssid" "$pass" >> /etc/wpa_supplicant.conf - fi - fi - wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf - if [ ! -e /boot/wifi.nodhcp ] - then - (udhcpc -i wlan0 -t 10 -T 1 -A 5 -b -p /run/udhcpc.wlan0.pid) & - fi - elif [ -e /boot/wifi.ap ] - then - echo "wifi mode: ap" - if [ -e /boot/hostapd.conf ] - then - cp /boot/hostapd.conf /etc/hostapd.conf - else - id2=$(printf "%d" 0x$(sha512sum /device_key_legacy | head -c 2)) - id3=$(printf "%d" 0x$(sha512sum /device_key_legacy | 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 - ssid="licheervnano-${id2}${id3}" - pass="licheervnano" - if [ -e /boot/wifi.ssid ] - then - echo -n "ssid: " - cat /boot/wifi.ssid - ssid=`cat /boot/wifi.ssid` - fi - if [ -e /boot/wifi.pass ] - then - echo -n "wifi.pass: " - cat /boot/wifi.pass - pass=`cat /boot/wifi.pass` - fi - gen_hostapd_conf "$ssid" "$pass" > /etc/hostapd.conf - fi - if [ -e /boot/wifi.ipv4_prefix ] - then - ipv4_prefix=`cat /boot/wifi.ipv4_prefix` - else - ipv4_prefix=10.$id3.$id2 - fi - if [ ! -e /etc/udhcpd.wlan0.conf ] - then - gen_udhcpd_conf wlan0 "${ipv4_prefix}" > /etc/udhcpd.wlan0.conf - fi - ifconfig wlan0 up - ip route del default || true - # routes=$(ip route show | grep 'dev wlan0' | awk '{print $1}') - # for route in $routes; do - # ip route del $route dev wlan0 - # echo "Deleted route $route dev wlan0" - # done - ip add flush dev wlan0 - ip addr add $ipv4_prefix.1/24 dev wlan0 - hostapd -B -i wlan0 /etc/hostapd.conf - udhcpd -S /etc/udhcpd.wlan0.conf - elif [ -e /boot/wifi.mon ] - then - echo "wifi mode: mon" - airmon-ng start wlan0 - fi -} - -stop() { - ps -ef|grep hostapd|grep -v grep|awk '{print $1}'|xargs kill -2 || true - ps -ef|grep "udhcpd -S /etc/udhcpd.wlan0.conf" |grep -v grep|awk '{print $1}'|xargs kill -2 || true - killall wpa_supplicant || true - if [ -e /run/udhcpc.wlan0.pid ] - then - kill `cat /run/udhcpc.wlan0.pid` || true - rm -f /run/udhcpc.wlan0.pid - fi - if [ -e /var/run/udhcpd.wlan0.pid ] - then - kill `cat /var/run/udhcpd.wlan0.pid` || true - rm -f /var/run/udhcpd.wlan0.pid - fi - airmon-ng stop wlan0mon || true -} - -restart() { - stop - start -} - -if [ "${1}" = "start" ] -then - start -elif [ "${1}" = "stop" ] -then - stop -elif [ "${1}" = "restart" ] -then - restart -fi diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99audtest b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99audtest deleted file mode 100755 index 5aaa9ea2d..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99audtest +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -case "$1" in - start) - printf "Starting audtest: " - if [ -e /boot/audtest ] - then - touch /tmp/audtest - fi - ( - if [ -e /tmp/audtest ] - then - sleep 20 - fi - while true - do - if [ ! -e /tmp/audtest ] - then - break - fi - . /etc/profile - export HOME=/root - rm /tmp/rec.wav - arecord -f S16_LE -d 1 /tmp/rec.wav - aplay -f S16_LE -Dhw:1,0 /tmp/rec.wav - sleep 0.5 - done - ) & - [ $? = 0 ] && echo "OK" || echo "FAIL" - ;; - stop) - printf "Stopping audtest: " - rm /tmp/audtest - echo "OK" - ;; - restart) - printf "Restart audtest: " - $(realpath ${0}) stop - $(realpath ${0}) start - echo "OK" - ;; -esac diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99camtest b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99camtest deleted file mode 100755 index ff0683078..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99camtest +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh - -case "$1" in - start) - printf "Starting camtest: " - if [ -e /boot/camtest ] - then - touch /tmp/camtest - fi - if [ ! -e /tmp/camtest ] - then - exit 0 -else - sleep 1 - fi - (nice -n 17 /mnt/system/usr/bin/sample_vio 6 &> /dev/null) & - [ $? = 0 ] && echo "OK" || echo "FAIL" - ;; - stop) - printf "Stopping camtest: " - rm /tmp/camtest - killall sample_vio - echo "OK" - ;; - restart) - printf "Restart camtest: " - $(realpath ${0}) stop - $(realpath ${0}) start - echo "OK" - ;; -esac diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99ednctest b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99ednctest deleted file mode 100755 index 9a3ed269d..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99ednctest +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh - -case "$1" in - start) - printf "Starting ednctest: " - if [ -e /boot/ednctest ] - then - touch /tmp/ednctest - fi - . /etc/profile - ( - while true - do - if [ ! -e /tmp/ednctest ] - then - break - fi - if [ ! -e /tmp/rand.h264 ] - then - dd if=/dev/urandom of=/tmp/rand.yuv bs=1M count=2 - /mnt/system/usr/bin/sample_venc -h 1080 -w 1080 -c 264 -i rand.yuv -o /tmp/rand - fi - /mnt/system/usr/bin/sample_vcodec sample_vdec -c 264 -i rand.h264 -o rand - done - ) & - [ $? = 0 ] && echo "OK" || echo "FAIL" - ;; - stop) - printf "Stopping ednctest: " - rm /tmp/ednctest - echo "OK" - ;; - restart) - printf "Restart ednctest: " - $(realpath ${0}) stop - $(realpath ${0}) start - echo "OK" - ;; -esac diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99ivetest b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99ivetest deleted file mode 100755 index 1312c928e..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99ivetest +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh - -case "$1" in - start) - printf "Starting ivetest: " - if [ -e /boot/ivetest ] - then - touch /tmp/ivetest - fi - . /etc/profile - ( - while true - do - if [ ! -e /tmp/ivetest ] - then - break - fi - if [ ! -e /tmp/rand2MiB ] - then - dd if=/dev/urandom of=/tmp/rand2MiB bs=1M count=2 - fi - /mnt/system/usr/bin/ive_stress 1920 1080 /tmp/rand2MiB 1000 - done - ) & - [ $? = 0 ] && echo "OK" || echo "FAIL" - ;; - stop) - printf "Stopping ivetest: " - rm /tmp/ivetest - echo "OK" - ;; - restart) - printf "Restart ivetest: " - $(realpath ${0}) stop - $(realpath ${0}) start - echo "OK" - ;; -esac diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99lcdtest b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99lcdtest deleted file mode 100755 index dac111629..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99lcdtest +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh - -case "$1" in - start) - printf "Starting lcdtest: " - if [ -e /boot/lcdtest ] - then - touch /tmp/lcdtest - fi - if [ -e /tmp/lcdtest ] - then - sleep 2 - fbpattern - fi - ( - while true - do - if [ ! -e /tmp/lcdtest ] - then - break - fi - date | fbbar 0 0xFFFFFFFF 0xFF000000 - sleep 1 - done - ) & - [ $? = 0 ] && echo "OK" || echo "FAIL" - ;; - stop) - printf "Stopping lcdtest: " - rm /tmp/lcdtest - echo "OK" - ;; - restart) - printf "Restart lcdtest: " - $(realpath ${0}) stop - $(realpath ${0}) start - echo "OK" - ;; -esac diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99loadtest b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99loadtest deleted file mode 100755 index c128d88b6..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99loadtest +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh - -case "$1" in - start) - printf "Starting loadtest: " - if [ -e /boot/loadtest ] - then - touch /tmp/loadtest - fi - ( - while true - do - if [ ! -e /tmp/loadtest ] - then - break - fi - colorbg=0xFF000000 - colorfg=0xFFFFFFFF - echo "tpu_clk: $(cat /sys/kernel/debug/clk/clk_tpu/clk_rate)" | fbbar 16 $colorfg $colorbg - sleep 1 - done - ) & - [ $? = 0 ] && echo "OK" || echo "FAIL" - ;; - stop) - printf "Stopping loadtest: " - rm /tmp/loadtest - echo "OK" - ;; - restart) - printf "Restart loadtest: " - $(realpath ${0}) stop - $(realpath ${0}) start - echo "OK" - ;; -esac diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99local b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99local deleted file mode 100755 index fd7a21aea..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99local +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -if [ "${1}" = "start" ] -then - if [ ! -e /boot/rclocal.disable ] - then - sh /etc/rc.local & - fi -fi diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99modeltest b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99modeltest deleted file mode 100755 index d97a23f83..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99modeltest +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh - -case "$1" in - start) - printf "Starting modeltest: " - if [ -e /boot/modeltest ] - then - touch /tmp/modeltest - fi - ( - while true - do - if [ ! -e /tmp/modeltest ] - then - break - fi - cd /usr/bin/ - nice -n 19 model_runner_test 10000 - done - ) & - [ $? = 0 ] && echo "OK" || echo "FAIL" - ;; - stop) - printf "Stopping modeltest: " - rm /tmp/modeltest - killall model_runner - echo "OK" - ;; - restart) - printf "Restart modeltest: " - $(realpath ${0}) stop - $(realpath ${0}) start - echo "OK" - ;; -esac diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99nettest b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99nettest deleted file mode 100755 index e24ae24f5..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99nettest +++ /dev/null @@ -1,109 +0,0 @@ -#!/bin/sh - -GREEN=0xFF00FF00 -RED=0xFFFF0000 - -WLAN0_TIMEOUT=15 -ETH0_TIMEOUT=8 - -case "$1" in - start) - printf "Starting nettest: " - if [ -e /boot/nettest ] - then - touch /tmp/nettest - fi - if [ -e /boot/nettest_url ] - then - url=$(cat /boot/nettest_url) - fi - if [ -z "${url}" ] - then - url=http://192.168.0.104:8000/rand10MiB - fi - ( - while true - do - if [ ! -e /tmp/nettest ] - then - break - fi - colorbg=0xFF000000 - colorfg=0xFFFFFFFF - wlan0_stat=$(ip link show wlan0 | head -n 1) - wlan0_addr=$(ip link show wlan0 | tail -n 1) - if [ -z "${wlan0_stat}" ] - then - wlan0_stat="wlan0 not found" - colorfg=$RED - fi - echo "$wlan0_stat" | fbbar 64 $colorfg $colorbg - echo "$wlan0_addr" | fbbar 80 $colorfg $colorbg - colorfg=0xFFFFFFFF - eth0_stat=$(ip link show eth0 | head -n 1) - eth0_addr=$(ip link show eth0 | tail -n 1) - if [ -z "${eth0_stat}" ] - then - eth0_stat="eth0 not found" - colorfg=$RED - fi - echo "$eth0_stat" | fbbar 96 $colorfg $colorbg - echo "$eth0_addr" | fbbar 112 $colorfg $colorbg - wlan0_dl_start=$(cat /proc/uptime | awk -F. '{print $1}') - curl --interface wlan0 --max-time ${WLAN0_TIMEOUT} ${url} > /dev/null - if [ $? -ne 0 ] - then - wlan0_dl_time=-1 - udhcpc -i wlan0 -t 1 -T 1 -A 1 -v -n - else - wlan0_dl_end=$(cat /proc/uptime | awk -F. '{print $1}') - wlan0_dl_time=$((wlan0_dl_end - wlan0_dl_start)) - fi - if [ "${wlan0_dl_time}" -ge $((WLAN0_TIMEOUT - 3)) ] - then - colorfg=$RED - elif [ "${wlan0_dl_time}" = -1 ] - then - colorfg=$RED - else - colorfg=$GREEN - fi - echo "wlan0 download test: ${wlan0_dl_time}" | fbbar 128 $colorfg $colorbg - eth0_dl_start=$(cat /proc/uptime | awk -F. '{print $1}') - curl --interface eth0 --max-time ${ETH0_TIMEOUT} ${url} > /dev/null - if [ $? -ne 0 ] - then - eth0_dl_time=-1 - udhcpc -i eth0 -t 1 -T 1 -A 1 -v -n - else - eth0_dl_end=$(cat /proc/uptime | awk -F. '{print $1}') - eth0_dl_time=$((eth0_dl_end - eth0_dl_start)) - fi - if [ "${eth0_dl_time}" -ge $((ETH0_TIMEOUT - 3)) ] - then - colorfg=$RED - elif [ "${eth0_dl_time}" = -1 ] - then - colorfg=$RED - else - colorfg=$GREEN - fi - echo "eth0 download test: ${eth0_dl_time}" | fbbar 144 $colorfg $colorbg - sleep 0.5 - done - ) & - [ $? = 0 ] && echo "OK" || echo "FAIL" - ;; - stop) - printf "Stopping nettest: " - rm /tmp/nettest - echo "OK" - sleep 1 - ;; - restart) - printf "Restart nettest: " - $(realpath ${0}) stop - $(realpath ${0}) start - echo "OK" - ;; -esac diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99nntest b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99nntest deleted file mode 100755 index 5c1f26920..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99nntest +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh - -case "$1" in - start) - printf "Starting nntest: " - if [ -e /boot/nntest ] - then - touch /tmp/nntest - fi - ( - while true - do - if [ ! -e /tmp/nntest ] - then - break - fi - cd /usr/bin/ - nice -n 19 nn_runner_test 1000 - done - ) & - [ $? = 0 ] && echo "OK" || echo "FAIL" - ;; - stop) - printf "Stopping nntest: " - rm /tmp/nntest - killall nn_runner_test - echo "OK" - ;; - restart) - printf "Restart nntest: " - $(realpath ${0}) stop - $(realpath ${0}) start - echo "OK" - ;; -esac diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99resizefs b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99resizefs deleted file mode 100755 index b0d1d81f0..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99resizefs +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -. /etc/profile - -if [ "${1}" = start ] -then - # use all sdcard free space for data - parted -s /dev/mmcblk0 "resizepart 2 -0" - echo "yes - 100% - " | parted ---pretend-input-tty /dev/mmcblk0 "resizepart 2 100%" - # resize data filesystem - (resize2fs /dev/mmcblk0p2) & -fi diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99temptest b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99temptest deleted file mode 100755 index 882456ab4..000000000 --- a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/S99temptest +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh - -GREEN=0xFF00FF00 -RED=0xFFFF0000 - -case "$1" in - start) - printf "Starting temptest: " - if [ -e /boot/temptest ] - then - touch /tmp/temptest - fi - ( - while true - do - if [ ! -e /tmp/temptest ] - then - break - fi - colorbg=0xFF000000 - soc_temp=$(cat /sys/class/thermal/thermal_zone0/temp) - if [ "${soc_temp}" -le 75000 ] - then - colorfg=$GREEN - else - colorfg=$RED - fi - echo "soc temp: $soc_temp" | fbbar 32 $colorfg $colorbg - colorfg=0xFFFFFFFF - echo "soc id: $(cat /device_key_legacy)" | fbbar 48 $colorfg $colorbg - sleep 1 - done - ) & - [ $? = 0 ] && echo "OK" || echo "FAIL" - ;; - stop) - printf "Stopping temptest: " - rm /tmp/temptest - echo "OK" - ;; - restart) - printf "Restart temptest: " - $(realpath ${0}) stop - $(realpath ${0}) start - echo "OK" - ;; -esac diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/uvc-gadget-server.elf b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/uvc-gadget-server.elf deleted file mode 100755 index b08f776fa7b766ad42e0110def6e7c39358e6be0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26712 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 QWnIECUXqC7YHa_10P(=s&;S4c diff --git a/buildroot/board/cvitek/SG200X/overlay/etc/init.d/uvc-gadget-server.tar.xz b/buildroot/board/cvitek/SG200X/overlay/etc/init.d/uvc-gadget-server.tar.xz deleted file mode 100644 index 41ef4d4212f83dd8bbf29738b3f703b3cb9e075c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11148 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 # 输出到标准错误 / Output to stderr - elif [ ! -f "$input_file" ]; then - # 文件不存在 / File does not exist - echo "Warn: File '$input_file' does not exist." 1>&2 # 输出到标准错误 / Output to stderr - elif [ ! -r "$input_file" ]; then - # 文件不可读取 / File is not readable - echo "Warn: File '$input_file' is not readable." 1>&2 # 输出到标准错误 / Output to stderr - else - # 使用 awk 处理文件内容 / Using awk to process the file content - parsed_data=$(awk -v resolutions="$supported_resolutions" -v formats="$supported_formats" ' - BEGIN { - OFS = " "; - split(resolutions, supported_res, " "); # 将支持的分辨率放入数组 / Split the supported resolutions into an array - split(formats, supported_fmt, " "); # 将支持的格式放入数组 / Split the supported formats into an array - } - /^[^#]/ { # 只处理非 # 开头的行 / Process lines that do not start with # - fmt = $1; - res = $2; - - # 检查格式是否在支持的格式列表中 / Check if the format is in the supported formats list - is_supported_fmt = 0; - for (i in supported_fmt) { - if (fmt == supported_fmt[i]) { - is_supported_fmt = 1; - break; - } - } - if (!is_supported_fmt) { - print "Unsupported format:", fmt > "/dev/stderr"; # 输出不支持的格式到标准错误 / Output unsupported format to stderr - next; - } - - if (res ~ /^[0-9]+x[0-9]+$/) { # 匹配 640x360/1280x720 这种格式 / Match the format like 640x360 or 1280x720 - is_supported_res = 0; - for (i in supported_res) { - if (res == supported_res[i]) { - is_supported_res = 1; - break; - } - } - if (!is_supported_res) { - print "Unsupported resolution:", res > "/dev/stderr"; # 输出不支持的分辨率到标准错误 / Output unsupported resolution to stderr - next; - } - split(res, dims, "x"); # 将 1280x720 按 "x" 分割成宽高 / Split 1280x720 into width and height - w = dims[1]; - h = dims[2]; - } else { - print "Invalid resolution format:", res > "/dev/stderr"; # 输出无效的分辨率格式到标准错误 / Output invalid resolution format to stderr - next; - } - print fmt, w, h; # 输出格式 fmt, w, h / Output fmt, w, h - } - ' "$input_file") - fi - - # 确保至少包含 'mjpg' 和 'yuyv' 格式 / Ensure at least one 'mjpg' and 'yuyv' format exists - has_mjpg=$(echo "$parsed_data" | grep -w "mjpg") - has_yuyv=$(echo "$parsed_data" | grep -w "yuyv") - - if [ -z "$has_mjpg" ]; then - default_mjpg=$'\nmjpg 480x320\nmjpg 640x360\nmjpg 640x480\nmjpg 1280x720\nmjpg 1920x1080\nmjpg 2560x1440\n' - echo "Warn: No 'mjpg' config found, adding default: $default_mjpg" 1>&2 - parsed_data="$parsed_data""$(echo "$default_mjpg" | sed 's/x/ /g')" - fi - - if [ -z "$has_yuyv" ]; then - default_yuyv=$'\nyuyv 480x320\nyuyv 640x360\nyuyv 640x480\nyuyv 1280x720\nyuyv 1920x1080\nyuyv 2560x1440\n' - echo "Warn: No 'yuyv' config found, adding default: $default_yuyv" 1>&2 - parsed_data="$parsed_data""$(echo "$default_yuyv" | sed 's/x/ /g')" - fi - - parsed_data=$(echo "$parsed_data" | sed '/^$/d') # 删除空行 - - echo "$parsed_data" # 返回解析的数据 / Return the parsed data -} - - - - -########################################################################## -# UVC - -CONFIGFS_PATH="/sys/kernel/config/usb_gadget/g0" -ORIGINAL_DIR=$(pwd) # 记录脚本启动时的目录 / Record the original working directory - -create_frame() { - # Example usage: - # create_frame - - WIDTH=$1 - HEIGHT=$2 - FORMAT=$3 - - if [ "$FORMAT" == "yuyv" ]; then - wdir=streaming/uncompressed/u/${HEIGHT}p - elif [ "$FORMAT" == "mjpg" ]; then - wdir=streaming/mjpeg/m/${HEIGHT}p - else - echo "only support format yuyv/mjpeg!" - exit 1 - fi - - mkdir -p $wdir - echo $WIDTH > $wdir/wWidth - echo $HEIGHT > $wdir/wHeight - echo $(( $WIDTH * $HEIGHT * 2 )) > $wdir/dwMaxVideoFrameBufferSize - echo $(( $WIDTH * $HEIGHT * 2 * 8 * 5 )) > $wdir/dwMinBitRate - echo $(( $WIDTH * $HEIGHT * 2 * 8 * 60 )) > $wdir/dwMaxBitRate - - cat > $wdir/dwFrameInterval < $wdir/dwDefaultFrameInterval - -<< EOF - configure FrameRate - dwFrameInterfal is in 100-ns units (fps = 1/(dwFrameInterval * 10000000)) - 166666 -> 60 fps - 333333 -> 30 fps - 400000 -> 25 fps - 500000 -> 20 fps - 666666 -> 15 fps - 1000000 -> 10 fps - 2000000 -> 5 fps - 5000000 -> 2 fps - 10000000 -> 1 fps -EOF -} - - -# 挂载 UVC ConfigFS / Mount the UVC ConfigFS -mount_uvc_configfs() { - echo "Mounting UVC ConfigFS in $(pwd)" - - # 创建 functions/uvc.usb0 目录 / Create the directory for uvc.usb0 - mkdir -p functions/uvc.usb0 - cd functions/uvc.usb0 - - # 在 functions/uvc.usb0 目录中创建控制头和符号链接 / Create control header and symlink it in uvc.usb0 - mkdir -p control/header/h - ln -s control/header/h/ control/class/fs/ - ln -s control/header/h/ control/class/ss/ - - # streaming_maxpacket sets wMaxPacketSize. Valid values are 1024/2048/3072 - echo 1024 > streaming_maxpacket - # streaming_interval sets bInterval. Values range from 1..255 - echo 1 > streaming_interval - # streaming_maxburst sets bMaxBurst. Valid values are 1..15 - echo 1 > streaming_maxburst - - # 在 functions/uvc.usb0 目录中创建流媒体路径 / Create streaming paths in uvc.usb0 - mkdir -p streaming/uncompressed/u # YUV 目录 / YUV directory - mkdir -p streaming/mjpeg/m # MJPEG 目录 / MJPEG directory - # 执行解析并直接传递给 while 循环进行处理 / Execute parsing and directly pass to while loop for processing - parse_uvc_config "$1" | while read fmt w h; do - echo "Adding: Format: $fmt, Width: $w, Height: $h" # 输出格式、宽和高 / Output fmt, width, and height - create_frame $w $h $fmt - done - mkdir -p streaming/header/h - # 将 YUV 和 MJPEG 目录链接到流媒体头中 / Link YUV and MJPEG to streaming header - ln -s streaming/uncompressed/u/ streaming/header/h/ - ln -s streaming/mjpeg/m/ streaming/header/h/ - # 将 header 链接到 class 中 / Link header to classes - ln -s streaming/header/h/ streaming/class/fs - ln -s streaming/header/h/ streaming/class/hs - ln -s streaming/header/h/ streaming/class/ss - - cd ../.. - ln -s functions/uvc.usb0 configs/c.1 - - echo "UVC ConfigFS mounted successfully in $(pwd)" -} - -# 卸载 UVC ConfigFS / Unmount the UVC ConfigFS -unmount_uvc_configfs() { - echo "Unmounting UVC ConfigFS in $(pwd)" - - unlink configs/c.1/uvc.usb0 - - cd functions/uvc.usb0 - - # 删除流媒体目录 / Remove streaming directories - unlink streaming/class/fs/h - unlink streaming/class/hs/h - unlink streaming/class/ss/h - - unlink streaming/header/h/u - unlink streaming/header/h/m - rmdir streaming/header/h - - rmdir streaming/uncompressed/u/*p - rmdir streaming/mjpeg/m/*p - rmdir streaming/uncompressed/u - rmdir streaming/mjpeg/m - - unlink control/class/fs/h - unlink control/class/ss/h - rmdir control/header/h - - cd ../.. - # 删除 functions/uvc.usb0 目录 / Remove the uvc.usb0 directory - rmdir functions/uvc.usb0 - - echo UVC ConfigFS unmounted successfully in $(pwd) -} - -# 进入工作目录 / Enter the working directory -cd "$CONFIGFS_PATH" || return 1 - -# 处理传入的参数 -# Process the input arguments -case "$1" in - "mount") - mount_uvc_configfs "$2" - ;; - "unmount") - unmount_uvc_configfs - ;; - "server") - if [ -z "$(fuser /etc/init.d/uvc-gadget-server.elf)" ]; then - ( - echo "Waiting for UDC start..." - while [ -z "$(cat /sys/kernel/config/usb_gadget/g0/UDC)" ]; do - echo -n "." - sleep 1 - done - sleep 3 # necessary delay time - if [ -z "$(fuser /etc/init.d/uvc-gadget-server.elf)" ]; then - echo -e "\nServer is starting..." # 输出选择了 server 模式 / Output that the server mode is selected - echo -e "===============================\n\n\n" - # 在这里添加你希望在 server 模式下执行的其他操作 / Add other operations you want to perform in server mode here - /etc/init.d/uvc-gadget-server.elf -u /dev/$(basename /sys/class/udc/*/device/gadget/video4linux/video*) -d -i /bin/cat_224.jpg - else - echo -e "\nServer has started..." - echo -e "===============================\n\n\n" - fi - ) >/tmp/uvc-gadget.log 2>&1 & - fi - ;; - "stop_server") - fuser -k /etc/init.d/uvc-gadget-server.elf - ;; - *) - echo "Usage: $0 {mount |unmount|server|stop_server}" # 提示正确的使用方式 / Prompt the correct usage - ;; -esac - -# 返回原始目录 / Return to the original directory -cd "$ORIGINAL_DIR" || return 1 \ No newline at end of file