From 30c229c95be03beeb09a1fda7f9f82dd5c9ebc3f Mon Sep 17 00:00:00 2001 From: luckfox-eng29 Date: Mon, 18 Nov 2024 20:53:05 +0800 Subject: [PATCH] project:cfg:BoardConfig_IPC:overlay:Add a lightweight overlay for Buildroot. Signed-off-by: luckfox-eng29 --- .../etc/init.d/S91smb | 10 +++ .../etc/init.d/S99hciinit | 28 ++++++++ .../etc/init.d/S99rtcinit | 16 +++++ .../etc/init.d/S99test | 13 ++++ .../etc/init.d/S99usb0config | 67 ++++++++++++++++++ .../etc/inittab | 41 +++++++++++ .../etc/profile | 24 +++++++ .../usr/bin/iomux | Bin 0 -> 7588 bytes 8 files changed, 199 insertions(+) create mode 100644 project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S91smb create mode 100755 project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S99hciinit create mode 100755 project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S99rtcinit create mode 100755 project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S99test create mode 100755 project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S99usb0config create mode 100644 project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/inittab create mode 100755 project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/profile create mode 100755 project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/usr/bin/iomux diff --git a/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S91smb b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S91smb new file mode 100644 index 000000000..dc67681a0 --- /dev/null +++ b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S91smb @@ -0,0 +1,10 @@ +#!/bin/sh + +case $1 in + start) + echo "The smb initialization is skipped" + ;; + *) + exit 1 + ;; +esac diff --git a/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S99hciinit b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S99hciinit new file mode 100755 index 000000000..abdaac6b3 --- /dev/null +++ b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S99hciinit @@ -0,0 +1,28 @@ +#!/bin/sh + +check_hciconfig() { + if command -v hciattach &> /dev/null; then + if lsmod | grep -q "aic8800_fdrv"; then + hciattach -s 1500000 /dev/ttyS1 any 1500000 flow nosleep& + sleep 2 + if hciconfig -a | grep -q "hci0"; then + hciconfig hci0 up& + else + echo "hci0 not found or not available." + fi + ifconfig wlan0 up && udhcpc -i wlan0 > /dev/null 2>&1 + else + echo "aic8800_fdrv not found." + fi + fi +} + +case $1 in + start) + check_hciconfig & + ;; + *) + exit 1 + ;; +esac + diff --git a/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S99rtcinit b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S99rtcinit new file mode 100755 index 000000000..32cc126f3 --- /dev/null +++ b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S99rtcinit @@ -0,0 +1,16 @@ +#!/bin/sh + +case $1 in +start) + if [ "$(hwclock | grep "1969")" ]; then + echo "RTC time calibration" + date -s 2024-01-01 + hwclock -w + else + echo "RTC does not require time calibration" + fi + ;; +*) + exit 1 + ;; +esac diff --git a/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S99test b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S99test new file mode 100755 index 000000000..d77252cdf --- /dev/null +++ b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S99test @@ -0,0 +1,13 @@ +#!/bin/sh +[ -f /etc/profile.d/RkEnv.sh ] && source /etc/profile.d/RkEnv.sh +case $1 in + start) + if [ -f /usr/bin/t ] ;then + chmod a+x /usr/bin/t + t & + fi + ;; + *) + exit 1 + ;; +esac diff --git a/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S99usb0config b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S99usb0config new file mode 100755 index 000000000..37bf52dc7 --- /dev/null +++ b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/init.d/S99usb0config @@ -0,0 +1,67 @@ +#!/bin/sh + +TARGET_IP="172.32.0.93" + +USB_KEYWORD="android_work: sent uevent USB_STATE=" +USB_MODE_PATH="/proc/device-tree/usbdrd/usb@ffb00000/dr_mode" + +MAX_RETRIES=10 +retries=0 + +usb0_config() { + if [ "$(cat /proc/device-tree/usbdrd/usb@ffb00000/dr_mode)" == "peripheral" ]; then + current_ip=$(ifconfig usb0 | grep -o 'inet addr:[^ ]*' | awk -F ':' '{print $2}') + echo "current_ip = $current_ip" + echo "TARGET_IP = $TARGET_IP" + + while [[ "$current_ip" != "$TARGET_IP" && $retries -lt $MAX_RETRIES ]]; do + sleep .5 + echo "luckfox : set usb0 ip" + ifconfig usb0 "$TARGET_IP" + current_ip=$(ifconfig usb0 | grep -o 'inet addr:[^ ]*' | awk -F ':' '{print $2}') + echo $current_ip + retries=$((retries + 1)) + done + + if [[ "$current_ip" != "$TARGET_IP" ]]; then + echo "usb0 config error" + else + echo "usb0 config success" + fi + else + echo "usb0 is using host mode" + fi +} + +usb_reset() { + while true; do + last_line=$(dmesg | grep "$USB_KEYWORD" | tail -n 1) + + if [[ "$last_line" == *"DISCONNECTED"* ]]; then + echo "Detected USB DISCONNECTED." + /etc/init.d/S50usbdevice restart + usb0_config + #elif [[ "$last_line" == *"CONFIGURED"* ]]; then + # echo "Detected CONFIGURED. No action required." + #else + # echo "No relevant USB_STATE found." + fi + + sleep 5 + done +} + +case $1 in +start) + # check peripheral + usb_mode="$(cat $USB_MODE_PATH)" + if [ "$usb_mode" = "peripheral" ]; then + usb0_config + usb_reset & + fi + ;; +stop) ;; +*) + exit 1 + ;; +esac diff --git a/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/inittab b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/inittab new file mode 100644 index 000000000..3801d85fc --- /dev/null +++ b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/inittab @@ -0,0 +1,41 @@ +# /etc/inittab +# +# Copyright (C) 2001 Erik Andersen +# +# Note: BusyBox init doesn't support runlevels. The runlevels field is +# completely ignored by BusyBox init. If you want runlevels, use +# sysvinit. +# +# Format for each entry: ::: +# +# id == tty to run on, or empty for /dev/console +# runlevels == ignored +# action == one of sysinit, respawn, askfirst, wait, and once +# process == program to run + +# Startup the system +::sysinit:/bin/mount -t proc proc /proc +::sysinit:/bin/mount -o remount,rw / +::sysinit:/bin/mkdir -p /dev/pts /dev/shm +::sysinit:/bin/mount -a +::sysinit:/bin/mkdir -p /run/lock/subsys +::sysinit:/sbin/swapon -a +null::sysinit:/bin/ln -sf /proc/self/fd /dev/fd +null::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin +null::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout +null::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr +::sysinit:/bin/hostname -F /etc/hostname +# now run any rc scripts +::sysinit:/etc/init.d/rcS + +# Put a getty on the serial port +#console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL +console::respawn:-/bin/sh + +# Stuff to do for the 3-finger salute +#::ctrlaltdel:/sbin/reboot + +# Stuff to do before rebooting +::shutdown:/etc/init.d/rcK +::shutdown:/sbin/swapoff -a +::shutdown:/bin/umount -a -r \ No newline at end of file diff --git a/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/profile b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/profile new file mode 100755 index 000000000..d90ab5e34 --- /dev/null +++ b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/etc/profile @@ -0,0 +1,24 @@ +export PATH="/bin:/sbin:/usr/bin:/usr/sbin" + +export EDITOR='/bin/vi' + +#export PS1='[\u@\h \W]# ' +if [ "$PS1" ]; then + if [ "`id -u`" -eq 0 ]; then + #export PS1='# ' + export PS1='[\u@\h \W]# ' + else + #export PS1='$ ' + export PS1='[\u@\h \W]$ ' + fi +fi + +# Source configuration files from /etc/profile.d +for i in /etc/profile.d/*.sh ; do + if [ -r "$i" ]; then + . $i + fi +done +unset i + + diff --git a/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/usr/bin/iomux b/project/cfg/BoardConfig_IPC/overlay/overlay-luckfox-buildroot-tiny/usr/bin/iomux new file mode 100755 index 0000000000000000000000000000000000000000..f31c9dd86651d116a9416dbd031482b07d10b07b GIT binary patch literal 7588 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