mirror of
https://github.com/gtxaspec/wz_mini_hacks.git
synced 2024-11-09 15:08:21 +00:00
New init system (#216)
* new init system * update new init scripts * update checksum * fix broken audio promps with new init scripts * fix debug/upgrade mode * fix bonding and eth0 hw addr * add checksum * fix bonding setup * add rtsp auth disable * adjust network init scripts path * recreated repo and re added cron scripts (#211) * recreated repo and re added cron scripts * rename cron script and move it to the right folder. * Delete .vs directory remove .vs directory * add deubg message to bonding rc.d script * add crontab variable to wz_mini.conf * fix mp4write * add syslog debug feature * fix syslog init blocking * fix syslog save function * increase imp_helper rerun delay * update init scripts * fix bonding and usb-direct * update checksum * add netmon for bonding * fix supervisor function * update model detection * fix debugging injection on T20 devices Co-authored-by: sideup66 <47700565+sideup66@users.noreply.github.com>
This commit is contained in:
parent
98743f21c9
commit
9ce6bbd92a
30
README.md
30
README.md
@ -300,7 +300,7 @@ RTSP_HI_RES_ENABLE_AUDIO="true"
|
|||||||
RTSP_HI_RES_MAX_BITRATE="2048"
|
RTSP_HI_RES_MAX_BITRATE="2048"
|
||||||
RTSP_HI_RES_TARGET_BITRATE="1024"
|
RTSP_HI_RES_TARGET_BITRATE="1024"
|
||||||
RTSP_HI_RES_ENC_PARAMETER="2"
|
RTSP_HI_RES_ENC_PARAMETER="2"
|
||||||
RTSP_HI_RES_FPS="15"
|
RTSP_HI_RES_FPS=""
|
||||||
|
|
||||||
RTSP_LOW_RES_ENABLED="false"
|
RTSP_LOW_RES_ENABLED="false"
|
||||||
RTSP_LOW_RES_ENABLE_AUDIO="false"
|
RTSP_LOW_RES_ENABLE_AUDIO="false"
|
||||||
@ -308,10 +308,17 @@ RTSP_LOW_RES_MAX_BITRATE=""
|
|||||||
RTSP_LOW_RES_TARGET_BITRATE=""
|
RTSP_LOW_RES_TARGET_BITRATE=""
|
||||||
RTSP_LOW_RES_ENC_PARAMETER=""
|
RTSP_LOW_RES_ENC_PARAMETER=""
|
||||||
RTSP_LOW_RES_FPS=""
|
RTSP_LOW_RES_FPS=""
|
||||||
|
|
||||||
|
RTSP_AUTH_DISABLE="false"
|
||||||
|
|
||||||
```
|
```
|
||||||
the singular stream will be located at ```rtsp://login:password@IP_ADDRESS:8554/unicast```
|
the singular stream will be located at ```rtsp://login:password@IP_ADDRESS:8554/unicast```
|
||||||
multiple streams are located at ```rtsp://login:password@IP_ADDRESS:8554/video1_unicast``` and ```rtsp://login:password@IP_ADDRESS:8554/video2_unicast```
|
multiple streams are located at ```rtsp://login:password@IP_ADDRESS:8554/video1_unicast``` and ```rtsp://login:password@IP_ADDRESS:8554/video2_unicast```
|
||||||
|
|
||||||
|
You may disable authentication by setting `RTSP_AUTH_DISABLE` to true.
|
||||||
|
|
||||||
|
Setting the FPS is not required unless you want to change the default device settings.
|
||||||
|
|
||||||
Note: If you don't set the password, the password will be set to the unique MAC address of the camera, in all uppercase, including the colons... for example:. AA:BB:CC:00:11:22. It's typically printed on the camera. Higher video bitrates may overload your Wi-Fi connection, so a wired connection is recommended.
|
Note: If you don't set the password, the password will be set to the unique MAC address of the camera, in all uppercase, including the colons... for example:. AA:BB:CC:00:11:22. It's typically printed on the camera. Higher video bitrates may overload your Wi-Fi connection, so a wired connection is recommended.
|
||||||
|
|
||||||
Huge credit to @mnakada for his libcallback library: [https://github.com/mnakada/atomcam_tools](https://github.com/mnakada/atomcam_tools)
|
Huge credit to @mnakada for his libcallback library: [https://github.com/mnakada/atomcam_tools](https://github.com/mnakada/atomcam_tools)
|
||||||
@ -321,7 +328,7 @@ Huge credit to @mnakada for his libcallback library: [https://github.com/mnakada
|
|||||||
mp4_write:
|
mp4_write:
|
||||||
|
|
||||||
```
|
```
|
||||||
ENABLE_MP4_WRITE="false"
|
ENABLE_MP4_WRITE="true"
|
||||||
```
|
```
|
||||||
|
|
||||||
Forces the camera to skip writing files to /tmp, and write them directly to your storage medium or network mount, prevents trashing. Normally videos are written to /tmp then moved using `mv`, which can overload camera and or remote network connections. Useful for NFS/CIFS remote video storage.
|
Forces the camera to skip writing files to /tmp, and write them directly to your storage medium or network mount, prevents trashing. Normally videos are written to /tmp then moved using `mv`, which can overload camera and or remote network connections. Useful for NFS/CIFS remote video storage.
|
||||||
@ -434,7 +441,7 @@ NOTE: if you are upgrading a V2 camera from a release older than 06-16-22, you m
|
|||||||
---
|
---
|
||||||
|
|
||||||
```
|
```
|
||||||
NIGHT_DROP_DISABLE="false"
|
NIGHT_DROP_DISABLE="true"
|
||||||
```
|
```
|
||||||
|
|
||||||
Stop the camera from dropping the frame rate during nightvision.
|
Stop the camera from dropping the frame rate during nightvision.
|
||||||
@ -495,8 +502,25 @@ Enables the local webserver, for configuration, car control, or to retreive an i
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
```
|
||||||
|
ENABLE_SYSLOG_SAVE="true"
|
||||||
|
```
|
||||||
|
|
||||||
|
Save the syslog to the `logs/` directory
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
```
|
||||||
|
ENABLE_CRONTAB="true"
|
||||||
|
```
|
||||||
|
|
||||||
|
Enable crontab. Located at `wz_mini/etc/cron/root`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Latest Updates
|
## Latest Updates
|
||||||
|
|
||||||
|
* 08-07-22: Updated init.d scripts. Added syslog save feature. Fixed orientation issue on T31 devices in webcam mode. Added crontab support.
|
||||||
* 07-25-22: Add dnsmasq local dns option in configuration to prevent dns flooding on local networks. Added web server capability for configuration and car control.
|
* 07-25-22: Add dnsmasq local dns option in configuration to prevent dns flooding on local networks. Added web server capability for configuration and car control.
|
||||||
* 07-14-22: Add car compatability with normally unsupported devices.
|
* 07-14-22: Add car compatability with normally unsupported devices.
|
||||||
* 07-13-22: Includes latest build of libcallback, better RTSP video and audio performance: fixed broken audio caused by motor_stop on T20 devices, fixed waitMotion errors. `cmd jpeg` currently still broken on T20 devices, updated scripts to account for changed. Some usage of `cmd` has changes, please see command output. Kernel & modules updated to prepare for H265 support on T31.
|
* 07-13-22: Includes latest build of libcallback, better RTSP video and audio performance: fixed broken audio caused by motor_stop on T20 devices, fixed waitMotion errors. `cmd jpeg` currently still broken on T20 devices, updated scripts to account for changed. Some usage of `cmd` has changes, please see command output. Kernel & modules updated to prepare for H265 support on T31.
|
||||||
|
@ -10,7 +10,7 @@ if [ -d /opt/wz_mini/tmp/log_gather ] ; then
|
|||||||
rm -rf /opt/wz_mini/tmp/log_gather
|
rm -rf /opt/wz_mini/tmp/log_gather
|
||||||
create_dir
|
create_dir
|
||||||
else
|
else
|
||||||
create_dir
|
create_dir
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "copy wz_mini logs"
|
echo "copy wz_mini logs"
|
||||||
|
9
SD_ROOT/wz_mini/etc/cron/root
Normal file
9
SD_ROOT/wz_mini/etc/cron/root
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Example of job definition:
|
||||||
|
# .---------------- minute (0 - 59)
|
||||||
|
# | .------------- hour (0 - 23)
|
||||||
|
# | | .---------- day of month (1 - 31)
|
||||||
|
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
|
||||||
|
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
|
||||||
|
# | | | | |
|
||||||
|
# * * * * * user-name command to be executed
|
||||||
|
#45 05 * * * /sbin/reboot
|
41
SD_ROOT/wz_mini/etc/init.d/S01bind
Normal file
41
SD_ROOT/wz_mini/etc/init.d/S01bind
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Bind mount system files.
|
||||||
|
# Description: Replace specific system files with our customized versions via bind mount
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
echo "Replace stock busybox"
|
||||||
|
mount --bind /opt/wz_mini/bin/busybox /bin/busybox
|
||||||
|
|
||||||
|
echo "Replace stock fstab"
|
||||||
|
mount --bind /opt/wz_mini/etc/fstab /etc/fstab
|
||||||
|
|
||||||
|
echo "Replace stock inittab"
|
||||||
|
mount --bind /opt/wz_mini/etc/inittab /etc/inittab
|
||||||
|
|
||||||
|
echo "Replace /etc/profile for local/ssh shells"
|
||||||
|
mount --bind /opt/wz_mini/etc/profile /etc/profile
|
||||||
|
|
||||||
|
if [ -d /lib/modules ]; then
|
||||||
|
echo "Mount kernel modules in /lib"
|
||||||
|
mount --bind /opt/wz_mini/lib/modules /lib/modules
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Replace system hostname"
|
||||||
|
|
||||||
|
echo $CUSTOM_HOSTNAME > /opt/wz_mini/etc/hostname
|
||||||
|
mount --bind /opt/wz_mini/etc/hostname /etc/hostname
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
30
SD_ROOT/wz_mini/etc/init.d/S02tmpfs
Normal file
30
SD_ROOT/wz_mini/etc/init.d/S02tmpfs
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Mount tmpfs
|
||||||
|
# Description: Mount tmpfs for system and wz_mini
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
./opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
echo "Mount wz_mini tmpfs"
|
||||||
|
mount -t tmpfs /opt/wz_mini/tmp
|
||||||
|
|
||||||
|
echo "Create workspace directory"
|
||||||
|
mkdir /opt/wz_mini/tmp/.storage
|
||||||
|
|
||||||
|
echo "Mounting global tmpfs"
|
||||||
|
mount -t tmpfs /tmp
|
||||||
|
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
23
SD_ROOT/wz_mini/etc/init.d/S03busybox
Normal file
23
SD_ROOT/wz_mini/etc/init.d/S03busybox
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Setup BusyBox
|
||||||
|
# Description: Install BusyBox applets to wz_mini $PATH
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
echo "Install busybox applets"
|
||||||
|
mkdir /opt/wz_mini/tmp/.bin
|
||||||
|
/opt/wz_mini/bin/busybox --install -s /opt/wz_mini/tmp/.bin
|
||||||
|
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
47
SD_ROOT/wz_mini/etc/init.d/S04model
Normal file
47
SD_ROOT/wz_mini/etc/init.d/S04model
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Detect device model
|
||||||
|
# Description: Detect which model device we are, and configure the system accordingly
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
##DETECT CAMERA MODEL & PLATFORM TYPE
|
||||||
|
#V2=WYZEC1-JZ
|
||||||
|
#PANv1=WYZECP1_JEF
|
||||||
|
#PANv2=HL_PAN2
|
||||||
|
#V3=WYZE_CAKP2JFUS
|
||||||
|
#DB3=WYZEDB3
|
||||||
|
#V3C=ATOM_CamV3C
|
||||||
|
|
||||||
|
#mtdblock9 only exists on the T20 platform, indicating V2 or PANv1
|
||||||
|
if [ -b /dev/mtdblock9 ]; then
|
||||||
|
mkdir /opt/wz_mini/tmp/params
|
||||||
|
mount -t jffs2 /dev/mtdblock9 /opt/wz_mini/tmp/params
|
||||||
|
touch /opt/wz_mini/tmp/.$(cat /opt/wz_mini/tmp/params/config/.product_config | grep PRODUCT_MODEL | sed -e 's#.*=\(\)#\1#')
|
||||||
|
touch /opt/wz_mini/tmp/.T20
|
||||||
|
echo "$(cat /opt/wz_mini/tmp/params/config/.product_config | grep PRODUCT_MODEL | sed -e 's#.*=\(\)#\1#') detected"
|
||||||
|
umount /opt/wz_mini/tmp/params
|
||||||
|
rm -rf /opt/wz_mini/tmp/params
|
||||||
|
elif [ -b /dev/mtdblock6 ]; then
|
||||||
|
mkdir /opt/wz_mini/tmp/configs
|
||||||
|
mount -t jffs2 /dev/mtdblock6 /opt/wz_mini/tmp/configs
|
||||||
|
touch /opt/wz_mini/tmp/.$(cat /opt/wz_mini/tmp/configs/.product_config | grep PRODUCT_MODEL | sed -e 's#.*=\(\)#\1#')
|
||||||
|
touch /opt/wz_mini/tmp/.T31
|
||||||
|
echo "$(cat /opt/wz_mini/tmp/configs/.product_config | grep PRODUCT_MODEL | sed -e 's#.*=\(\)#\1#') detected"
|
||||||
|
umount /opt/wz_mini/tmp/configs
|
||||||
|
rm -rf /opt/wz_mini/tmp/configs
|
||||||
|
fi
|
||||||
|
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
28
SD_ROOT/wz_mini/etc/init.d/S05mount
Normal file
28
SD_ROOT/wz_mini/etc/init.d/S05mount
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Mount /system
|
||||||
|
# Description: Mount /system for manipulation, before app_init.sh does
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
||||||
|
echo "mounting /system"
|
||||||
|
mount -t jffs2 /dev/mtdblock4 /system
|
||||||
|
elif [ -f /opt/wz_mini/tmp/.T31 ]; then
|
||||||
|
echo "mounting /system"
|
||||||
|
mount /dev/mtdblock3 /system
|
||||||
|
fi
|
||||||
|
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
30
SD_ROOT/wz_mini/etc/init.d/S06car
Normal file
30
SD_ROOT/wz_mini/etc/init.d/S06car
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Detect device CAR
|
||||||
|
# Description: Detect which CAR device
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
echo "Checking for CAR FW"
|
||||||
|
if [ -f /opt/wz_mini/tmp/.WYZEC1-JZ ]; then
|
||||||
|
if cat /system/bin/app.ver | grep 4.55; then
|
||||||
|
touch /opt/wz_mini/tmp/.CAR
|
||||||
|
echo "CAR FW detected!"
|
||||||
|
else
|
||||||
|
echo "CAR not detected"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
69
SD_ROOT/wz_mini/etc/init.d/S07inject
Normal file
69
SD_ROOT/wz_mini/etc/init.d/S07inject
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Inject commands into app_init.sh
|
||||||
|
# Description: Patch app_init.sh to inject wz_mini's init.d scripts
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
echo "Copy stock rcS"
|
||||||
|
cp /etc/init.d/rcS /opt/wz_mini/tmp/.storage/rcS
|
||||||
|
|
||||||
|
echo "Add verbose debugging to rcS"
|
||||||
|
sed -i '/^\# Set mdev.*/iset -x\n' /opt/wz_mini/tmp/.storage/rcS
|
||||||
|
|
||||||
|
echo "Inject init.d scripts to rcS"
|
||||||
|
sed -i '/^# Run init script.*/i/opt/wz_mini/etc/rc.d/K01network \&\n' /opt/wz_mini/tmp/.storage/rcS
|
||||||
|
sed -i '/^# Run init script.*/i/opt/wz_mini/etc/rc.d/K03rcd\n' /opt/wz_mini/tmp/.storage/rcS
|
||||||
|
|
||||||
|
echo "Modify Global Paths in rcS"
|
||||||
|
sed -i '/sbin:/s/$/:\/opt\/wz_mini\/bin/' /opt/wz_mini/tmp/.storage/rcS
|
||||||
|
sed -i '/system\/\lib/s/$/:\/opt\/wz_mini\/lib/' /opt/wz_mini/tmp/.storage/rcS
|
||||||
|
|
||||||
|
#Custom PATH hooks
|
||||||
|
#sed -i '/^# Run init script.*/i#Hook Library PATH here\nexport LD_LIBRARY_PATH=/tmp/test/lib:$LD_LIBRARY_PATH\n' /opt/wz_mini/tmp/.storage/rcS
|
||||||
|
#sed -i '/^# Run init script.*/i#Hook system PATH here\nexport PATH=/tmp/test/bin:$PATH\n' /opt/wz_mini/tmp/.storage/rcS
|
||||||
|
echo "Copy factory app_init.sh"
|
||||||
|
cp /system/init/app_init.sh /opt/wz_mini/tmp/.storage/app_init.sh
|
||||||
|
|
||||||
|
echo "Replace factory app_init.sh path"
|
||||||
|
sed -i '/\/system\/init\/app_init.sh/,+4d' /opt/wz_mini/tmp/.storage/rcS
|
||||||
|
sed -i '/Run init script.*/a /opt/wz_mini/tmp/.storage/app_init.sh \&\n' /opt/wz_mini/tmp/.storage/rcS
|
||||||
|
sed -i '/\/system\/init\/app_init.sh/,+2d' /opt/wz_mini/tmp/.storage/rcS
|
||||||
|
|
||||||
|
if [[ "$DEBUG_ENABLED" == "true" ]]; then
|
||||||
|
sed -i '/app_init.sh/,+4d' /opt/wz_mini/tmp/.storage/rcS
|
||||||
|
sed -i '/^# Run init/i/bin/sh /etc/profile' /opt/wz_mini/tmp/.storage/rcS
|
||||||
|
touch /tmp/dbgflag
|
||||||
|
|
||||||
|
elif [[ "$WEB_CAM_ENABLE" == "true" ]]; then
|
||||||
|
sed -i '/app_init.sh/,+4d' /opt/wz_mini/tmp/.storage/rcS
|
||||||
|
sed -i '/^# Run init/i/opt/wz_mini/etc/rc.d/K02webcam &' /opt/wz_mini/tmp/.storage/rcS
|
||||||
|
touch /tmp/dbgflag
|
||||||
|
|
||||||
|
elif [[ -d /opt/Upgrade ]]; then
|
||||||
|
sed -i '/app_init.sh/,+4d' /opt/wz_mini/tmp/.storage/rcS
|
||||||
|
sed -i '/^# Run init/i/bin/sh /etc/profile' /opt/wz_mini/tmp/.storage/rcS
|
||||||
|
sed -i '/^# Mount configs.*/i/opt/wz_mini/bin/upgrade-run.sh &\n' /opt/wz_mini/tmp/.storage/rcS
|
||||||
|
touch /tmp/dbgflag
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Enable libcallback"
|
||||||
|
if [[ "$LIBCALLBACK_ENABLE" == "true" ]] || ([[ "$RTSP_HI_RES_ENABLED" == "true" ]] || [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]); then
|
||||||
|
echo "set path for iCamera"
|
||||||
|
sed -i 's/\/system\/bin\/iCamera/\/opt\/wz_mini\/usr\/bin\/iCamera/g' /opt/wz_mini/tmp/.storage/app_init.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
30
SD_ROOT/wz_mini/etc/init.d/S08passwd
Normal file
30
SD_ROOT/wz_mini/etc/init.d/S08passwd
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Change system password
|
||||||
|
# Description: Replace system password with wz_mini's version
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
echo "Replace stock password"
|
||||||
|
cp /opt/wz_mini/etc/shadow /opt/wz_mini/tmp/.storage/shadow
|
||||||
|
|
||||||
|
if [[ "$DEBUG_PASSWORD" == "true" ]]; then
|
||||||
|
sed -i 's/:[^:]*/:/' /opt/wz_mini/tmp/.storage/shadow
|
||||||
|
echo "Remove stock password"
|
||||||
|
fi
|
||||||
|
|
||||||
|
mount --bind /opt/wz_mini/tmp/.storage/shadow /etc/shadow
|
||||||
|
chmod 400 /etc/shadow
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
40
SD_ROOT/wz_mini/etc/init.d/S09firstboot
Normal file
40
SD_ROOT/wz_mini/etc/init.d/S09firstboot
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Check for first boot of wz_mini
|
||||||
|
# Description: Check to see if this is the first time wz_mini is booting, if it is, play an audio prompt
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
. /opt/wz_mini/etc/rc.common
|
||||||
|
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if [ -e /opt/wz_mini/etc/.first_boot ]; then
|
||||||
|
echo "First boot already completed"
|
||||||
|
else
|
||||||
|
echo "First boot, initializing"
|
||||||
|
touch /opt/wz_mini/etc/.first_boot
|
||||||
|
|
||||||
|
#May need different gpio for PANv1
|
||||||
|
#We don't rmmod this module, as it is marked [permanent] by the kernel on T20
|
||||||
|
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
||||||
|
insmod /opt/wz_mini/lib/modules/3.10.14/extra/audio.ko sign_mode=0
|
||||||
|
LD_LIBRARY_PATH='/opt/wz_mini/lib' /opt/wz_mini/bin/audioplay_t20 /opt/wz_mini/usr/share/audio/init_v2.wav $AUDIO_PROMPT_VOLUME
|
||||||
|
else
|
||||||
|
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/audio.ko spk_gpio=$GPIO alc_mode=0 mic_gain=0
|
||||||
|
/opt/wz_mini/bin/audioplay_t31 /opt/wz_mini/usr/share/audio/init.wav $AUDIO_PROMPT_VOLUME
|
||||||
|
rmmod audio
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
160
SD_ROOT/wz_mini/etc/init.d/S10kmod
Normal file
160
SD_ROOT/wz_mini/etc/init.d/S10kmod
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Load kernel modules
|
||||||
|
# Description: Load kernel modules depending on model and configuration
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
. /opt/wz_mini/etc/rc.common
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if [[ "$ENABLE_RTL8189FS_DRIVER" == "true" ]] || [[ "$ENABLE_RTL8189FS_DRIVER" == "" ]]; then
|
||||||
|
echo "Enable 8189fs"
|
||||||
|
if [ -f /opt/wz_mini/tmp/.WYZEC1-JZ ]; then
|
||||||
|
sed -i 's/\/driver\/rtl8189ftv.ko/\/opt\/wz_mini\/lib\/modules\/3.10.14\/extra\/8189fs.ko rtw_power_mgnt=0 rtw_enusbss=0 rtw_drv_log_level=0/g' /opt/wz_mini/tmp/.storage/app_init.sh
|
||||||
|
elif [ -f /opt/wz_mini/tmp/.WYZECP1_JEF ]; then
|
||||||
|
sed -i 's/insmod \/driver\/8189es.ko/insmod \/opt\/wz_mini\/lib\/modules\/3.10.14\/extra\/8189es.ko rtw_power_mgnt=0 rtw_enusbss=0 rtw_drv_log_level=0/g' /opt/wz_mini/tmp/.storage/app_init.sh
|
||||||
|
elif [ -f /opt/wz_mini/tmp/.WYZE_CAKP2JFUS ]; then
|
||||||
|
sed -i 's/\/system\/driver\/rtl8189ftv.ko/\/opt\/wz_mini\/lib\/modules\/3.10.14\_\_isvp_swan_1.0\_\_\/extra\/8189fs.ko rtw_power_mgnt=0 rtw_enusbss=0 rtw_drv_log_level=0/g' /opt/wz_mini/tmp/.storage/app_init.sh
|
||||||
|
elif [ -f /opt/wz_mini/tmp/.ATOM_CamV3C ]; then
|
||||||
|
sed -i 's/\/system\/driver\/rtl8189ftv.ko/\/opt\/wz_mini\/lib\/modules\/3.10.14\_\_isvp_swan_1.0\_\_\/extra\/8189fs.ko rtw_power_mgnt=0 rtw_enusbss=0 rtw_drv_log_level=0/g' /opt/wz_mini/tmp/.storage/app_init.sh
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$ENABLE_ATBM603X_DRIVER" == "true" ]] || [[ "$ENABLE_ATBM603X_DRIVER" == "" ]]; then
|
||||||
|
echo "Enable atbm603x_wifi_sdio"
|
||||||
|
if [ -f /opt/wz_mini/tmp/.ATOM_CamV3C ]; then
|
||||||
|
sed -i 's/\/thirdlib\/atbm603x_wifi_sdio.ko/\/opt\/wz_mini\/lib\/modules\/3.10.14\_\_isvp_swan_1.0\_\_\/extra\/atbm603x_wifi_sdio.ko atbm_printk_mask=0/g' /opt/wz_mini/tmp/.storage/app_init.sh
|
||||||
|
elif [ -f /opt/wz_mini/tmp/.T31 ] && ! [ -f /opt/wz_mini/tmp/.ATOM_CamV3C ]; then
|
||||||
|
sed -i 's/\/system\/driver\/atbm603x_wifi_sdio.ko/\/opt\/wz_mini\/lib\/modules\/3.10.14\_\_isvp_swan_1.0\_\_\/extra\/atbm603x_wifi_sdio.ko atbm_printk_mask=0/g' /opt/wz_mini/tmp/.storage/app_init.sh
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /opt/wz_mini/tmp/.CAR ] || [[ "$ENABLE_CAR_DRIVER" == "true" ]]; then
|
||||||
|
echo "Enable cp210x serial driver for car"
|
||||||
|
modprobe cp210x
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ([[ "$RTSP_HI_RES_ENABLED" == "true" ]] || [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]) && ! [[ -e /tmp/dbgflag ]]; then
|
||||||
|
if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]] && [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then
|
||||||
|
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
||||||
|
echo "Load video loopback driver at video6 video7"
|
||||||
|
insmod /opt/wz_mini/lib/modules/3.10.14/extra/v4l2loopback_V2.ko video_nr=6,7
|
||||||
|
else
|
||||||
|
echo "Load video loopback driver at video1 video2"
|
||||||
|
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/v4l2loopback.ko video_nr=1,2
|
||||||
|
fi
|
||||||
|
elif [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]; then
|
||||||
|
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
||||||
|
echo "Load video loopback driver at video7"
|
||||||
|
insmod /opt/wz_mini/lib/modules/3.10.14/extra/v4l2loopback_V2.ko video_nr=7
|
||||||
|
else
|
||||||
|
echo "Load video loopback driver at video2"
|
||||||
|
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/v4l2loopback.ko video_nr=2
|
||||||
|
fi
|
||||||
|
elif [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then
|
||||||
|
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
||||||
|
echo "Load video loopback driver at video6"
|
||||||
|
insmod /opt/wz_mini/lib/modules/3.10.14/extra/v4l2loopback_V2.ko video_nr=6
|
||||||
|
else
|
||||||
|
echo "Load video loopback driver at video1"
|
||||||
|
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/v4l2loopback.ko video_nr=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "$ENABLE_NFSv4" == "true" ]]; then
|
||||||
|
insmod $KMOD_PATH/kernel/lib/oid_registry.ko
|
||||||
|
insmod $KMOD_PATH/kernel/net/dns_resolver/dns_resolver.ko
|
||||||
|
insmod $KMOD_PATH/kernel/fs/nfs/nfsv4.ko
|
||||||
|
insmod $KMOD_PATH/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko
|
||||||
|
echo "NFSv4 enabled"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$ENABLE_IPTABLES" == "true" ]]; then
|
||||||
|
|
||||||
|
insmod $KMOD_PATH/kernel/net/netfilter/x_tables.ko
|
||||||
|
insmod $KMOD_PATH/kernel/net/ipv4/netfilter/ip_tables.ko
|
||||||
|
insmod $KMOD_PATH/kernel/net/ipv4/netfilter/ipt_REJECT.ko
|
||||||
|
insmod $KMOD_PATH/kernel/net/ipv4/netfilter/iptable_filter.ko
|
||||||
|
insmod $KMOD_PATH/kernel/net/ipv4/netfilter/iptable_mangle.ko
|
||||||
|
echo "iptables IPv4 enabled"
|
||||||
|
|
||||||
|
if [[ "$ENABLE_IPV6" == "true" ]]; then
|
||||||
|
insmod $KMOD_PATH/kernel/net/ipv6/netfilter/ip6_tables.ko
|
||||||
|
insmod $KMOD_PATH/kernel/net/ipv6/netfilter/ip6t_REJECT.ko
|
||||||
|
insmod $KMOD_PATH/kernel/net/ipv6/netfilter/ip6table_filter.ko
|
||||||
|
insmod $KMOD_PATH/kernel/net/ipv6/netfilter/ip6table_mangle.ko
|
||||||
|
echo "iptables IPv6 enabled"
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$ENABLE_WIREGUARD" == "true" ]]; then
|
||||||
|
insmod $KMOD_PATH/kernel/net/ipv4/tunnel4.ko
|
||||||
|
insmod $KMOD_PATH/kernel/net/ipv4/ip_tunnel.ko
|
||||||
|
insmod $KMOD_PATH/kernel/net/wireguard/wireguard.ko
|
||||||
|
echo "Wireguard enabled"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$ENABLE_CIFS" == "true" ]]; then
|
||||||
|
insmod $KMOD_PATH/kernel/fs/cifs/cifs.ko
|
||||||
|
echo "CIFS enabled"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$ENABLE_USB_STORAGE" == "true" ]]; then
|
||||||
|
insmod $KMOD_PATH/kernel/drivers/scsi/scsi_mod.ko
|
||||||
|
insmod $KMOD_PATH/kernel/drivers/scsi/sd_mod.ko
|
||||||
|
insmod $KMOD_PATH/kernel/drivers/usb/storage/usb-storage.ko
|
||||||
|
echo "usb_storage enabled"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$ENABLE_EXT4" == "true" ]]; then
|
||||||
|
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
||||||
|
insmod $KMOD_PATH/kernel/lib/crc16.ko
|
||||||
|
fi
|
||||||
|
|
||||||
|
insmod $KMOD_PATH/kernel/fs/jbd2/jbd2.ko
|
||||||
|
insmod $KMOD_PATH/kernel/fs/mbcache.ko
|
||||||
|
insmod $KMOD_PATH/kernel/fs/ext4/ext4.ko
|
||||||
|
echo "ext4 support enabled"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$BONDING_ENABLED" == "true" ]]; then
|
||||||
|
if [[ "$BONDING_LINK_MONITORING_FREQ_MS" == "" ]]; then
|
||||||
|
BONDING_LINK_MONITORING_FREQ_MS="100"
|
||||||
|
fi
|
||||||
|
if [[ "$BONDING_DOWN_DELAY_MS" == "" ]]; then
|
||||||
|
BONDING_DOWN_DELAY_MS="5000"
|
||||||
|
fi
|
||||||
|
if [[ "$BONDING_UP_DELAY_MS" == "" ]]; then
|
||||||
|
BONDING_UP_DELAY_MS="5000"
|
||||||
|
fi
|
||||||
|
if [[ "$BONDING_PRIMARY_INTERFACE" == "" ]]; then
|
||||||
|
BONDING_PRIMARY_INTERFACE="eth0"
|
||||||
|
fi
|
||||||
|
if [[ "$BONDING_SECONDARY_INTERFACE" == "" ]]; then
|
||||||
|
BONDING_SECONDARY_INTERFACE="wlan0"
|
||||||
|
fi
|
||||||
|
if [[ "$BONDING_FAIL_OVER_MAC" == "" ]]; then
|
||||||
|
BONDING_FAIL_OVER_MAC="0"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Insert the bonding driver into the kernel"
|
||||||
|
insmod $KMOD_PATH/kernel/drivers/net/bonding/bonding.ko mode=active-backup miimon="$BONDING_LINK_MONITORING_FREQ_MS" downdelay="$BONDING_DOWN_DELAY_MS" updelay="$BONDING_UP_DELAY_MS" primary="$BONDING_PRIMARY_INTERFACE" fail_over_mac="$BONDING_FAIL_OVER_MAC"
|
||||||
|
|
||||||
|
echo "Network bonding enabled"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
52
SD_ROOT/wz_mini/etc/init.d/S11configbackup
Normal file
52
SD_ROOT/wz_mini/etc/init.d/S11configbackup
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Backup critical device files
|
||||||
|
# Description: Backup /configs and /params directory, these files are unique to the device, and if lost the camera is unusable.
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if [ -d /opt/.wz_backup ]; then
|
||||||
|
echo "Factory config backup directory missing"
|
||||||
|
else
|
||||||
|
echo "Creating factory config backup directory"
|
||||||
|
mkdir /opt/.wz_backup
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /opt/wz_mini/tmp/.T31 ]; then
|
||||||
|
echo "T31 platform backup"
|
||||||
|
if [ -d /opt/.wz_backup/configs ]; then
|
||||||
|
echo "Factory configs backup directory present, not backing up again"
|
||||||
|
else
|
||||||
|
echo "Backup /configs"
|
||||||
|
cp -R /configs/ /opt/.wz_backup/
|
||||||
|
fi
|
||||||
|
elif [ -f /opt/wz_mini/tmp/.T20 ]; then
|
||||||
|
echo "T20 platform backup"
|
||||||
|
if [ -d /opt/.wz_backup/configs ]; then
|
||||||
|
echo "Factory configs backup directory present, not backing up again"
|
||||||
|
else
|
||||||
|
echo "Backup /configs"
|
||||||
|
cp -R /configs/ /opt/.wz_backup/
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d /opt/.wz_backup/params ]; then
|
||||||
|
echo "Factory params backup directory present, not backing up again"
|
||||||
|
else
|
||||||
|
echo "Backup /params"
|
||||||
|
cp -R /params/ /opt/.wz_backup/
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
23
SD_ROOT/wz_mini/etc/init.d/S12ssh
Normal file
23
SD_ROOT/wz_mini/etc/init.d/S12ssh
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Start ssh daemon
|
||||||
|
# Description: Run the dropbear ssh daemon
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
echo "Running dropbear ssh server"
|
||||||
|
/opt/wz_mini/bin/dropbear -R -s -g
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
27
SD_ROOT/wz_mini/etc/init.d/S14terminfo
Normal file
27
SD_ROOT/wz_mini/etc/init.d/S14terminfo
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Check for terminfo directory
|
||||||
|
# Description: Provide the proper terminfo files for nano and shells
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if [ -d /opt/wz_mini/usr/share/terminfo ]; then
|
||||||
|
echo "Terminfo already present"
|
||||||
|
else
|
||||||
|
echo "Terminfo not present, extract"
|
||||||
|
tar xf /opt/wz_mini/usr/share/terminfo.tar -C /opt/wz_mini/usr/share/
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
26
SD_ROOT/wz_mini/etc/init.d/S16factorycheck
Normal file
26
SD_ROOT/wz_mini/etc/init.d/S16factorycheck
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Disable factorycheck
|
||||||
|
# Description: On T31 devices, we must disable factory check to prevent it from unmounting our binds.
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if [ -f /opt/wz_mini/tmp/.T31 ]; then
|
||||||
|
mount --bind /opt/wz_mini/bin/factorycheck /system/bin/factorycheck
|
||||||
|
touch /tmp/usrflag
|
||||||
|
echo "Replace factorycheck with dummy, to prevent bind unmount"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
205
SD_ROOT/wz_mini/etc/init.d/wz_init.sh
Executable file → Normal file
205
SD_ROOT/wz_mini/etc/init.d/wz_init.sh
Executable file → Normal file
@ -1,5 +1,10 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
#init.d/ = early boot, before inittab is run
|
||||||
|
#rc.d/ = runs after /linuxrc, but before app_init.sh
|
||||||
|
#network.d/ runs after app_init.sh, and after wlan hw is ready
|
||||||
|
#rc.local.d/ = runs after app_init.sh and network has acquired an address
|
||||||
|
|
||||||
###This file is run by switch_root, from the initramfs in the kernel.
|
###This file is run by switch_root, from the initramfs in the kernel.
|
||||||
LOG_NAME=/opt/wz_mini/log/wz_init
|
LOG_NAME=/opt/wz_mini/log/wz_init
|
||||||
if [[ -e $LOG_NAME.log || -L $LOG_NAME.log ]] ; then
|
if [[ -e $LOG_NAME.log || -L $LOG_NAME.log ]] ; then
|
||||||
@ -13,10 +18,6 @@ fi
|
|||||||
touch -- "$LOG_NAME".log
|
touch -- "$LOG_NAME".log
|
||||||
exec 1> $LOG_NAME.log 2>&1
|
exec 1> $LOG_NAME.log 2>&1
|
||||||
|
|
||||||
export WZMINI_CFG=/opt/wz_mini/wz_mini.conf
|
|
||||||
|
|
||||||
[ -f $WZMINI_CFG ] && source $WZMINI_CFG
|
|
||||||
|
|
||||||
echo "welcome to wz_init.sh"
|
echo "welcome to wz_init.sh"
|
||||||
echo "PID $$"
|
echo "PID $$"
|
||||||
|
|
||||||
@ -31,182 +32,28 @@ echo '
|
|||||||
|______|
|
|______|
|
||||||
'
|
'
|
||||||
|
|
||||||
set -x
|
# Start all init scripts in /etc/init.d
|
||||||
|
# executing them in numerical order.
|
||||||
|
#
|
||||||
|
for i in /opt/wz_mini/etc/init.d/S??* ;do
|
||||||
|
|
||||||
echo "replace stock busybox"
|
# Ignore dangling symlinks (if any).
|
||||||
mount --bind /opt/wz_mini/bin/busybox /bin/busybox
|
[ ! -f "$i" ] && continue
|
||||||
|
|
||||||
echo "replace stock fstab"
|
case "$i" in
|
||||||
mount --bind /opt/wz_mini/etc/fstab /etc/fstab
|
*.sh)
|
||||||
|
# Source shell script for speed.
|
||||||
echo "mount wz_mini tmpfs"
|
(
|
||||||
mount -t tmpfs /opt/wz_mini/tmp
|
trap - INT QUIT TSTP
|
||||||
|
set start
|
||||||
echo "install busybox applets"
|
. $i
|
||||||
mkdir /opt/wz_mini/tmp/.bin
|
)
|
||||||
/opt/wz_mini/bin/busybox --install -s /opt/wz_mini/tmp/.bin
|
;;
|
||||||
|
*)
|
||||||
##DETECT CAMERA MODEL & PLATFORM TYPE
|
# No sh extension, so fork subprocess.
|
||||||
#V2=WYZEC1-JZ
|
$i start
|
||||||
#PANv1=WYZECP1_JEF
|
;;
|
||||||
#PANv2=HL_PAN2
|
esac
|
||||||
#V3=WYZE_CAKP2JFUS
|
done
|
||||||
#DB3=WYZEDB3
|
|
||||||
#V3C=ATOM_CamV3C
|
|
||||||
|
|
||||||
#mtdblock9 only exists on the T20 platform, indicating V2 or PANv1
|
|
||||||
if [ -b /dev/mtdblock9 ]; then
|
|
||||||
mkdir /opt/wz_mini/tmp/params
|
|
||||||
mount -t jffs2 /dev/mtdblock9 /opt/wz_mini/tmp/params
|
|
||||||
touch /opt/wz_mini/tmp/.$(cat /opt/wz_mini/tmp/params/config/.product_config | grep PRODUCT_MODEL | sed -e 's#.*=\(\)#\1#')
|
|
||||||
touch /opt/wz_mini/tmp/.T20
|
|
||||||
umount /opt/wz_mini/tmp/params
|
|
||||||
rm -rf /opt/wz_mini/tmp/params
|
|
||||||
elif [ -b /dev/mtdblock6 ]; then
|
|
||||||
mkdir /opt/wz_mini/tmp/configs
|
|
||||||
mount -t jffs2 /dev/mtdblock6 /opt/wz_mini/tmp/configs
|
|
||||||
touch /opt/wz_mini/tmp/.$(cat /opt/wz_mini/tmp/configs/.product_config | grep PRODUCT_MODEL | sed -e 's#.*=\(\)#\1#')
|
|
||||||
touch /opt/wz_mini/tmp/.T31
|
|
||||||
umount /opt/wz_mini/tmp/configs
|
|
||||||
rm -rf /opt/wz_mini/tmp/configs
|
|
||||||
fi
|
|
||||||
|
|
||||||
#Set the correct GPIO for the audio driver (T31 only)
|
|
||||||
if [ -f /opt/wz_mini/tmp/.HL_PAN2 ]; then
|
|
||||||
GPIO=7
|
|
||||||
elif [ -f /opt/wz_mini/tmp/.WYZE_CAKP2JFUS ]; then
|
|
||||||
GPIO=63
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e /opt/wz_mini/etc/.first_boot ]; then
|
|
||||||
echo "first boot already completed"
|
|
||||||
else
|
|
||||||
echo "first boot, initializing"
|
|
||||||
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
|
||||||
#May need different gpio for PANv1
|
|
||||||
#We don't rmmod this module, as it is marked [permanent] by the kernel on T20
|
|
||||||
insmod /opt/wz_mini/lib/modules/3.10.14/extra/audio.ko sign_mode=0
|
|
||||||
LD_LIBRARY_PATH='/opt/wz_mini/lib' /opt/wz_mini/bin/audioplay_t20 /opt/wz_mini/usr/share/audio/init_v2.wav $AUDIO_PROMPT_VOLUME
|
|
||||||
else
|
|
||||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/audio.ko spk_gpio=$GPIO alc_mode=0 mic_gain=0
|
|
||||||
/opt/wz_mini/bin/audioplay_t31 /opt/wz_mini/usr/share/audio/init.wav $AUDIO_PROMPT_VOLUME
|
|
||||||
rmmod audio
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if [ -f /opt/wz_mini/etc/.first_boot ]; then
|
|
||||||
echo "Not first_boot"
|
|
||||||
else
|
|
||||||
echo "Set first_boot"
|
|
||||||
touch /opt/wz_mini/etc/.first_boot
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "replace stock inittab"
|
|
||||||
mount --bind /opt/wz_mini/etc/inittab /etc/inittab
|
|
||||||
|
|
||||||
echo "bind /etc/profile for local/ssh shells"
|
|
||||||
mount --bind /opt/wz_mini/etc/profile /etc/profile
|
|
||||||
|
|
||||||
echo "mounting global tmpfs"
|
|
||||||
mount -t tmpfs /tmp
|
|
||||||
|
|
||||||
echo "mount system to replace factorycheck with dummy, to prevent bind unmount"
|
|
||||||
if [ -f /opt/wz_mini/tmp/.T31 ]; then
|
|
||||||
mount /dev/mtdblock3 /system
|
|
||||||
mount --bind /opt/wz_mini/bin/factorycheck /system/bin/factorycheck
|
|
||||||
fi
|
|
||||||
|
|
||||||
touch /tmp/usrflag
|
|
||||||
|
|
||||||
echo "create workspace directory"
|
|
||||||
mkdir /opt/wz_mini/tmp/.storage
|
|
||||||
|
|
||||||
echo "copy stock rcS"
|
|
||||||
cp /etc/init.d/rcS /opt/wz_mini/tmp/.storage/rcS
|
|
||||||
|
|
||||||
echo "add wz_post inject to stock rcS"
|
|
||||||
sed -i '/^".*/aset -x' /opt/wz_mini/tmp/.storage/rcS
|
|
||||||
sed -i '/^# Run init script.*/i/opt/wz_mini/etc/init.d/wz_post.sh\n' /opt/wz_mini/tmp/.storage/rcS
|
|
||||||
|
|
||||||
sed -i '/sbin:/s/$/:\/opt\/wz_mini\/bin/' /opt/wz_mini/tmp/.storage/rcS
|
|
||||||
sed -i '/system\/\lib/s/$/:\/opt\/wz_mini\/lib/' /opt/wz_mini/tmp/.storage/rcS
|
|
||||||
|
|
||||||
#Custom PATH hooks
|
|
||||||
#sed -i '/^# Run init script.*/i#Hook Library PATH here\nexport LD_LIBRARY_PATH=/tmp/test/lib:$LD_LIBRARY_PATH\n' /opt/wz_mini/tmp/.storage/rcS
|
|
||||||
#sed -i '/^# Run init script.*/i#Hook system PATH here\nexport PATH=/tmp/test/bin:$PATH\n' /opt/wz_mini/tmp/.storage/rcS
|
|
||||||
|
|
||||||
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
|
||||||
mount -t jffs2 /dev/mtdblock4 /system
|
|
||||||
fi
|
|
||||||
|
|
||||||
#Check for Car FW
|
|
||||||
if [ -f /opt/wz_mini/tmp/.WYZEC1-JZ ]; then
|
|
||||||
if cat /system/bin/app.ver | grep 4.55; then
|
|
||||||
touch /opt/wz_mini/tmp/.CAR
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Copy factory app_init.sh"
|
|
||||||
cp /system/init/app_init.sh /opt/wz_mini/tmp/.storage/app_init.sh
|
|
||||||
|
|
||||||
echo "Replace factory app_init.sh path"
|
|
||||||
sed -i '/\/system\/init\/app_init.sh/,+4d' /opt/wz_mini/tmp/.storage/rcS
|
|
||||||
sed -i '/Run init script.*/a /opt/wz_mini/tmp/.storage/app_init.sh\n' /opt/wz_mini/tmp/.storage/rcS
|
|
||||||
sed -i '/\/system\/init\/app_init.sh/,+2d' /opt/wz_mini/tmp/.storage/rcS
|
|
||||||
|
|
||||||
echo "replace stock password"
|
|
||||||
cp /opt/wz_mini/etc/shadow /opt/wz_mini/tmp/.storage/shadow
|
|
||||||
|
|
||||||
if [[ "$DEBUG_PASSWORD" == "true" ]]; then
|
|
||||||
sed -i 's/:[^:]*/:/' /opt/wz_mini/tmp/.storage/shadow
|
|
||||||
fi
|
|
||||||
|
|
||||||
mount --bind /opt/wz_mini/tmp/.storage/shadow /etc/shadow
|
|
||||||
chmod 400 /etc/shadow
|
|
||||||
|
|
||||||
if [[ -e /opt/wz_mini/swap.gz ]]; then
|
|
||||||
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
|
||||||
LD_LIBRARY_PATH='/opt/wz_mini/lib' /opt/wz_mini/bin/audioplay_t20 /opt/wz_mini/usr/share/audio/swap_v2.wav $AUDIO_PROMPT_VOLUME
|
|
||||||
else
|
|
||||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/audio.ko spk_gpio=$GPIO alc_mode=0 mic_gain=0
|
|
||||||
/opt/wz_mini/bin/audioplay_t31 /opt/wz_mini/usr/share/audio/swap.wav $AUDIO_PROMPT_VOLUME
|
|
||||||
rmmod audio
|
|
||||||
fi
|
|
||||||
echo "swap archive present, extracting"
|
|
||||||
gzip -d /opt/wz_mini/swap.gz
|
|
||||||
mkswap /opt/wz_mini/swap
|
|
||||||
sync;echo 3 > /proc/sys/vm/drop_caches
|
|
||||||
else
|
|
||||||
echo "swap archive missing, not extracting"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d /opt/wz_mini/usr/share/terminfo ]; then
|
|
||||||
echo "terminfo already present"
|
|
||||||
else
|
|
||||||
echo "terminfo not present, extract"
|
|
||||||
tar xf /opt/wz_mini/usr/share/terminfo.tar -C /opt/wz_mini/usr/share/
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Run dropbear ssh server"
|
|
||||||
/opt/wz_mini/bin/dropbear -R -s -g
|
|
||||||
|
|
||||||
if [[ "$DEBUG_ENABLED" == "true" ]]; then
|
|
||||||
sed -i '/app_init.sh/,+4d' /opt/wz_mini/tmp/.storage/rcS
|
|
||||||
sed -i '/^# Run init/i/bin/sh /etc/profile' /opt/wz_mini/tmp/.storage/rcS
|
|
||||||
touch /tmp/dbgflag
|
|
||||||
|
|
||||||
elif [[ "$WEB_CAM_ENABLE" == "true" ]]; then
|
|
||||||
sed -i '/app_init.sh/,+4d' /opt/wz_mini/tmp/.storage/rcS
|
|
||||||
sed -i '/^# Run init/i/opt/wz_mini/etc/init.d/wz_cam.sh &' /opt/wz_mini/tmp/.storage/rcS
|
|
||||||
touch /tmp/dbgflag
|
|
||||||
|
|
||||||
elif [[ -d /opt/Upgrade ]]; then
|
|
||||||
sed -i '/app_init.sh/,+4d' /opt/wz_mini/tmp/.storage/rcS
|
|
||||||
sed -i '/^# Run init/i/bin/sh /etc/profile' /opt/wz_mini/tmp/.storage/rcS
|
|
||||||
sed -i '/^# Mount configs.*/i/opt/wz_mini/bin/upgrade-run.sh &\n' /opt/wz_mini/tmp/.storage/rcS
|
|
||||||
touch /tmp/dbgflag
|
|
||||||
fi
|
|
||||||
|
|
||||||
/linuxrc
|
/linuxrc
|
||||||
|
@ -1,153 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
### This file is called by /etc/init.d/rcS, and is run before app_init.sh
|
|
||||||
|
|
||||||
LOG_NAME=/opt/wz_mini/log/wz_post
|
|
||||||
if [[ -e $LOG_NAME.log || -L $LOG_NAME.log ]] ; then
|
|
||||||
i=0
|
|
||||||
while [[ -e $LOG_NAME.log.$i || -L $LOG_NAME.log.$i ]] ; do
|
|
||||||
let i++
|
|
||||||
done
|
|
||||||
mv $LOG_NAME.log $LOG_NAME.log.$i
|
|
||||||
LOG_NAME=$LOG_NAME
|
|
||||||
fi
|
|
||||||
touch -- "$LOG_NAME".log
|
|
||||||
exec 1> $LOG_NAME.log 2>&1
|
|
||||||
|
|
||||||
set -x
|
|
||||||
|
|
||||||
if [ -e /tmp/dbgflag ];then
|
|
||||||
echo "debug mode, disabled"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
export WZMINI_CFG=/opt/wz_mini/wz_mini.conf
|
|
||||||
|
|
||||||
[ -f $WZMINI_CFG ] && source $WZMINI_CFG
|
|
||||||
|
|
||||||
echo "welcome to wz_post.sh"
|
|
||||||
echo "PID $$"
|
|
||||||
|
|
||||||
#CAMERA CONFIGURATION FILES BACKUP
|
|
||||||
if [ -d /opt/.wz_backup ]; then
|
|
||||||
echo "backup directory missing"
|
|
||||||
else
|
|
||||||
echo "creating backup directory"
|
|
||||||
mkdir /opt/.wz_backup
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f /opt/wz_mini/tmp/.T31 ]; then
|
|
||||||
echo "T31 platform backup"
|
|
||||||
if [ -d /opt/.wz_backup/configs ]; then
|
|
||||||
echo "configs backup directory present, not backing up again"
|
|
||||||
else
|
|
||||||
echo "backup /configs"
|
|
||||||
cp -R /configs/ /opt/.wz_backup/
|
|
||||||
fi
|
|
||||||
elif [ -f /opt/wz_mini/tmp/.T20 ]; then
|
|
||||||
echo "T20 platform backup"
|
|
||||||
if [ -d /opt/.wz_backup/configs ]; then
|
|
||||||
echo "configs backup directory present, not backing up again"
|
|
||||||
else
|
|
||||||
echo "backup /configs"
|
|
||||||
cp -R /configs/ /opt/.wz_backup/
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d /opt/.wz_backup/params ]; then
|
|
||||||
echo "configs backup directory present, not backing up again"
|
|
||||||
else
|
|
||||||
echo "backup /params"
|
|
||||||
cp -R /params/ /opt/.wz_backup/
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
#SWAP FILE, REQUIRED FOR OPERATION!
|
|
||||||
if [[ "$ENABLE_SWAP" == "true" ]] && [[ -e /opt/wz_mini/swap ]]; then
|
|
||||||
echo "swap file found, enable"
|
|
||||||
swapon /opt/wz_mini/swap
|
|
||||||
else
|
|
||||||
echo "swap file missing"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d /lib/modules ]; then
|
|
||||||
echo "mount kernel modules"
|
|
||||||
mount --bind /opt/wz_mini/lib/modules /lib/modules
|
|
||||||
fi
|
|
||||||
|
|
||||||
## REPLACE STOCK MODULES
|
|
||||||
if [[ "$ENABLE_RTL8189FS_DRIVER" == "true" ]] || [[ "$ENABLE_RTL8189FS_DRIVER" == "" ]]; then
|
|
||||||
echo "Enable 8189fs"
|
|
||||||
if [ -f /opt/wz_mini/tmp/.WYZEC1-JZ ]; then
|
|
||||||
sed -i 's/\/driver\/rtl8189ftv.ko/\/opt\/wz_mini\/lib\/modules\/3.10.14\/extra\/8189fs.ko rtw_power_mgnt=0 rtw_enusbss=0 rtw_drv_log_level=0/g' /opt/wz_mini/tmp/.storage/app_init.sh
|
|
||||||
elif [ -f /opt/wz_mini/tmp/.WYZECP1_JEF ]; then
|
|
||||||
sed -i 's/insmod \/driver\/8189es.ko/insmod \/opt\/wz_mini\/lib\/modules\/3.10.14\/extra\/8189es.ko rtw_power_mgnt=0 rtw_enusbss=0 rtw_drv_log_level=0/g' /opt/wz_mini/tmp/.storage/app_init.sh
|
|
||||||
elif [ -f /opt/wz_mini/tmp/.WYZE_CAKP2JFUS ]; then
|
|
||||||
sed -i 's/\/system\/driver\/rtl8189ftv.ko/\/opt\/wz_mini\/lib\/modules\/3.10.14\_\_isvp_swan_1.0\_\_\/extra\/8189fs.ko rtw_power_mgnt=0 rtw_enusbss=0 rtw_drv_log_level=0/g' /opt/wz_mini/tmp/.storage/app_init.sh
|
|
||||||
elif [ -f /opt/wz_mini/tmp/.ATOM_CamV3C ]; then
|
|
||||||
sed -i 's/\/system\/driver\/rtl8189ftv.ko/\/opt\/wz_mini\/lib\/modules\/3.10.14\_\_isvp_swan_1.0\_\_\/extra\/8189fs.ko rtw_power_mgnt=0 rtw_enusbss=0 rtw_drv_log_level=0/g' /opt/wz_mini/tmp/.storage/app_init.sh
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$ENABLE_ATBM603X_DRIVER" == "true" ]] || [[ "$ENABLE_ATBM603X_DRIVER" == "" ]]; then
|
|
||||||
echo "Enable atbm603x_wifi_sdio"
|
|
||||||
if [ -f /opt/wz_mini/tmp/.ATOM_CamV3C ]; then
|
|
||||||
sed -i 's/\/thirdlib\/atbm603x_wifi_sdio.ko/\/opt\/wz_mini\/lib\/modules\/3.10.14\_\_isvp_swan_1.0\_\_\/extra\/atbm603x_wifi_sdio.ko atbm_printk_mask=0/g' /opt/wz_mini/tmp/.storage/app_init.sh
|
|
||||||
elif [ -f /opt/wz_mini/tmp/.T31 ] && ! [ -f /opt/wz_mini/tmp/.ATOM_CamV3C ]; then
|
|
||||||
sed -i 's/\/system\/driver\/atbm603x_wifi_sdio.ko/\/opt\/wz_mini\/lib\/modules\/3.10.14\_\_isvp_swan_1.0\_\_\/extra\/atbm603x_wifi_sdio.ko atbm_printk_mask=0/g' /opt/wz_mini/tmp/.storage/app_init.sh
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
##ENABLE LIBCALLBACK BY DEFAULT
|
|
||||||
if [[ "$LIBCALLBACK_ENABLE" == "true" ]] || ([[ "$RTSP_HI_RES_ENABLED" == "true" ]] || [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]); then
|
|
||||||
echo "set path for iCamera"
|
|
||||||
sed -i 's/\/system\/bin\/iCamera/\/opt\/wz_mini\/usr\/bin\/iCamera/g' /opt/wz_mini/tmp/.storage/app_init.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
#RTSP SERVER
|
|
||||||
if ([[ "$RTSP_HI_RES_ENABLED" == "true" ]] || [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]) && ! [[ -e /tmp/dbgflag ]]; then
|
|
||||||
if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]] && [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then
|
|
||||||
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
|
||||||
echo "load video loopback driver at video6 video7"
|
|
||||||
insmod /opt/wz_mini/lib/modules/3.10.14/extra/v4l2loopback_V2.ko video_nr=6,7
|
|
||||||
else
|
|
||||||
echo "load video loopback driver at video1 video2"
|
|
||||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/v4l2loopback.ko video_nr=1,2
|
|
||||||
fi
|
|
||||||
elif [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]; then
|
|
||||||
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
|
||||||
echo "load video loopback driver at video7"
|
|
||||||
insmod /opt/wz_mini/lib/modules/3.10.14/extra/v4l2loopback_V2.ko video_nr=7
|
|
||||||
else
|
|
||||||
echo "load video loopback driver at video2"
|
|
||||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/v4l2loopback.ko video_nr=2
|
|
||||||
fi
|
|
||||||
elif [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then
|
|
||||||
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
|
||||||
echo "load video loopback driver at video6"
|
|
||||||
insmod /opt/wz_mini/lib/modules/3.10.14/extra/v4l2loopback_V2.ko video_nr=6
|
|
||||||
else
|
|
||||||
echo "load video loopback driver at video1"
|
|
||||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/v4l2loopback.ko video_nr=1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
#MOTORIZED CAMERA CONTROL
|
|
||||||
if [[ "$DISABLE_MOTOR" == "true" ]]; then
|
|
||||||
echo "Motor Disabled"
|
|
||||||
touch /opt/wz_mini/tmp/.ms
|
|
||||||
fi
|
|
||||||
|
|
||||||
#Enable serial driver for car
|
|
||||||
if [ -f /opt/wz_mini/tmp/.CAR ] || [[ "$ENABLE_CAR_DRIVER" == "true" ]]; then
|
|
||||||
modprobe cp210x
|
|
||||||
fi
|
|
||||||
|
|
||||||
/opt/wz_mini/etc/init.d/wz_user.sh &
|
|
||||||
|
|
||||||
##LIBRARY DEBUG
|
|
||||||
#cp /opt/wz_mini/lib/uClibc.tar /tmp
|
|
||||||
#tar -xf /tmp/uClibc.tar -C /tmp
|
|
||||||
#mount --bind /tmp/lib /lib
|
|
||||||
#cp /system/bin/iCamera /opt/wz_mini/tmp/.storage/
|
|
||||||
#mount -o ro,bind /opt/wz_mini/usr/bin/iCamera-dbg /system/bin/iCamera
|
|
@ -1,625 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
LOG_NAME=/opt/wz_mini/log/wz_user
|
|
||||||
if [[ -e $LOG_NAME.log || -L $LOG_NAME.log ]] ; then
|
|
||||||
i=0
|
|
||||||
while [[ -e $LOG_NAME.log.$i || -L $LOG_NAME.log.$i ]] ; do
|
|
||||||
let i++
|
|
||||||
done
|
|
||||||
mv $LOG_NAME.log $LOG_NAME.log.$i
|
|
||||||
LOG_NAME=$LOG_NAME
|
|
||||||
fi
|
|
||||||
touch -- "$LOG_NAME".log
|
|
||||||
exec 1> $LOG_NAME.log 2>&1
|
|
||||||
|
|
||||||
set -x
|
|
||||||
|
|
||||||
echo "welcome to wz_user.sh"
|
|
||||||
echo "PID $$"
|
|
||||||
|
|
||||||
|
|
||||||
if [[ -e /tmp/dbgflag ]];then
|
|
||||||
echo "debug mode, disabled"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
export WZMINI_CFG=/opt/wz_mini/wz_mini.conf
|
|
||||||
|
|
||||||
[ -f $WZMINI_CFG ] && source $WZMINI_CFG
|
|
||||||
|
|
||||||
hostname_set() {
|
|
||||||
echo "set hostname"
|
|
||||||
hostname $CUSTOM_HOSTNAME
|
|
||||||
}
|
|
||||||
|
|
||||||
first_run_check() {
|
|
||||||
if [ -e /opt/wz_mini/tmp/.wz_user_firstrun ]; then
|
|
||||||
echo "wz_user.sh already run once, exit."
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
store_mac() {
|
|
||||||
echo "store original mac"
|
|
||||||
cat /sys/class/net/wlan0/address | tr '[:lower:]' '[:upper:]' > /opt/wz_mini/tmp/wlan0_mac
|
|
||||||
}
|
|
||||||
|
|
||||||
wait_wlan() {
|
|
||||||
##Check if the driver has been loaded for the onboard wlan0, store the MAC.
|
|
||||||
while true
|
|
||||||
do
|
|
||||||
if ifconfig wlan0 | grep "HWaddr"; then
|
|
||||||
echo "wlan0 hwaddr is up"
|
|
||||||
store_mac
|
|
||||||
break
|
|
||||||
else
|
|
||||||
echo "wlan0 hwaddr not ready yet..."
|
|
||||||
sleep 5
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
wpa_check() {
|
|
||||||
##Check if wpa_supplicant has been created by iCamera
|
|
||||||
if [ -e /tmp/wpa_supplicant.conf ]; then
|
|
||||||
wait_wlan
|
|
||||||
echo "wpa_supplicant.conf ready"
|
|
||||||
else
|
|
||||||
echo "wpa_supplicant.conf not ready, wait some time for creation."
|
|
||||||
COUNT=0
|
|
||||||
ATTEMPTS=15
|
|
||||||
until [[ -e /tmp/wpa_supplicant.conf ]] || [[ $COUNT -eq $ATTEMPTS ]]; do
|
|
||||||
echo -e "$(( COUNT++ ))... \c"
|
|
||||||
sleep 5
|
|
||||||
wpa_check
|
|
||||||
done
|
|
||||||
if [[ $COUNT -eq $ATTEMPTS ]]; then
|
|
||||||
echo "time exceeded waiting for iCamera, continue potentially broken condition without network."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
wlanold_check() {
|
|
||||||
#Have we renamed interfaces yet?
|
|
||||||
if [ -d /sys/class/net/wlanold ]; then
|
|
||||||
echo "wlanold exist"
|
|
||||||
eth_wlan_up
|
|
||||||
else
|
|
||||||
echo "wlanold doesn't exist"
|
|
||||||
if [[ "$BONDING_ENABLED" == "true" ]] && ([[ "$ENABLE_USB_ETH" == "true" ]] || [[ "$ENABLE_USB_DIRECT" == "true" ]]); then
|
|
||||||
rename_interface_and_setup_bonding bond0 "$BONDING_PRIMARY_INTERFACE" "$BONDING_SECONDARY_INTERFACE"
|
|
||||||
else
|
|
||||||
rename_interface $1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
netloop() {
|
|
||||||
##While loop for check
|
|
||||||
while true
|
|
||||||
do
|
|
||||||
wlanold_check $1
|
|
||||||
echo "wlan0 not ready yet..."
|
|
||||||
sleep 5
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
rename_interface() {
|
|
||||||
##Fool iCamera by renaming the hardline interface to wlan0
|
|
||||||
echo "renaming interfaces"
|
|
||||||
ifconfig $1 down
|
|
||||||
ifconfig wlan0 down
|
|
||||||
/opt/wz_mini/bin/busybox ip link set wlan0 name wlanold
|
|
||||||
/opt/wz_mini/bin/busybox ip addr flush dev wlanold
|
|
||||||
/opt/wz_mini/bin/busybox ip link set $1 name wlan0
|
|
||||||
eth_wlan_up
|
|
||||||
}
|
|
||||||
|
|
||||||
rename_interface_and_setup_bonding() {
|
|
||||||
##Fool iCamera by renaming the hardline interface to wlan0
|
|
||||||
## $1 Bonding Interface, $2 Primary Interface, $3 Secondary Interface
|
|
||||||
bonding_interface=$1
|
|
||||||
primary_interface=$2
|
|
||||||
secondary_interface=$3
|
|
||||||
|
|
||||||
echo "renaming interfaces"
|
|
||||||
|
|
||||||
# Bring all interfaces down
|
|
||||||
ifconfig $bonding_interface down
|
|
||||||
ifconfig $primary_interface down
|
|
||||||
ifconfig $secondary_interface down
|
|
||||||
|
|
||||||
# Have to bring bonding interface up to be able to bond our slaves.
|
|
||||||
/opt/wz_mini/bin/busybox ip link set $bonding_interface up
|
|
||||||
|
|
||||||
# Rename the real wlan0 interface if needed/used
|
|
||||||
if [[ "$primary_interface" == "wlan0" ]]; then
|
|
||||||
/opt/wz_mini/bin/busybox ip link set $primary_interface name wlanold
|
|
||||||
/opt/wz_mini/bin/busybox ip addr flush dev wlanold
|
|
||||||
primary_interface="wlanold"
|
|
||||||
# Because we just changed the name of the primary interface, we need to
|
|
||||||
# tell the bonding driver about the name change as well.
|
|
||||||
echo "$primary_interface" > /sys/devices/virtual/net/$bonding_interface/bonding/primary
|
|
||||||
fi
|
|
||||||
if [[ "$secondary_interface" == "wlan0" ]]; then
|
|
||||||
/opt/wz_mini/bin/busybox ip link set $secondary_interface name wlanold
|
|
||||||
/opt/wz_mini/bin/busybox ip addr flush dev wlanold
|
|
||||||
secondary_interface="wlanold"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Enslave the Ethernet and Original Wifi interfaces
|
|
||||||
# under the bonding interface.
|
|
||||||
/opt/wz_mini/tmp/.bin/ifenslave $bonding_interface $primary_interface $secondary_interface
|
|
||||||
|
|
||||||
# Have to bring bonding interface down to be rename the interface
|
|
||||||
/opt/wz_mini/bin/busybox ip link set $bonding_interface down
|
|
||||||
|
|
||||||
# Name the bonding interface to be the "new" wlan0 interface
|
|
||||||
/opt/wz_mini/bin/busybox ip link set $bonding_interface name wlan0
|
|
||||||
|
|
||||||
# Bring the newly renamed wlan0 (actually the bond interface) back up
|
|
||||||
eth_wlan_up
|
|
||||||
}
|
|
||||||
|
|
||||||
bonding_setup() {
|
|
||||||
echo "bonding kernel module setup"
|
|
||||||
if [[ "$BONDING_ENABLED" == "true" ]]; then
|
|
||||||
if [[ "$BONDING_LINK_MONITORING_FREQ_MS" == "" ]]; then
|
|
||||||
BONDING_LINK_MONITORING_FREQ_MS="100"
|
|
||||||
fi
|
|
||||||
if [[ "$BONDING_DOWN_DELAY_MS" == "" ]]; then
|
|
||||||
BONDING_DOWN_DELAY_MS="5000"
|
|
||||||
fi
|
|
||||||
if [[ "$BONDING_UP_DELAY_MS" == "" ]]; then
|
|
||||||
BONDING_UP_DELAY_MS="5000"
|
|
||||||
fi
|
|
||||||
if [[ "$BONDING_PRIMARY_INTERFACE" == "" ]]; then
|
|
||||||
BONDING_PRIMARY_INTERFACE="$1"
|
|
||||||
fi
|
|
||||||
if [[ "$BONDING_SECONDARY_INTERFACE" == "" ]]; then
|
|
||||||
BONDING_SECONDARY_INTERFACE="$2"
|
|
||||||
fi
|
|
||||||
if [[ "$BONDING_FAIL_OVER_MAC" == "" ]]; then
|
|
||||||
BONDING_FAIL_OVER_MAC="0"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Insert the bonding driver into the kernel
|
|
||||||
insmod $KMOD_PATH/kernel/drivers/net/bonding/bonding.ko mode=active-backup miimon="$BONDING_LINK_MONITORING_FREQ_MS" downdelay="$BONDING_DOWN_DELAY_MS" updelay="$BONDING_UP_DELAY_MS" primary="$BONDING_PRIMARY_INTERFACE" fail_over_mac="$BONDING_FAIL_OVER_MAC"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
eth_wlan_up() {
|
|
||||||
##Run DHCP client, and bind mount our fake wpa_cli.sh to fool iCamera
|
|
||||||
ifconfig wlan0 up
|
|
||||||
pkill udhcpc
|
|
||||||
udhcpc -i wlan0 -x hostname:$CUSTOM_HOSTNAME -p /var/run/udhcpc.pid -b
|
|
||||||
|
|
||||||
# If running with Interface Bonding enabled, kill any existing
|
|
||||||
# wpa_supplicant that might be running and spawn our own instead
|
|
||||||
if [[ "$BONDING_ENABLED" == "true" ]] && ([[ "$ENABLE_USB_ETH" == "true" ]] || [[ "$ENABLE_USB_DIRECT" == "true" ]]); then
|
|
||||||
/opt/wz_mini/bin/busybox killall wpa_supplicant
|
|
||||||
wpa_supplicant -D nl80211 -i wlanold -c /tmp/wpa_supplicant.conf -B -s
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
|
||||||
mount -o bind /opt/wz_mini/bin/wpa_cli.sh /system/bin/wpa_cli
|
|
||||||
else
|
|
||||||
mount -o bind /opt/wz_mini/bin/wpa_cli.sh /bin/wpa_cli
|
|
||||||
fi
|
|
||||||
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
swap_enable() {
|
|
||||||
if [ -e /opt/wz_mini/swap ]; then
|
|
||||||
echo "Swap file exists"
|
|
||||||
if cat /proc/swaps | grep "mini" ; then
|
|
||||||
echo "Swap is already enabled"
|
|
||||||
else
|
|
||||||
echo "Enable swap"
|
|
||||||
swapon /opt/wz_mini/swap
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Swap file missing!"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
dmesg_log() {
|
|
||||||
|
|
||||||
DMESG_LOG=/opt/wz_mini/log/dmesg
|
|
||||||
if [[ -e $DMESG_LOG.log || -L $DMESG_LOG.log ]] ; then
|
|
||||||
i=0
|
|
||||||
while [[ -e $DMESG_LOG.log.$i || -L $DMESG_LOG.log.$i ]] ; do
|
|
||||||
let i++
|
|
||||||
done
|
|
||||||
mv $DMESG_LOG.log $DMESG_LOG.log.$i
|
|
||||||
DMESG_LOG=$DMESG_LOG
|
|
||||||
fi
|
|
||||||
touch -- "$DMESG_LOG".log
|
|
||||||
dmesg > $DMESG_LOG.log 2>&1
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
trim_logs() {
|
|
||||||
|
|
||||||
echo "Deleting logs older than 5 boots..."
|
|
||||||
|
|
||||||
find /opt/wz_mini/log -name '*log*' | while read file; do
|
|
||||||
[ "${file#/opt/wz_mini/log/*log.}" -gt 5 ] && rm -v "$file"
|
|
||||||
done
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
first_run_check
|
|
||||||
wpa_check
|
|
||||||
|
|
||||||
#Set module dir depending on platform
|
|
||||||
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
|
||||||
KMOD_PATH="/opt/wz_mini/lib/modules/3.10.14"
|
|
||||||
else
|
|
||||||
KMOD_PATH="/opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__"
|
|
||||||
fi
|
|
||||||
|
|
||||||
swap_enable
|
|
||||||
|
|
||||||
if [[ "$ENABLE_IPV6" == "true" ]]; then
|
|
||||||
echo "ipv6 enabled"
|
|
||||||
else
|
|
||||||
echo "ipv6 disabled"
|
|
||||||
sysctl -w net.ipv6.conf.all.disable_ipv6=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$ENABLE_NFSv4" == "true" ]]; then
|
|
||||||
insmod $KMOD_PATH/kernel/lib/oid_registry.ko
|
|
||||||
insmod $KMOD_PATH/kernel/net/dns_resolver/dns_resolver.ko
|
|
||||||
insmod $KMOD_PATH/kernel/fs/nfs/nfsv4.ko
|
|
||||||
insmod $KMOD_PATH/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko
|
|
||||||
echo nfsv4 enabled
|
|
||||||
else
|
|
||||||
echo nfsv4 disabled
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$ENABLE_IPTABLES" == "true" ]]; then
|
|
||||||
|
|
||||||
insmod $KMOD_PATH/kernel/net/netfilter/x_tables.ko
|
|
||||||
insmod $KMOD_PATH/kernel/net/ipv4/netfilter/ip_tables.ko
|
|
||||||
insmod $KMOD_PATH/kernel/net/ipv4/netfilter/ipt_REJECT.ko
|
|
||||||
insmod $KMOD_PATH/kernel/net/ipv4/netfilter/iptable_filter.ko
|
|
||||||
insmod $KMOD_PATH/kernel/net/ipv4/netfilter/iptable_mangle.ko
|
|
||||||
echo "iptables ipv4 enabled"
|
|
||||||
|
|
||||||
if [[ "$ENABLE_IPV6" == "true" ]]; then
|
|
||||||
insmod $KMOD_PATH/kernel/net/ipv6/netfilter/ip6_tables.ko
|
|
||||||
insmod $KMOD_PATH/kernel/net/ipv6/netfilter/ip6t_REJECT.ko
|
|
||||||
insmod $KMOD_PATH/kernel/net/ipv6/netfilter/ip6table_filter.ko
|
|
||||||
insmod $KMOD_PATH/kernel/net/ipv6/netfilter/ip6table_mangle.ko
|
|
||||||
echo "iptables ipv6 enabled"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "iptables disabled"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$ENABLE_USB_ETH" == "true" ]]; then
|
|
||||||
|
|
||||||
insmod $KMOD_PATH/kernel/drivers/net/usb/usbnet.ko
|
|
||||||
|
|
||||||
# Auto-Detect an Ethernet Driver and load it
|
|
||||||
if [[ "$ENABLE_USB_ETH_MODULE_AUTODETECT" == "true" ]]; then
|
|
||||||
for DEVICE in `lsusb | awk '{print $6}'| tr '[:upper:]' '[:lower:]'`; do
|
|
||||||
case $DEVICE in
|
|
||||||
'077b:2226' | '0846:1040' | '2001:1a00' | '0b95:1720' | '07b8:420a' |\
|
|
||||||
'08dd:90ff' | '0557:2009' | '0411:003d' | '0411:006e' | '6189:182d' |\
|
|
||||||
'0df6:0056' | '07aa:0017' | '1189:0893' | '1631:6200' | '04f1:3008' |\
|
|
||||||
'17ef:7203' | '0b95:772b' | '0b95:7720' | '0b95:1780' | '0789:0160' |\
|
|
||||||
'13b1:0018' | '1557:7720' | '07d1:3c05' | '2001:3c05' | '2001:1a02' |\
|
|
||||||
'1737:0039' | '04bb:0930' | '050d:5055' | '05ac:1402' | '0b95:772a' |\
|
|
||||||
'14ea:ab11' | '0db0:a877' | '0b95:7e2b' | '0b95:172a' | '066b:20f9')
|
|
||||||
echo "Loading ASIX Ethernet driver..."
|
|
||||||
modprobe asix
|
|
||||||
;;
|
|
||||||
'0b95:1790' | '0b95:178a' | '0df6:0072')
|
|
||||||
echo "Loading AX88179 Gigabit Ethernet driver..."
|
|
||||||
modprobe ax88179_178a
|
|
||||||
;;
|
|
||||||
'1004:61aa' | '046d:c11f' | '1410:b001' | '1410:9010' | '413c:8195' |\
|
|
||||||
'413c:8196' | '413c:819b' | '16d5:650a' | '12d1:14ac')
|
|
||||||
echo "Loading USB CDC Ethernet driver..."
|
|
||||||
modprobe cdc_ether
|
|
||||||
;;
|
|
||||||
'0bda:8152')
|
|
||||||
echo "Loading Realtek RTL8152 driver..."
|
|
||||||
modprobe r8152
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Manually load any other Ethernet Drivers if asked for
|
|
||||||
if [[ "$ENABLE_USB_ETH_MODULE_MANUAL" != "" ]]; then
|
|
||||||
for i in $(echo "$ENABLE_USB_ETH_MODULE_MANUAL" | tr "," "\n")
|
|
||||||
do
|
|
||||||
insmod $KMOD_PATH/kernel/drivers/net/usb/$i.ko
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
bonding_setup eth0 wlan0
|
|
||||||
|
|
||||||
swap_enable
|
|
||||||
|
|
||||||
netloop eth0
|
|
||||||
|
|
||||||
else
|
|
||||||
echo "USB Ethernet disabled"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$ENABLE_USB_DIRECT" == "true" ]]; then
|
|
||||||
|
|
||||||
HOST_MACADDR=$(echo "$CUSTOM_HOSTNAME"|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/')
|
|
||||||
|
|
||||||
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
|
||||||
echo connect > /sys/devices/platform/jz-dwc2/dwc2/udc/dwc2/soft_connect
|
|
||||||
sleep 1
|
|
||||||
devmem 0x10000040 32 0x0b800096
|
|
||||||
sleep 1
|
|
||||||
devmem 0x13500000 32 0x001100cc
|
|
||||||
else
|
|
||||||
#Set dwc2 ID_PIN driver memory
|
|
||||||
devmem 0x13500000 32 0x001100cc
|
|
||||||
devmem 0x10000040 32 0x0b000096
|
|
||||||
#wipe the bits to set the ID_PIN, only for the V3.
|
|
||||||
devmem 0x10000040 32 0x0b000FFF
|
|
||||||
fi
|
|
||||||
|
|
||||||
insmod $KMOD_PATH/kernel/drivers/usb/gadget/libcomposite.ko
|
|
||||||
|
|
||||||
if [ -f /opt/wz_mini/tmp/.T31 ]; then
|
|
||||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/u_ether.ko
|
|
||||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/usb_f_ncm.ko
|
|
||||||
fi
|
|
||||||
|
|
||||||
insmod $KMOD_PATH/kernel/drivers/usb/gadget/g_ncm.ko iManufacturer=wz_mini_ncm host_addr="$HOST_MACADDR" dev_addr="$USB_DIRECT_MAC_ADDR"
|
|
||||||
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
bonding_setup usb0 wlan0
|
|
||||||
|
|
||||||
swap_enable
|
|
||||||
|
|
||||||
netloop usb0
|
|
||||||
|
|
||||||
else
|
|
||||||
echo "USB Direct disabled"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$ENABLE_USB_RNDIS" == "true" ]]; then
|
|
||||||
if [[ "$ENABLE_USB_ETH" == "true" ]] || [[ "$ENABLE_USB_DIRECT" == "true" ]]; then
|
|
||||||
echo "RNDIS is not compatible with ENABLE_USB_ETH or ENABLE_USB_DIRECT. Please enable only ENABLE_USB_RNDIS"
|
|
||||||
else
|
|
||||||
|
|
||||||
insmod $KMOD_PATH/kernel/drivers/net/usb/usbnet.ko
|
|
||||||
insmod $KMOD_PATH/kernel/drivers/net/usb/cdc_ether.ko
|
|
||||||
insmod $KMOD_PATH/kernel/drivers/net/usb/rndis_host.ko
|
|
||||||
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
swap_enable
|
|
||||||
|
|
||||||
netloop usb0
|
|
||||||
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "usb rndis disabled"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$ENABLE_WIREGUARD" == "true" ]]; then
|
|
||||||
insmod $KMOD_PATH/kernel/net/ipv4/tunnel4.ko
|
|
||||||
insmod $KMOD_PATH/kernel/net/ipv4/ip_tunnel.ko
|
|
||||||
insmod $KMOD_PATH/kernel/net/wireguard/wireguard.ko
|
|
||||||
|
|
||||||
if [[ "$WIREGUARD_IPV4" != "" ]]; then
|
|
||||||
|
|
||||||
if [ -d /opt/wz_mini/etc/wireguard ]; then
|
|
||||||
echo "wireguard dir exists"
|
|
||||||
else
|
|
||||||
mkdir -p /opt/wz_mini/etc/wireguard
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -f /opt/wz_mini/etc/wireguard/privatekey ]; then
|
|
||||||
(umask 277 && /opt/wz_mini/bin/wg genkey | /opt/wz_mini/bin/busybox tee /opt/wz_mini/etc/wireguard/privatekey | /opt/wz_mini/bin/wg pubkey > /opt/wz_mini/etc/wireguard/publickey)
|
|
||||||
fi
|
|
||||||
|
|
||||||
/opt/wz_mini/bin/busybox ip link add dev wg0 type wireguard
|
|
||||||
/opt/wz_mini/bin/busybox ip address add dev wg0 "$WIREGUARD_IPV4"
|
|
||||||
/opt/wz_mini/bin/wg set wg0 private-key /opt/wz_mini/etc/wireguard/privatekey
|
|
||||||
/opt/wz_mini/bin/busybox ip link set wg0 up
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$WIREGUARD_PEER_PUBLIC_KEY" != "" ]] && [[ "$WIREGUARD_PEER_ALLOWED_IPS" != "" ]] && [[ "$WIREGUARD_PEER_ENDPOINT" != "" ]] && [[ "$WIREGUARD_PEER_KEEP_ALIVE" != "" ]]; then
|
|
||||||
/opt/wz_mini/bin/wg set wg0 peer "$WIREGUARD_PEER_PUBLIC_KEY" allowed-ips "$WIREGUARD_PEER_ALLOWED_IPS" endpoint "$WIREGUARD_PEER_ENDPOINT" persistent-keepalive "$WIREGUARD_PEER_KEEP_ALIVE"
|
|
||||||
/opt/wz_mini/bin/busybox ip route add "$WIREGUARD_PEER_ALLOWED_IPS" dev wg0
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "wireguard disabled"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$ENABLE_CIFS" == "true" ]]; then
|
|
||||||
insmod $KMOD_PATH/kernel/fs/cifs/cifs.ko
|
|
||||||
else
|
|
||||||
echo "cifs disabled"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$ENABLE_USB_STORAGE" == "true" ]]; then
|
|
||||||
insmod $KMOD_PATH/kernel/drivers/scsi/scsi_mod.ko
|
|
||||||
insmod $KMOD_PATH/kernel/drivers/scsi/sd_mod.ko
|
|
||||||
insmod $KMOD_PATH/kernel/drivers/usb/storage/usb-storage.ko
|
|
||||||
else
|
|
||||||
echo "usb_storage disabled"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$ENABLE_EXT4" == "true" ]]; then
|
|
||||||
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
|
||||||
insmod $KMOD_PATH/kernel/lib/crc16.ko
|
|
||||||
fi
|
|
||||||
|
|
||||||
insmod $KMOD_PATH/kernel/fs/jbd2/jbd2.ko
|
|
||||||
insmod $KMOD_PATH/kernel/fs/mbcache.ko
|
|
||||||
insmod $KMOD_PATH/kernel/fs/ext4/ext4.ko
|
|
||||||
else
|
|
||||||
echo "ext4 disabled"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$DISABLE_FW_UPGRADE" == "true" ]]; then
|
|
||||||
mkdir /tmp/Upgrade
|
|
||||||
mount -t tmpfs -o size=1,nr_inodes=1 none /tmp/Upgrade
|
|
||||||
#Setting this host causes iCamera to segfault, lets ignore it for now
|
|
||||||
#echo -e "127.0.0.1 localhost \n127.0.0.1 wyze-upgrade-service.wyzecam.com" > /opt/wz_mini/tmp/.storage/hosts
|
|
||||||
#mount --bind /opt/wz_mini/tmp/.storage/hosts /etc/hosts
|
|
||||||
/opt/wz_mini/bin/busybox inotifyd /opt/wz_mini/usr/bin/watch_up.sh /tmp:n > /dev/null 2>&1 &
|
|
||||||
else
|
|
||||||
mkdir /tmp/Upgrade
|
|
||||||
/opt/wz_mini/bin/busybox inotifyd /opt/wz_mini/usr/bin/watch_up.sh /tmp:n > /dev/null 2>&1 &
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$REMOTE_SPOTLIGHT" == "true" ]]; then
|
|
||||||
/opt/wz_mini/bin/socat pty,link=/dev/ttyUSB0,raw tcp:"$REMOTE_SPOTLIGHT_HOST":9000 &
|
|
||||||
echo "remote accessory enabled"
|
|
||||||
else
|
|
||||||
echo "remote accessory disabled"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$ENABLE_MP4_WRITE" == "true" ]]; then
|
|
||||||
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
|
||||||
echo "mp4_write is not supported on T20"
|
|
||||||
else
|
|
||||||
/opt/wz_mini/bin/cmd mp4write on
|
|
||||||
echo "mp4_write enabled"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "mp4 write disabled"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then
|
|
||||||
|
|
||||||
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
|
||||||
HI_VIDEO_DEV="/dev/video6"
|
|
||||||
else
|
|
||||||
HI_VIDEO_DEV="/dev/video1"
|
|
||||||
fi
|
|
||||||
|
|
||||||
swap_enable
|
|
||||||
|
|
||||||
if [[ "$RTSP_PASSWORD" = "" ]]; then
|
|
||||||
RTSP_PASSWORD=$(cat /opt/wz_mini/tmp/wlan0_mac)
|
|
||||||
fi
|
|
||||||
|
|
||||||
/opt/wz_mini/bin/cmd video 0 on
|
|
||||||
|
|
||||||
if [[ "$RTSP_HI_RES_ENABLE_AUDIO" == "true" ]]; then
|
|
||||||
/opt/wz_mini/bin/cmd audio 0 on
|
|
||||||
AUDIO_CH="-C 1"
|
|
||||||
AUDIO_FMT="-a S16_LE"
|
|
||||||
DEVICE1="$HI_VIDEO_DEV,hw:0,0"
|
|
||||||
else
|
|
||||||
DEVICE1="$HI_VIDEO_DEV"
|
|
||||||
echo "rtsp audio disabled"
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
echo "rtsp disabled"
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]; then
|
|
||||||
|
|
||||||
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
|
||||||
LOW_VIDEO_DEV="/dev/video7"
|
|
||||||
else
|
|
||||||
LOW_VIDEO_DEV="/dev/video2"
|
|
||||||
fi
|
|
||||||
|
|
||||||
swap_enable
|
|
||||||
|
|
||||||
/opt/wz_mini/bin/cmd video 1 on
|
|
||||||
|
|
||||||
if [[ "$RTSP_PASSWORD" = "" ]]; then
|
|
||||||
RTSP_PASSWORD=$(cat /opt/wz_mini/tmp/wlan0_mac)
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$RTSP_LOW_RES_ENABLE_AUDIO" == "true" ]]; then
|
|
||||||
/opt/wz_mini/bin/cmd audio 1 on
|
|
||||||
AUDIO_CH="-C 1"
|
|
||||||
AUDIO_FMT="-a S16_LE"
|
|
||||||
DEVICE2="$LOW_VIDEO_DEV,hw:2,0"
|
|
||||||
else
|
|
||||||
DEVICE2="$LOW_VIDEO_DEV"
|
|
||||||
echo "rtsp audio disabled"
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
echo "rtsp disabled"
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]] || [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then
|
|
||||||
echo "delay RTSP for iCamera"
|
|
||||||
#This delay is required. Sometimes, if you start the rtsp server too soon, live view will break on the app.
|
|
||||||
sleep 5
|
|
||||||
LD_LIBRARY_PATH=/opt/wz_mini/lib /opt/wz_mini/bin/v4l2rtspserver $AUDIO_CH $AUDIO_FMT -F0 -U "$RTSP_LOGIN":"$RTSP_PASSWORD" -P "$RTSP_PORT" $DEVICE1 $DEVICE2 &
|
|
||||||
sleep 1
|
|
||||||
echo "Set imp variables via helper"
|
|
||||||
/opt/wz_mini/usr/bin/imp_helper.sh > /dev/null 2>&1 &
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ([[ "$RTSP_LOW_RES_ENABLED" == "true" ]] || [[ "$RTSP_HI_RES_ENABLED" == "true" ]]) && [[ "$RTMP_STREAM_ENABLED" == "true" ]] && ([[ "$RTSP_LOW_RES_ENABLE_AUDIO" == "true" ]] || [[ "$RTSP_HI_RES_ENABLE_AUDIO" == "true" ]]); then
|
|
||||||
if [[ "$RTMP_STREAM_DISABLE_AUDIO" == "true" ]]; then
|
|
||||||
RTMP_AUDIO="no_audio"
|
|
||||||
fi
|
|
||||||
echo "delay RTMP server"
|
|
||||||
#Follow the delay from the RTSP server
|
|
||||||
sleep 5
|
|
||||||
/opt/wz_mini/bin/rtmp-stream.sh "$RMTP_STREAM_SERVICE" "$RTMP_AUDIO" &
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$NIGHT_DROP_DISABLE" == "true" ]]; then
|
|
||||||
touch /opt/wz_mini/tmp/.nd
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$ENABLE_LOCAL_DNS" == "true" ]]; then
|
|
||||||
dnsmasq -C /opt/wz_mini/etc/dnsmasq.conf
|
|
||||||
rm -f /tmp/resolv.conf
|
|
||||||
cp /opt/wz_mini/etc/resolv.conf /tmp/resolv.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$WEB_SERVER_ENABLED" == "true" ]]; then
|
|
||||||
httpd -p 80 -h /opt/wz_mini/www
|
|
||||||
fi
|
|
||||||
|
|
||||||
hostname_set
|
|
||||||
touch /opt/wz_mini/tmp/.wz_user_firstrun
|
|
||||||
pkill -f dumpload #Kill dumpload so it won't waste cpu or ram gathering cores and uploading them when something crashes
|
|
||||||
sysctl -w kernel.core_pattern='|/bin/false'
|
|
||||||
dmesg_log
|
|
||||||
trim_logs
|
|
||||||
sync;echo 3 > /proc/sys/vm/drop_caches
|
|
||||||
|
|
||||||
|
|
||||||
if [ -f "$CUSTOM_SCRIPT_PATH" ]; then
|
|
||||||
echo "starting custom script"
|
|
||||||
$CUSTOM_SCRIPT_PATH &
|
|
||||||
else
|
|
||||||
echo "no custom script configured in wz_mini.conf"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "searching for custom scripts in /opt/wz_mini/etc/rc.local.d"
|
|
||||||
if [ -d "${1:-/opt/wz_mini/etc/rc.local.d}" ] ; then
|
|
||||||
for filename in $(find /opt/wz_mini/etc/rc.local.d/ -name "*.sh" | /opt/wz_mini/bin/busybox sort) ; do
|
|
||||||
if [ -f "${filename}" ] && [ -x "${filename}" ]; then
|
|
||||||
echo "running ${filename}"
|
|
||||||
"${filename}" &
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
echo "finished executing custom scripts from /opt/wz_mini/etc/rc.local.d"
|
|
||||||
|
|
||||||
echo "wz_user.sh done" > /dev/kmsg
|
|
25
SD_ROOT/wz_mini/etc/network.d/S01wlanhw
Normal file
25
SD_ROOT/wz_mini/etc/network.d/S01wlanhw
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: WLAN HW Init check
|
||||||
|
# Description: Make sure the WLAN hardware is functional and initialized before proceeding.
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/etc/rc.common
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
#Wait for wlan hardware to be intitialized in app_init.sh, this must be blocking.
|
||||||
|
#Lets come up with a solution for some cameras with failed wlan hw, someone on reddit mentioned it"
|
||||||
|
echo "Waiting for wlan hw init"
|
||||||
|
|
||||||
|
wait_for_wlan $(basename "$0")
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
25
SD_ROOT/wz_mini/etc/network.d/S03ipv6
Normal file
25
SD_ROOT/wz_mini/etc/network.d/S03ipv6
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Enable/Disable IPv6
|
||||||
|
# Description: Enable/Disable IPv6 based on the user configuration
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if ! [[ "$ENABLE_IPV6" == "true" ]]; then
|
||||||
|
sysctl -w net.ipv6.conf.all.disable_ipv6=1
|
||||||
|
echo "ipv6 disabled"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
50
SD_ROOT/wz_mini/etc/network.d/S04wireguard
Normal file
50
SD_ROOT/wz_mini/etc/network.d/S04wireguard
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Wireguard support
|
||||||
|
# Description: Enable Wireguard support
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
. /opt/wz_mini/etc/rc.common
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if [[ "$ENABLE_WIREGUARD" == "true" ]]; then
|
||||||
|
|
||||||
|
if [[ "$WIREGUARD_IPV4" != "" ]]; then
|
||||||
|
|
||||||
|
if [ -d /opt/wz_mini/etc/wireguard ]; then
|
||||||
|
echo "Wireguard dir exists"
|
||||||
|
else
|
||||||
|
mkdir -p /opt/wz_mini/etc/wireguard
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f /opt/wz_mini/etc/wireguard/privatekey ]; then
|
||||||
|
(umask 277 && /opt/wz_mini/bin/wg genkey | /opt/wz_mini/bin/busybox tee /opt/wz_mini/etc/wireguard/privatekey | /opt/wz_mini/bin/wg pubkey > /opt/wz_mini/etc/wireguard/publickey)
|
||||||
|
fi
|
||||||
|
|
||||||
|
/opt/wz_mini/bin/busybox ip link add dev wg0 type wireguard
|
||||||
|
/opt/wz_mini/bin/busybox ip address add dev wg0 "$WIREGUARD_IPV4"
|
||||||
|
/opt/wz_mini/bin/wg set wg0 private-key /opt/wz_mini/etc/wireguard/privatekey
|
||||||
|
/opt/wz_mini/bin/busybox ip link set wg0 up
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$WIREGUARD_PEER_PUBLIC_KEY" != "" ]] && [[ "$WIREGUARD_PEER_ALLOWED_IPS" != "" ]] && [[ "$WIREGUARD_PEER_ENDPOINT" != "" ]] && [[ "$WIREGUARD_PEER_KEEP_ALIVE" != "" ]]; then
|
||||||
|
/opt/wz_mini/bin/wg set wg0 peer "$WIREGUARD_PEER_PUBLIC_KEY" allowed-ips "$WIREGUARD_PEER_ALLOWED_IPS" endpoint "$WIREGUARD_PEER_ENDPOINT" persistent-keepalive "$WIREGUARD_PEER_KEEP_ALIVE"
|
||||||
|
/opt/wz_mini/bin/busybox ip route add "$WIREGUARD_PEER_ALLOWED_IPS" dev wg0
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Wireguard disabled"
|
||||||
|
fi
|
||||||
|
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
25
SD_ROOT/wz_mini/etc/network.d/S08hostname
Normal file
25
SD_ROOT/wz_mini/etc/network.d/S08hostname
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Set system hostname
|
||||||
|
# Description: Set system hostname
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
|
||||||
|
echo "Set hostname to $CUSTOM_HOSTNAME"
|
||||||
|
hostname $CUSTOM_HOSTNAME
|
||||||
|
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
34
SD_ROOT/wz_mini/etc/network.d/S09dnsmasq
Normal file
34
SD_ROOT/wz_mini/etc/network.d/S09dnsmasq
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Start daemon at boot time
|
||||||
|
# Description: Enable service provided by daemon.
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if [[ "$ENABLE_LOCAL_DNS" == "true" ]]; then
|
||||||
|
dnsmasq -C /opt/wz_mini/etc/dnsmasq.conf
|
||||||
|
rm -f /tmp/resolv.conf
|
||||||
|
cp /opt/wz_mini/etc/resolv.conf /tmp/resolv.conf
|
||||||
|
echo "dnsmasq enabled"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
pkill dnsmasq
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
$0 stop
|
||||||
|
$0 start
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start|stop}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
32
SD_ROOT/wz_mini/etc/network.d/S10httpd
Normal file
32
SD_ROOT/wz_mini/etc/network.d/S10httpd
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Basic Web Server
|
||||||
|
# Description: If enabled, start the httpd web server
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if [[ "$WEB_SERVER_ENABLED" == "true" ]]; then
|
||||||
|
httpd -p 80 -h /opt/wz_mini/www
|
||||||
|
echo "httpd enabled"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
pkill dnsmasq
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
$0 stop
|
||||||
|
$0 start
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start|stop}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
36
SD_ROOT/wz_mini/etc/network.d/S12remoteaccessory
Normal file
36
SD_ROOT/wz_mini/etc/network.d/S12remoteaccessory
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Remote USB Accessory Support
|
||||||
|
# Description: If enabled, support remote usb accessories using socat
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/etc/rc.common
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
remote() {
|
||||||
|
wait_for_wlan_ip $(basename "$0")
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if [[ "$REMOTE_SPOTLIGHT" == "true" ]]; then
|
||||||
|
/opt/wz_mini/bin/socat pty,link=/dev/ttyUSB0,raw tcp:"$REMOTE_SPOTLIGHT_HOST":9000 &
|
||||||
|
echo "Remote accessory support enabled"
|
||||||
|
else
|
||||||
|
echo "Remote accessory support disabled"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
remote &
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
pkill socat
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
29
SD_ROOT/wz_mini/etc/network.d/S14storemac
Normal file
29
SD_ROOT/wz_mini/etc/network.d/S14storemac
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Store WLAN HW Address
|
||||||
|
# Description: Store the WLAN HW Address for use by other scripts
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/etc/rc.common
|
||||||
|
|
||||||
|
storemac() {
|
||||||
|
wait_for_wlan_wpa $(basename "$0")
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
cat /sys/class/net/wlan0/address | tr '[:lower:]' '[:upper:]' > /opt/wz_mini/tmp/wlan0_mac
|
||||||
|
echo "store original mac"
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
storemac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
129
SD_ROOT/wz_mini/etc/network.d/S15v4l2rtspserver
Normal file
129
SD_ROOT/wz_mini/etc/network.d/S15v4l2rtspserver
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Start RTSP Server
|
||||||
|
# Description: Provide RTSP Streaming Video over IP
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
RTSP=/opt/wz_mini/log/v4l2rtspserver
|
||||||
|
if [[ -e $RTSP.log || -L $RTSP.log ]] ; then
|
||||||
|
i=0
|
||||||
|
while [[ -e $RTSP.log.$i || -L $RTSP.log.$i ]] ; do
|
||||||
|
let i++
|
||||||
|
done
|
||||||
|
mv $RTSP.log $RTSP.log.$i
|
||||||
|
RTSP=$RTSP
|
||||||
|
fi
|
||||||
|
touch -- "$RTSP".log
|
||||||
|
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then
|
||||||
|
|
||||||
|
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
||||||
|
HI_VIDEO_DEV="/dev/video6"
|
||||||
|
else
|
||||||
|
HI_VIDEO_DEV="/dev/video1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$RTSP_PASSWORD" = "" ]]; then
|
||||||
|
RTSP_PASSWORD=$(cat /opt/wz_mini/tmp/wlan0_mac)
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Enable video ch 0"
|
||||||
|
/opt/wz_mini/bin/cmd video 0 on > /dev/null
|
||||||
|
|
||||||
|
if [[ "$RTSP_HI_RES_ENABLE_AUDIO" == "true" ]]; then
|
||||||
|
echo "Enable audio ch 0"
|
||||||
|
/opt/wz_mini/bin/cmd audio 0 on > /dev/null
|
||||||
|
AUDIO_CH="-C 1"
|
||||||
|
AUDIO_FMT="-a S16_LE"
|
||||||
|
DEVICE1="$HI_VIDEO_DEV,hw:0,0"
|
||||||
|
else
|
||||||
|
DEVICE1="$HI_VIDEO_DEV"
|
||||||
|
echo "rtsp audio disabled"
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "rtsp disabled"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]; then
|
||||||
|
|
||||||
|
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
||||||
|
LOW_VIDEO_DEV="/dev/video7"
|
||||||
|
else
|
||||||
|
LOW_VIDEO_DEV="/dev/video2"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Enable video ch 1"
|
||||||
|
/opt/wz_mini/bin/cmd video 1 on > /dev/null
|
||||||
|
|
||||||
|
if [[ "$RTSP_PASSWORD" = "" ]]; then
|
||||||
|
RTSP_PASSWORD=$(cat /opt/wz_mini/tmp/wlan0_mac)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$RTSP_LOW_RES_ENABLE_AUDIO" == "true" ]]; then
|
||||||
|
echo "Enable video ch 1"
|
||||||
|
/opt/wz_mini/bin/cmd audio 1 on > /dev/null
|
||||||
|
AUDIO_CH="-C 1"
|
||||||
|
AUDIO_FMT="-a S16_LE"
|
||||||
|
DEVICE2="$LOW_VIDEO_DEV,hw:2,0"
|
||||||
|
else
|
||||||
|
DEVICE2="$LOW_VIDEO_DEV"
|
||||||
|
echo "rtsp audio disabled"
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "rtsp disabled"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]] || [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then
|
||||||
|
echo "delay RTSP for iCamera"
|
||||||
|
#This delay is required. Sometimes, if you start the rtsp server too soon, live view will break on the app.
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
if [[ "$RTSP_AUTH_DISABLE" == "true" ]]; then
|
||||||
|
echo "Starting RTSP server"
|
||||||
|
LD_LIBRARY_PATH=/opt/wz_mini/lib LD_PRELOAD=/system/lib/libsetunbuf.so /opt/wz_mini/bin/v4l2rtspserver $AUDIO_CH $AUDIO_FMT -F0 -P "$RTSP_PORT" $DEVICE1 $DEVICE2 > $RTSP.log 2>&1 &
|
||||||
|
else
|
||||||
|
echo "Starting RTSP server"
|
||||||
|
LD_LIBRARY_PATH=/opt/wz_mini/lib LD_PRELOAD=/system/lib/libsetunbuf.so /opt/wz_mini/bin/v4l2rtspserver $AUDIO_CH $AUDIO_FMT -F0 -U "$RTSP_LOGIN":"$RTSP_PASSWORD" -P "$RTSP_PORT" $DEVICE1 $DEVICE2 > $RTSP.log 2>&1 &
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
echo "Set imp variables via helper"
|
||||||
|
/opt/wz_mini/usr/bin/imp_helper.sh > /dev/null 2>&1 &
|
||||||
|
fi
|
||||||
|
|
||||||
|
sync;echo 3 > /proc/sys/vm/drop_caches
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
pkill v4l2rtspserver
|
||||||
|
cmd video 0 off
|
||||||
|
cmd audio 0 off
|
||||||
|
cmd video 1 off
|
||||||
|
cmd audio 1 off
|
||||||
|
pkill imp_helper.sh
|
||||||
|
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
$0 stop
|
||||||
|
$0 start
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start|stop}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
36
SD_ROOT/wz_mini/etc/network.d/S16rtmp
Normal file
36
SD_ROOT/wz_mini/etc/network.d/S16rtmp
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Start rtsp service
|
||||||
|
# Description: Enable RTMP Streaming Video
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if ([[ "$RTSP_LOW_RES_ENABLED" == "true" ]] || [[ "$RTSP_HI_RES_ENABLED" == "true" ]]) && [[ "$RTMP_STREAM_ENABLED" == "true" ]] && ([[ "$RTSP_LOW_RES_ENABLE_AUDIO" == "true" ]] || [[ "$RTSP_HI_RES_ENABLE_AUDIO" == "true" ]]); then
|
||||||
|
if [[ "$RTMP_STREAM_DISABLE_AUDIO" == "true" ]]; then
|
||||||
|
RTMP_AUDIO="no_audio"
|
||||||
|
fi
|
||||||
|
echo "delay RTMP server"
|
||||||
|
#Follow the delay from the RTSP server
|
||||||
|
sleep 5
|
||||||
|
/opt/wz_mini/bin/rtmp-stream.sh "$RMTP_STREAM_SERVICE" "$RTMP_AUDIO" &
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
pkill dnsmasq
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
$0 stop
|
||||||
|
$0 start
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start|stop}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
81
SD_ROOT/wz_mini/etc/rc.common
Executable file
81
SD_ROOT/wz_mini/etc/rc.common
Executable file
@ -0,0 +1,81 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
source /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
#Set module dir depending on platform
|
||||||
|
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
||||||
|
KMOD_PATH="/opt/wz_mini/lib/modules/3.10.14"
|
||||||
|
else
|
||||||
|
KMOD_PATH="/opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$ENABLE_USB_ETH" == "true" ]]; then
|
||||||
|
ALT_IFACE=eth0
|
||||||
|
elif [[ "$ENABLE_USB_DIRECT" == "true" ]] || [[ "$ENABLE_USB_RNDIS" == "true" ]]; then
|
||||||
|
ALT_IFACE=usb0
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Set the correct GPIO for the audio driver (T31 only)
|
||||||
|
if [ -f /opt/wz_mini/tmp/.HL_PAN2 ]; then
|
||||||
|
GPIO=7
|
||||||
|
elif [ -f /opt/wz_mini/tmp/.WYZE_CAKP2JFUS ]; then
|
||||||
|
GPIO=63
|
||||||
|
fi
|
||||||
|
|
||||||
|
wait_for_wlan() {
|
||||||
|
while true; do
|
||||||
|
if ifconfig wlan0 | grep "HWaddr" > /dev/null; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
echo "$1: Network HW not ready yet, try again in 5 seconds"
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
wait_for_wlan_wpa() {
|
||||||
|
while true; do
|
||||||
|
if [ -e /tmp/wpa_supplicant.conf ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
echo "$1: wpa_supplicant not initialized yet, try again in 5 seconds"
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
wait_for_wlan_ip() {
|
||||||
|
while true; do
|
||||||
|
if ifconfig wlan0 | grep "inet addr" > /dev/null; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
echo "$1: IP Address not acquired yet, try again in 5 seconds"
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
wait_for_icamera() {
|
||||||
|
while ! pgrep -f "/system/bin/iCamera" > /dev/null; do
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
gateway_supervisor() {
|
||||||
|
count=0
|
||||||
|
while [ true ]; do
|
||||||
|
if ! ping -c1 -W 2 `/opt/wz_mini/bin/busybox ip route | awk '/default/ { print $3 }'` >& /dev/null; then
|
||||||
|
echo "$1: Unable to reach default route via USB Direct Link, ifdown usb0..."
|
||||||
|
count=0
|
||||||
|
ifconfig usb0 down
|
||||||
|
sleep 10
|
||||||
|
else
|
||||||
|
if [[ $count -ne 1 ]]
|
||||||
|
then
|
||||||
|
#echo "Connected."
|
||||||
|
count=1
|
||||||
|
sleep 5
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
67
SD_ROOT/wz_mini/etc/rc.d/K01network
Normal file
67
SD_ROOT/wz_mini/etc/rc.d/K01network
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. /opt/wz_mini/etc/rc.common
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
if [ -e /tmp/dbgflag ]; then
|
||||||
|
echo "debug enabled, network.d disabled."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
wait_for_wlan $(basename "$0")
|
||||||
|
|
||||||
|
for i in /opt/wz_mini/etc/network.d/S??* ;do
|
||||||
|
|
||||||
|
# Ignore dangling symlinks (if any).
|
||||||
|
[ ! -f "$i" ] && continue
|
||||||
|
|
||||||
|
case "$i" in
|
||||||
|
*.sh)
|
||||||
|
# Source shell script for speed.
|
||||||
|
(
|
||||||
|
trap - INT QUIT TSTP
|
||||||
|
set start
|
||||||
|
. $i
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# No sh extension, so fork subprocess.
|
||||||
|
$i start
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
wait_for_wlan_ip $(basename "$0")
|
||||||
|
|
||||||
|
for i in /opt/wz_mini/etc/rc.local.d/* ;do
|
||||||
|
|
||||||
|
# Ignore dangling symlinks (if any).
|
||||||
|
[ ! -f "$i" ] && continue
|
||||||
|
|
||||||
|
case "$i" in
|
||||||
|
*.sh)
|
||||||
|
# Source shell script for speed.
|
||||||
|
(
|
||||||
|
trap - INT QUIT TSTP
|
||||||
|
set start
|
||||||
|
. $i
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# No sh extension, so fork subprocess.
|
||||||
|
$i start
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
if [ -f "$CUSTOM_SCRIPT_PATH" ]; then
|
||||||
|
echo "Starting custom script"
|
||||||
|
$CUSTOM_SCRIPT_PATH &
|
||||||
|
else
|
||||||
|
echo "No custom script configured in wz_mini.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
/opt/wz_mini/etc/rc.d/K15logging
|
||||||
|
|
||||||
|
echo "wz_mini done" > /dev/kmsg
|
8
SD_ROOT/wz_mini/etc/init.d/wz_cam.sh → SD_ROOT/wz_mini/etc/rc.d/K02webcam
Executable file → Normal file
8
SD_ROOT/wz_mini/etc/init.d/wz_cam.sh → SD_ROOT/wz_mini/etc/rc.d/K02webcam
Executable file → Normal file
@ -16,12 +16,10 @@ export WZMINI_CFG=/opt/wz_mini/wz_mini.conf
|
|||||||
|
|
||||||
[ -f $WZMINI_CFG ] && source $WZMINI_CFG
|
[ -f $WZMINI_CFG ] && source $WZMINI_CFG
|
||||||
|
|
||||||
set -x
|
|
||||||
|
|
||||||
echo "welcome to wz_cam.sh"
|
echo "welcome to wz_cam.sh"
|
||||||
echo "PID $$"
|
echo "PID $$"
|
||||||
|
|
||||||
if [ -f /opt/wz_mini/tmp/.T31 ]; then
|
if [ -f /opt/wz_mini/tmp/.T31 ]; then
|
||||||
|
|
||||||
cp /opt/wz_mini/etc/uvc.config /opt/wz_mini/usr/bin/uvc.config
|
cp /opt/wz_mini/etc/uvc.config /opt/wz_mini/usr/bin/uvc.config
|
||||||
|
|
||||||
@ -49,10 +47,10 @@ echo "PID $$"
|
|||||||
|
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
#Set dwc2 ID_PIN driver memory
|
echo "Set dwc2 ID_PIN driver memory"
|
||||||
devmem 0x13500000 32 0x001100cc
|
devmem 0x13500000 32 0x001100cc
|
||||||
devmem 0x10000040 32 0x0b000096
|
devmem 0x10000040 32 0x0b000096
|
||||||
#wipe the bits to set the ID_PIN
|
echo "Wipe dwc2 memory bits to set the ID_PIN"
|
||||||
devmem 0x10000040 32 0x0b000FFF
|
devmem 0x10000040 32 0x0b000FFF
|
||||||
|
|
||||||
sleep 1
|
sleep 1
|
27
SD_ROOT/wz_mini/etc/rc.d/K03rcd
Normal file
27
SD_ROOT/wz_mini/etc/rc.d/K03rcd
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ -e /tmp/dbgflag ]; then
|
||||||
|
echo "debug enabled, rc.d disabled."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
for i in /opt/wz_mini/etc/rc.d/S??* ;do
|
||||||
|
|
||||||
|
# Ignore dangling symlinks (if any).
|
||||||
|
[ ! -f "$i" ] && continue
|
||||||
|
|
||||||
|
case "$i" in
|
||||||
|
*.sh)
|
||||||
|
# Source shell script for speed.
|
||||||
|
(
|
||||||
|
trap - INT QUIT TSTP
|
||||||
|
set start
|
||||||
|
. $i
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# No sh extension, so fork subprocess.
|
||||||
|
$i start
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
23
SD_ROOT/wz_mini/etc/rc.d/K15logging
Normal file
23
SD_ROOT/wz_mini/etc/rc.d/K15logging
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
source /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
echo "Store dmesg logs"
|
||||||
|
|
||||||
|
DMESG_LOG=/opt/wz_mini/log/dmesg
|
||||||
|
if [[ -e $DMESG_LOG.log || -L $DMESG_LOG.log ]] ; then
|
||||||
|
i=0
|
||||||
|
while [[ -e $DMESG_LOG.log.$i || -L $DMESG_LOG.log.$i ]] ; do
|
||||||
|
let i++
|
||||||
|
done
|
||||||
|
mv $DMESG_LOG.log $DMESG_LOG.log.$i
|
||||||
|
DMESG_LOG=$DMESG_LOG
|
||||||
|
fi
|
||||||
|
touch -- "$DMESG_LOG".log
|
||||||
|
dmesg > $DMESG_LOG.log 2>&1
|
||||||
|
|
||||||
|
echo "Deleting logs older than 5 boots..."
|
||||||
|
|
||||||
|
find /opt/wz_mini/log -name '*log*' | while read file; do
|
||||||
|
[ "${file#/opt/wz_mini/log/*log.}" -gt 5 ] && rm -v "$file"
|
||||||
|
done
|
45
SD_ROOT/wz_mini/etc/rc.d/S01swap
Normal file
45
SD_ROOT/wz_mini/etc/rc.d/S01swap
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Extract Swap archive
|
||||||
|
# Description: Enable required swap file for system. System will crash without it.
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
. /opt/wz_mini/etc/rc.common
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
|
||||||
|
if [ -e /opt/wz_mini/swap.gz ]; then
|
||||||
|
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
||||||
|
LD_LIBRARY_PATH='/opt/wz_mini/lib' /opt/wz_mini/bin/audioplay_t20 /opt/wz_mini/usr/share/audio/swap_v2.wav $AUDIO_PROMPT_VOLUME
|
||||||
|
else
|
||||||
|
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/audio.ko spk_gpio=$GPIO alc_mode=0 mic_gain=0
|
||||||
|
/opt/wz_mini/bin/audioplay_t31 /opt/wz_mini/usr/share/audio/swap.wav $AUDIO_PROMPT_VOLUME
|
||||||
|
rmmod audio
|
||||||
|
fi
|
||||||
|
echo "Swap archive present, extracting"
|
||||||
|
gzip -d /opt/wz_mini/swap.gz
|
||||||
|
mkswap /opt/wz_mini/swap
|
||||||
|
sync;echo 3 > /proc/sys/vm/drop_caches
|
||||||
|
else
|
||||||
|
echo "Swap archive missing, not extracting"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$ENABLE_SWAP" == "true" ]] && [[ -e /opt/wz_mini/swap ]]; then
|
||||||
|
echo "Swap file found, enable"
|
||||||
|
/opt/wz_mini/bin/busybox swapon /opt/wz_mini/swap
|
||||||
|
else
|
||||||
|
echo "Swap file missing"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
71
SD_ROOT/wz_mini/etc/rc.d/S03ethernet
Normal file
71
SD_ROOT/wz_mini/etc/rc.d/S03ethernet
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: USB Ethernet Support
|
||||||
|
# Description: Enable USB Ethernet adapter support and kernel module
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/etc/rc.common
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "$ENABLE_USB_ETH" == "true" ]]; then
|
||||||
|
|
||||||
|
insmod $KMOD_PATH/kernel/drivers/net/usb/usbnet.ko
|
||||||
|
|
||||||
|
echo "Auto-Detect an Ethernet Driver and load it"
|
||||||
|
if [[ "$ENABLE_USB_ETH_MODULE_AUTODETECT" == "true" ]]; then
|
||||||
|
for DEVICE in `lsusb | awk '{print $6}'| tr '[:upper:]' '[:lower:]'`; do
|
||||||
|
case $DEVICE in
|
||||||
|
'077b:2226' | '0846:1040' | '2001:1a00' | '0b95:1720' | '07b8:420a' |\
|
||||||
|
'08dd:90ff' | '0557:2009' | '0411:003d' | '0411:006e' | '6189:182d' |\
|
||||||
|
'0df6:0056' | '07aa:0017' | '1189:0893' | '1631:6200' | '04f1:3008' |\
|
||||||
|
'17ef:7203' | '0b95:772b' | '0b95:7720' | '0b95:1780' | '0789:0160' |\
|
||||||
|
'13b1:0018' | '1557:7720' | '07d1:3c05' | '2001:3c05' | '2001:1a02' |\
|
||||||
|
'1737:0039' | '04bb:0930' | '050d:5055' | '05ac:1402' | '0b95:772a' |\
|
||||||
|
'14ea:ab11' | '0db0:a877' | '0b95:7e2b' | '0b95:172a' | '066b:20f9')
|
||||||
|
echo "Loading ASIX Ethernet driver..."
|
||||||
|
modprobe asix
|
||||||
|
;;
|
||||||
|
'0b95:1790' | '0b95:178a' | '0df6:0072')
|
||||||
|
echo "Loading AX88179 Gigabit Ethernet driver..."
|
||||||
|
modprobe ax88179_178a
|
||||||
|
;;
|
||||||
|
'1004:61aa' | '046d:c11f' | '1410:b001' | '1410:9010' | '413c:8195' |\
|
||||||
|
'413c:8196' | '413c:819b' | '16d5:650a' | '12d1:14ac')
|
||||||
|
echo "Loading USB CDC Ethernet driver..."
|
||||||
|
modprobe cdc_ether
|
||||||
|
;;
|
||||||
|
'0bda:8152')
|
||||||
|
echo "Loading Realtek RTL8152 driver..."
|
||||||
|
modprobe r8152
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Manually load any other Ethernet Drivers if asked for"
|
||||||
|
if [[ "$ENABLE_USB_ETH_MODULE_MANUAL" != "" ]]; then
|
||||||
|
for i in $(echo "$ENABLE_USB_ETH_MODULE_MANUAL" | tr "," "\n")
|
||||||
|
do
|
||||||
|
insmod $KMOD_PATH/kernel/drivers/net/usb/$i.ko
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat /sys/class/net/eth0/address | tr '[:lower:]' '[:upper:]' > /opt/wz_mini/tmp/eth0_mac
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "USB Ethernet disabled"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
54
SD_ROOT/wz_mini/etc/rc.d/S04usbdirect
Normal file
54
SD_ROOT/wz_mini/etc/rc.d/S04usbdirect
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: USB Direct Networking
|
||||||
|
# Description: Enable USB Direct Networking kernel modules and support
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/etc/rc.common
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if [[ "$ENABLE_USB_DIRECT" == "true" ]]; then
|
||||||
|
|
||||||
|
HOST_MACADDR=$(echo "$CUSTOM_HOSTNAME"|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/')
|
||||||
|
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
||||||
|
echo connect > /sys/devices/platform/jz-dwc2/dwc2/udc/dwc2/soft_connect
|
||||||
|
sleep 1
|
||||||
|
devmem 0x10000040 32 0x0b800096
|
||||||
|
sleep 1
|
||||||
|
devmem 0x13500000 32 0x001100cc
|
||||||
|
else
|
||||||
|
echo "Set dwc2 ID_PIN driver memory"
|
||||||
|
devmem 0x13500000 32 0x001100cc
|
||||||
|
devmem 0x10000040 32 0x0b000096
|
||||||
|
echo "wipe dwc2 memory bits to set the ID_PIN, only for the V3"
|
||||||
|
devmem 0x10000040 32 0x0b000FFF
|
||||||
|
fi
|
||||||
|
|
||||||
|
insmod $KMOD_PATH/kernel/drivers/usb/gadget/libcomposite.ko
|
||||||
|
|
||||||
|
if [ -f /opt/wz_mini/tmp/.T31 ]; then
|
||||||
|
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/u_ether.ko
|
||||||
|
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/usb_f_ncm.ko
|
||||||
|
fi
|
||||||
|
|
||||||
|
insmod $KMOD_PATH/kernel/drivers/usb/gadget/g_ncm.ko iManufacturer=wz_mini_ncm host_addr="$HOST_MACADDR" dev_addr="$USB_DIRECT_MAC_ADDR"
|
||||||
|
|
||||||
|
echo "USB Direct enabled"
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "USB Direct disabled"
|
||||||
|
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
35
SD_ROOT/wz_mini/etc/rc.d/S05rndis
Normal file
35
SD_ROOT/wz_mini/etc/rc.d/S05rndis
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: USB RNDIS Tethering Support
|
||||||
|
# Description: Enable USB RNDIS Tethering kernel modules and support
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/etc/rc.common
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
if [[ "$ENABLE_USB_RNDIS" == "true" ]]; then
|
||||||
|
if [[ "$ENABLE_USB_ETH" == "true" ]] || [[ "$ENABLE_USB_DIRECT" == "true" ]]; then
|
||||||
|
echo "RNDIS is not compatible with ENABLE_USB_ETH or ENABLE_USB_DIRECT. Please enable only ENABLE_USB_RNDIS"
|
||||||
|
else
|
||||||
|
|
||||||
|
insmod $KMOD_PATH/kernel/drivers/net/usb/usbnet.ko
|
||||||
|
insmod $KMOD_PATH/kernel/drivers/net/usb/cdc_ether.ko
|
||||||
|
insmod $KMOD_PATH/kernel/drivers/net/usb/rndis_host.ko
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "USB RNDIS enabled"
|
||||||
|
else
|
||||||
|
echo "USB RNDIS disabled"
|
||||||
|
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
51
SD_ROOT/wz_mini/etc/rc.d/S06networkalt
Normal file
51
SD_ROOT/wz_mini/etc/rc.d/S06networkalt
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Configure alternate networking
|
||||||
|
# Description: Configure networking that is not onboard WLAN
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/etc/rc.common
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
alternate_iface() {
|
||||||
|
|
||||||
|
if [[ "$ENABLE_USB_ETH" == "true" ]] || [[ "$ENABLE_USB_DIRECT" == "true" ]] || [[ "$ENABLE_USB_RNDIS" == "true" ]]; then
|
||||||
|
wait_for_wlan_wpa $(basename "$0")
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
echo "Renaming interfaces"
|
||||||
|
ifconfig $ALT_IFACE down
|
||||||
|
|
||||||
|
ifconfig wlan0 down
|
||||||
|
/opt/wz_mini/bin/busybox ip link set wlan0 name wlanold
|
||||||
|
/opt/wz_mini/bin/busybox ip addr flush dev wlanold
|
||||||
|
/opt/wz_mini/bin/busybox ip link set $ALT_IFACE name wlan0
|
||||||
|
|
||||||
|
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
||||||
|
mount -o bind /opt/wz_mini/bin/wpa_cli.sh /system/bin/wpa_cli
|
||||||
|
else
|
||||||
|
mount -o bind /opt/wz_mini/bin/wpa_cli.sh /bin/wpa_cli
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "No alternate iface enabled"
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
if ! [[ "$BONDING_ENABLED" == "true" ]]; then
|
||||||
|
alternate_iface &
|
||||||
|
fi
|
||||||
|
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
98
SD_ROOT/wz_mini/etc/rc.d/S07bonding
Normal file
98
SD_ROOT/wz_mini/etc/rc.d/S07bonding
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Network bonding support
|
||||||
|
# Description: Enable bonding support as configured by user
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/etc/rc.common
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
bonding_setup() {
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
echo "waiting until wlan0 is up with the modified HWaddr"
|
||||||
|
wait_for_wlan_wpa $(basename "$0")
|
||||||
|
|
||||||
|
##Fool iCamera by renaming the hardline interface to wlan0
|
||||||
|
|
||||||
|
## $1 Bonding Interface, $2 Primary Interface, $3 Secondary Interface
|
||||||
|
echo "renaming interfaces"
|
||||||
|
|
||||||
|
#Prevent iCamera from cycling the wlan0 interface
|
||||||
|
mount --bind /opt/wz_mini/usr/bin/restart_wlan0.sh /system/bin/restart_wlan0.sh
|
||||||
|
|
||||||
|
# Bring all interfaces down
|
||||||
|
ifconfig bond0 down
|
||||||
|
ifconfig $BONDING_PRIMARY_INTERFACE down
|
||||||
|
ifconfig $BONDING_SECONDARY_INTERFACE down
|
||||||
|
|
||||||
|
# Have to bring bonding interface up to be able to bond our slaves.
|
||||||
|
/opt/wz_mini/bin/busybox ip link set bond0 up
|
||||||
|
|
||||||
|
# Rename the real wlan0 interface if needed/used
|
||||||
|
if [[ "$BONDING_PRIMARY_INTERFACE" == "wlan0" ]]; then
|
||||||
|
/opt/wz_mini/bin/busybox ip link set $BONDING_PRIMARY_INTERFACE name wlanold
|
||||||
|
/opt/wz_mini/bin/busybox ip addr flush dev wlanold
|
||||||
|
BONDING_PRIMARY_INTERFACE="wlanold"
|
||||||
|
# Because we just changed the name of the primary interface, we need to
|
||||||
|
# tell the bonding driver about the name change as well.
|
||||||
|
echo "$BONDING_PRIMARY_INTERFACE" > /sys/devices/virtual/net/bond0/bonding/primary
|
||||||
|
fi
|
||||||
|
if [[ "$BONDING_SECONDARY_INTERFACE" == "wlan0" ]]; then
|
||||||
|
/opt/wz_mini/bin/busybox ip link set $BONDING_SECONDARY_INTERFACE name wlanold
|
||||||
|
/opt/wz_mini/bin/busybox ip addr flush dev wlanold
|
||||||
|
BONDING_SECONDARY_INTERFACE="wlanold"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Enslave the Ethernet and Original Wifi interfaces
|
||||||
|
# under the bonding interface.
|
||||||
|
/opt/wz_mini/tmp/.bin/ifenslave bond0 $BONDING_PRIMARY_INTERFACE $BONDING_SECONDARY_INTERFACE
|
||||||
|
|
||||||
|
# Have to bring bonding interface down to be rename the interface
|
||||||
|
/opt/wz_mini/bin/busybox ip link set bond0 down
|
||||||
|
|
||||||
|
# Name the bonding interface to be the "new" wlan0 interface
|
||||||
|
/opt/wz_mini/bin/busybox ip link set bond0 name wlan0
|
||||||
|
|
||||||
|
# Bring the newly renamed wlan0 (actually the bond interface) back up in the next step
|
||||||
|
|
||||||
|
#Run the DHCP client, and bind mount our fake wpa_cli.sh to fool iCamera
|
||||||
|
ifconfig wlan0 up
|
||||||
|
pkill udhcpc
|
||||||
|
udhcpc -i wlan0 -x hostname:$CUSTOM_HOSTNAME -p /var/run/udhcpc.pid -b
|
||||||
|
|
||||||
|
# If running with Interface Bonding enabled, kill any existing
|
||||||
|
# wpa_supplicant that might be running and spawn our own instead
|
||||||
|
|
||||||
|
if [[ "$BONDING_ENABLED" == "true" ]] && ([[ "$ENABLE_USB_ETH" == "true" ]] || [[ "$ENABLE_USB_DIRECT" == "true" ]]); then
|
||||||
|
echo "Restarting wpa_supplicant due to bonding"
|
||||||
|
/opt/wz_mini/bin/busybox killall wpa_supplicant
|
||||||
|
wpa_supplicant -D nl80211 -i wlanold -c /tmp/wpa_supplicant.conf -B -s
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
||||||
|
mount -o bind /opt/wz_mini/bin/wpa_cli.sh /system/bin/wpa_cli
|
||||||
|
else
|
||||||
|
mount -o bind /opt/wz_mini/bin/wpa_cli.sh /bin/wpa_cli
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Run network monitor for USB Direct"
|
||||||
|
/opt/wz_mini/usr/bin/netmon.sh &
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
if [[ "$BONDING_ENABLED" == "true" ]] && ([[ "$ENABLE_USB_ETH" == "true" ]] || [[ "$ENABLE_USB_DIRECT" == "true" ]]); then
|
||||||
|
bonding_setup &
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
31
SD_ROOT/wz_mini/etc/rc.d/S09coredump
Normal file
31
SD_ROOT/wz_mini/etc/rc.d/S09coredump
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Disable coredump
|
||||||
|
# Description: Disable dumpload and disable kernel coredump support
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/etc/rc.common
|
||||||
|
|
||||||
|
core() {
|
||||||
|
wait_for_wlan_wpa $(basename "$0")
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
echo "Killing dumpload"
|
||||||
|
/opt/wz_mini/bin/busybox pkill -f dumpload
|
||||||
|
|
||||||
|
echo "Setting kernel core pattern"
|
||||||
|
sysctl -w kernel.core_pattern='|/bin/false' > /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
core &
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
34
SD_ROOT/wz_mini/etc/rc.d/S10firmware
Normal file
34
SD_ROOT/wz_mini/etc/rc.d/S10firmware
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: FW Upgrade Intercept
|
||||||
|
# Description: Intercept FW Upgrades from vendor
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if [[ "$DISABLE_FW_UPGRADE" == "true" ]]; then
|
||||||
|
mkdir /tmp/Upgrade
|
||||||
|
mount -t tmpfs -o size=1,nr_inodes=1 none /tmp/Upgrade
|
||||||
|
#Setting this host causes iCamera to segfault, lets ignore it for now
|
||||||
|
#echo -e "127.0.0.1 localhost \n127.0.0.1 wyze-upgrade-service.wyzecam.com" > /opt/wz_mini/tmp/.storage/hosts
|
||||||
|
#mount --bind /opt/wz_mini/tmp/.storage/hosts /etc/hosts
|
||||||
|
/opt/wz_mini/bin/busybox inotifyd /opt/wz_mini/usr/bin/watch_up.sh /tmp:n > /dev/null 2>&1 &
|
||||||
|
echo "Firmware updates disabled"
|
||||||
|
else
|
||||||
|
echo "Firmwware updates enabled, monitor script running"
|
||||||
|
mkdir /tmp/Upgrade
|
||||||
|
/opt/wz_mini/bin/busybox inotifyd /opt/wz_mini/usr/bin/watch_up.sh /tmp:n > /dev/null 2>&1 &
|
||||||
|
fi
|
||||||
|
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
38
SD_ROOT/wz_mini/etc/rc.d/S13mp4write
Normal file
38
SD_ROOT/wz_mini/etc/rc.d/S13mp4write
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: MP4WRITE Support
|
||||||
|
# Description: Prevent system trashing with mp4write support provided by libcallback, temporary video files are written direct to media instead of /tmp
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/etc/rc.common
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
mp4write() {
|
||||||
|
|
||||||
|
wait_for_icamera
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if [[ "$ENABLE_MP4_WRITE" == "true" ]]; then
|
||||||
|
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
||||||
|
echo "mp4_write is not supported on T20"
|
||||||
|
else
|
||||||
|
/opt/wz_mini/bin/cmd mp4write on > /dev/null
|
||||||
|
echo "mp4_write enabled"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "mp4_write disabled"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
mp4write &
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
25
SD_ROOT/wz_mini/etc/rc.d/S14nightdrop
Normal file
25
SD_ROOT/wz_mini/etc/rc.d/S14nightdrop
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Enable NightDrop support
|
||||||
|
# Description: Prevent the system from dropping FPS during night mode
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if [[ "$NIGHT_DROP_DISABLE" == "true" ]]; then
|
||||||
|
echo "Night Drop Disable, Enabled"
|
||||||
|
touch /opt/wz_mini/tmp/.nd
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
27
SD_ROOT/wz_mini/etc/rc.d/S17motor
Normal file
27
SD_ROOT/wz_mini/etc/rc.d/S17motor
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Disable Motor
|
||||||
|
# Description: Disable Motor on specified devices
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if [[ "$DISABLE_MOTOR" == "true" ]]; then
|
||||||
|
echo "Motor Disabled"
|
||||||
|
touch /opt/wz_mini/tmp/.ms
|
||||||
|
else
|
||||||
|
echo "Motor enabled"
|
||||||
|
fi
|
||||||
|
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
39
SD_ROOT/wz_mini/etc/rc.d/S18fps
Normal file
39
SD_ROOT/wz_mini/etc/rc.d/S18fps
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Set system FPS
|
||||||
|
# Description: Set system FPS if greater than factory defaults
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
echo "Seting system FPS if greater than default"
|
||||||
|
|
||||||
|
if [ $RTSP_HI_RES_FPS -gt 20 ]; then
|
||||||
|
if cat /configs/.user_config | grep fps; then
|
||||||
|
sed -i "s/fps.*/fps\=$RTSP_HI_RES_FPS/" /configs/.user_config
|
||||||
|
else
|
||||||
|
sed -i "/\[SETTING\].*/a fps=$RTSP_HI_RES_FPS" /configs/.user_config
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif [ $RTSP_LOW_RES_FPS -gt 20 ]; then
|
||||||
|
if cat /configs/.user_config | grep fps; then
|
||||||
|
sed -i "s/fps.*/fps\=$RTSP_LOW_RES_FPS/" /configs/.user_config
|
||||||
|
else
|
||||||
|
sed -i "/\[SETTING\].*/a fps=$RTSP_LOW_RES_FPS" /configs/.user_config
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
31
SD_ROOT/wz_mini/etc/rc.d/S20cron
Normal file
31
SD_ROOT/wz_mini/etc/rc.d/S20cron
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Start cron daemon
|
||||||
|
# Description: Enable cron service
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/etc/rc.common
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
autostart_crond() {
|
||||||
|
wait_for_wlan_ip $(basename "$0")
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
/opt/wz_mini/tmp/.bin/crond -b -c /opt/wz_mini/etc/cron/
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
if [[ "$ENABLE_CRONTAB" == "true" ]]; then
|
||||||
|
autostart_crond &
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
43
SD_ROOT/wz_mini/etc/rc.d/S21syslog
Normal file
43
SD_ROOT/wz_mini/etc/rc.d/S21syslog
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides:
|
||||||
|
# Short-Description: Store syslogs
|
||||||
|
# Description: Enable storing of syslogs to media
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /opt/wz_mini/etc/rc.common
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
|
||||||
|
syslog_save() {
|
||||||
|
wait_for_icamera
|
||||||
|
|
||||||
|
echo "#####$(basename "$0")#####"
|
||||||
|
|
||||||
|
if [[ "$ENABLE_SYSLOG_SAVE" == "true" ]]; then
|
||||||
|
echo "Store syslog logs"
|
||||||
|
|
||||||
|
SYSLOG_LOG=/opt/wz_mini/log/syslog
|
||||||
|
if [[ -e $SYSLOG_LOG.log || -L $SYSLOG_LOG.log ]] ; then
|
||||||
|
i=0
|
||||||
|
while [[ -e $SYSLOG_LOG.log.$i || -L $SYSLOG_LOG.log.$i ]] ; do
|
||||||
|
let i++
|
||||||
|
done
|
||||||
|
mv $SYSLOG_LOG.log $SYSLOG_LOG.log.$i
|
||||||
|
SYSLOG_LOG=$SYSLOG_LOG
|
||||||
|
fi
|
||||||
|
touch -- "$SYSLOG_LOG".log
|
||||||
|
logread -F > $SYSLOG_LOG.log &
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
syslog_save &
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
5
SD_ROOT/wz_mini/etc/rc.local
Normal file
5
SD_ROOT/wz_mini/etc/rc.local
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
#This file executes last, after rc.local.d/
|
||||||
|
|
||||||
|
|
@ -68,6 +68,8 @@ RTSP_LOW_RES_MAX_BITRATE=""
|
|||||||
RTSP_LOW_RES_TARGET_BITRATE=""
|
RTSP_LOW_RES_TARGET_BITRATE=""
|
||||||
RTSP_LOW_RES_ENC_PARAMETER=""
|
RTSP_LOW_RES_ENC_PARAMETER=""
|
||||||
|
|
||||||
|
RTSP_AUTH_DISABLE="false"
|
||||||
|
|
||||||
#####RTMP STREAMING#####
|
#####RTMP STREAMING#####
|
||||||
#### REQUIRES RTSP ####
|
#### REQUIRES RTSP ####
|
||||||
### AND RTSP AUDIO ###
|
### AND RTSP AUDIO ###
|
||||||
@ -93,12 +95,14 @@ DISABLE_MOTOR="false"
|
|||||||
ENABLE_FSCK_ON_BOOT="false"
|
ENABLE_FSCK_ON_BOOT="false"
|
||||||
ENABLE_CAR_DRIVER="false"
|
ENABLE_CAR_DRIVER="false"
|
||||||
ENABLE_LOCAL_DNS="false"
|
ENABLE_LOCAL_DNS="false"
|
||||||
|
ENABLE_CRONTAB="false"
|
||||||
|
|
||||||
#####DEBUG#####
|
#####DEBUG#####
|
||||||
#drops you to a shell via serial, doesn't load app_init.sh
|
#drops you to a shell via serial, doesn't load app_init.sh
|
||||||
DEBUG_ENABLED="false"
|
DEBUG_ENABLED="false"
|
||||||
DEBUG_INITRAMFS_ENABLED="false"
|
DEBUG_INITRAMFS_ENABLED="false"
|
||||||
DEBUG_PASSWORD="false"
|
DEBUG_PASSWORD="false"
|
||||||
|
ENABLE_SYSLOG_SAVE="false"
|
||||||
|
|
||||||
####WEB####
|
####WEB####
|
||||||
WEB_SERVER_ENABLED="false"
|
WEB_SERVER_ENABLED="false"
|
||||||
|
@ -1 +1 @@
|
|||||||
Wed Aug 3 07:53:41 PM PDT 2022
|
Sun Aug 7 06:32:44 PM PDT 2022
|
@ -9,11 +9,11 @@ export WZMINI_CFG=/opt/wz_mini/wz_mini.conf
|
|||||||
[ -f $WZMINI_CFG ] && source $WZMINI_CFG
|
[ -f $WZMINI_CFG ] && source $WZMINI_CFG
|
||||||
|
|
||||||
DELAY_BETWEEN=2
|
DELAY_BETWEEN=2
|
||||||
RE_RUN_DELAY=45
|
RE_RUN_DELAY=60
|
||||||
PARM=1
|
PARM=1
|
||||||
|
|
||||||
hi_res_monitor() {
|
hi_res_monitor() {
|
||||||
if [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then
|
if [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then
|
||||||
|
|
||||||
if [[ "$RTSP_HI_RES_ENC_PARAMETER" != "" ]]; then
|
if [[ "$RTSP_HI_RES_ENC_PARAMETER" != "" ]]; then
|
||||||
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
||||||
@ -74,14 +74,14 @@ if [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
low_res_monitor
|
low_res_monitor
|
||||||
else
|
else
|
||||||
echo "Hi-Res RTSP not enabled"
|
echo "Hi-Res RTSP not enabled"
|
||||||
low_res_monitor
|
low_res_monitor
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
low_res_monitor () {
|
low_res_monitor () {
|
||||||
if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]; then
|
if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]; then
|
||||||
|
|
||||||
if [[ "$RTSP_LOW_RES_ENC_PARAMETER" != "" ]]; then
|
if [[ "$RTSP_LOW_RES_ENC_PARAMETER" != "" ]]; then
|
||||||
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
if [ -f /opt/wz_mini/tmp/.T20 ]; then
|
||||||
@ -141,14 +141,14 @@ if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]; then
|
|||||||
echo "No Low-Res imp variables enabled, exit"
|
echo "No Low-Res imp variables enabled, exit"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "Low-Res RTSP not enabled"
|
echo "Low-Res RTSP not enabled"
|
||||||
if [[ "$RTSP_HI_RES_ENABLED" == "true" ]] && [ $PARM -gt 1 ]; then
|
if [[ "$RTSP_HI_RES_ENABLED" == "true" ]] && [ $PARM -gt 1 ]; then
|
||||||
hi_res_monitor
|
hi_res_monitor
|
||||||
else
|
else
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
|
14
SD_ROOT/wz_mini/usr/bin/netmon.sh
Normal file
14
SD_ROOT/wz_mini/usr/bin/netmon.sh
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. /opt/wz_mini/wz_mini.conf
|
||||||
|
. /opt/wz_mini/etc/rc.common
|
||||||
|
|
||||||
|
if [[ "$ENABLE_USB_DIRECT" == "true" ]]; then
|
||||||
|
wait_for_wlan_ip $(basename "$0")
|
||||||
|
sleep 5
|
||||||
|
gateway_supervisor $(basename "$0") &
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "kill udhcpc extra"
|
||||||
|
kill $(pgrep -f 'udhcpc -i wlan0 -H WyzeCam')
|
||||||
|
|
3
SD_ROOT/wz_mini/usr/bin/restart_wlan0.sh
Normal file
3
SD_ROOT/wz_mini/usr/bin/restart_wlan0.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
echo "up"
|
@ -68,6 +68,8 @@ RTSP_LOW_RES_MAX_BITRATE=""
|
|||||||
RTSP_LOW_RES_TARGET_BITRATE=""
|
RTSP_LOW_RES_TARGET_BITRATE=""
|
||||||
RTSP_LOW_RES_ENC_PARAMETER=""
|
RTSP_LOW_RES_ENC_PARAMETER=""
|
||||||
|
|
||||||
|
RTSP_AUTH_DISABLE="false"
|
||||||
|
|
||||||
#####RTMP STREAMING#####
|
#####RTMP STREAMING#####
|
||||||
#### REQUIRES RTSP ####
|
#### REQUIRES RTSP ####
|
||||||
### AND RTSP AUDIO ###
|
### AND RTSP AUDIO ###
|
||||||
@ -93,12 +95,14 @@ DISABLE_MOTOR="false"
|
|||||||
ENABLE_FSCK_ON_BOOT="false"
|
ENABLE_FSCK_ON_BOOT="false"
|
||||||
ENABLE_CAR_DRIVER="false"
|
ENABLE_CAR_DRIVER="false"
|
||||||
ENABLE_LOCAL_DNS="false"
|
ENABLE_LOCAL_DNS="false"
|
||||||
|
ENABLE_CRONTAB="false"
|
||||||
|
|
||||||
#####DEBUG#####
|
#####DEBUG#####
|
||||||
#drops you to a shell via serial, doesn't load app_init.sh
|
#drops you to a shell via serial, doesn't load app_init.sh
|
||||||
DEBUG_ENABLED="false"
|
DEBUG_ENABLED="false"
|
||||||
DEBUG_INITRAMFS_ENABLED="false"
|
DEBUG_INITRAMFS_ENABLED="false"
|
||||||
DEBUG_PASSWORD="false"
|
DEBUG_PASSWORD="false"
|
||||||
|
ENABLE_SYSLOG_SAVE="false"
|
||||||
|
|
||||||
####WEB####
|
####WEB####
|
||||||
WEB_SERVER_ENABLED="false"
|
WEB_SERVER_ENABLED="false"
|
||||||
|
64
file.chk
64
file.chk
@ -21,21 +21,63 @@ e344ffc55222c029c5d324037a5aa1f3 SD_ROOT/wz_mini/www/car/car.js
|
|||||||
540acfdf2638c341e1d168f1af5203de SD_ROOT/wz_mini/www/car/car.css
|
540acfdf2638c341e1d168f1af5203de SD_ROOT/wz_mini/www/car/car.css
|
||||||
63b23f78d6703f0c9a2e970604104996 SD_ROOT/wz_mini/www/car/car.html
|
63b23f78d6703f0c9a2e970604104996 SD_ROOT/wz_mini/www/car/car.html
|
||||||
bd11d9a8352eca6a16554c87be50b2f5 SD_ROOT/wz_mini/www/index.html
|
bd11d9a8352eca6a16554c87be50b2f5 SD_ROOT/wz_mini/www/index.html
|
||||||
|
ad5cdda7609e706adb152c0c05e4133e SD_ROOT/wz_mini/etc/network.d/S16rtmp
|
||||||
|
a09fe94aa6f18319db58947a1f252c3f SD_ROOT/wz_mini/etc/network.d/S09dnsmasq
|
||||||
|
b77697b15e4d6e32e6e2c8c07cbceee2 SD_ROOT/wz_mini/etc/network.d/S04wireguard
|
||||||
|
8951687f507171ad88e79ad29aba4388 SD_ROOT/wz_mini/etc/network.d/S12remoteaccessory
|
||||||
|
5a3469d5e53cac8d59a0fb2feffaa9e3 SD_ROOT/wz_mini/etc/network.d/S15v4l2rtspserver
|
||||||
|
d3ac671f88b6d639926b9f5f9a40da6e SD_ROOT/wz_mini/etc/network.d/S01wlanhw
|
||||||
|
6621e94ec289678afff70a2b51b42f77 SD_ROOT/wz_mini/etc/network.d/S10httpd
|
||||||
|
9969970dc82daa31b41730ee460514b0 SD_ROOT/wz_mini/etc/network.d/S03ipv6
|
||||||
|
edebe65d895650235f05291618814ebe SD_ROOT/wz_mini/etc/network.d/S08hostname
|
||||||
|
9f59e3c2c3a4c9b6600eb5385e29720c SD_ROOT/wz_mini/etc/network.d/S14storemac
|
||||||
32373fa3531a11c1aad41d12830b9c04 SD_ROOT/wz_mini/etc/dnsmasq.conf
|
32373fa3531a11c1aad41d12830b9c04 SD_ROOT/wz_mini/etc/dnsmasq.conf
|
||||||
34c6a4c3a941ff2becd9f487826d7692 SD_ROOT/wz_mini/etc/uvc.config
|
34c6a4c3a941ff2becd9f487826d7692 SD_ROOT/wz_mini/etc/uvc.config
|
||||||
ad7d1a2f9db3079617731b5854ce3b6a SD_ROOT/wz_mini/etc/init.d/wz_cam.sh
|
071acd61334923a9a3e5b799e012697e SD_ROOT/wz_mini/etc/init.d/S09firstboot
|
||||||
f97ffcb1482d564bf2557684a4c68846 SD_ROOT/wz_mini/etc/init.d/wz_init.sh
|
d59a0e8db7cec700c7ce4e7b2882e25e SD_ROOT/wz_mini/etc/init.d/S11configbackup
|
||||||
4a423cfe7bd91090480da83b85a248b9 SD_ROOT/wz_mini/etc/init.d/wz_user.sh
|
1b4037ffff5b86b31939ef20f2ec2a2c SD_ROOT/wz_mini/etc/init.d/S10kmod
|
||||||
4eaf541a47e60035992435b115463541 SD_ROOT/wz_mini/etc/init.d/wz_post.sh
|
0e868d15fb8b09915975bab48f5a78f2 SD_ROOT/wz_mini/etc/init.d/S06car
|
||||||
|
5e27d90e6888f9665da2fb442ebd500c SD_ROOT/wz_mini/etc/init.d/S08passwd
|
||||||
|
8d9b5da920bf9c739517de3843631334 SD_ROOT/wz_mini/etc/init.d/S12ssh
|
||||||
|
b947e5bcb9cccaaf7d970f03732fab67 SD_ROOT/wz_mini/etc/init.d/S05mount
|
||||||
|
0113d8e9beb7d393c61959889193ba0e SD_ROOT/wz_mini/etc/init.d/S01bind
|
||||||
|
74f398e735e66f91bb5ff1ea42c3760d SD_ROOT/wz_mini/etc/init.d/S03busybox
|
||||||
|
a27d4a0dd6582ae51db92c35cf396ac3 SD_ROOT/wz_mini/etc/init.d/wz_init.sh
|
||||||
|
93ac3cc23a532f73921244aa61b62362 SD_ROOT/wz_mini/etc/init.d/S16factorycheck
|
||||||
|
c457995a14d408c18bf03c6b0d613b58 SD_ROOT/wz_mini/etc/init.d/S04model
|
||||||
|
df3911f5443239982e184af022a15815 SD_ROOT/wz_mini/etc/init.d/S14terminfo
|
||||||
|
9427dddfbba0d1f3931ee8fcb1f22347 SD_ROOT/wz_mini/etc/init.d/S07inject
|
||||||
|
ce899168f0a576809238b338dec6a666 SD_ROOT/wz_mini/etc/init.d/S02tmpfs
|
||||||
e3034eac02d8eda9902ca9cf89f0a586 SD_ROOT/wz_mini/etc/inittab
|
e3034eac02d8eda9902ca9cf89f0a586 SD_ROOT/wz_mini/etc/inittab
|
||||||
840aa9c26726201f7cffbf001bee193a SD_ROOT/wz_mini/etc/uvc_jxf22.config
|
840aa9c26726201f7cffbf001bee193a SD_ROOT/wz_mini/etc/uvc_jxf22.config
|
||||||
d41d8cd98f00b204e9800998ecf8427e SD_ROOT/wz_mini/etc/rc.local.d/.gitignore
|
d41d8cd98f00b204e9800998ecf8427e SD_ROOT/wz_mini/etc/rc.local.d/.gitignore
|
||||||
ac436b39b69f26fb65e993c2dfefb421 SD_ROOT/wz_mini/etc/wz_mini.conf.dist
|
99a800721bfe8a1b0e98f039175c12fd SD_ROOT/wz_mini/etc/wz_mini.conf.dist
|
||||||
4291fb00ec609b5b007ff9b3048e9248 SD_ROOT/wz_mini/etc/hosts
|
4291fb00ec609b5b007ff9b3048e9248 SD_ROOT/wz_mini/etc/hosts
|
||||||
|
b23d0f3527ce4a13419981af52a449a2 SD_ROOT/wz_mini/etc/rc.common
|
||||||
8b5e58acfcbb20034dc4873a08b45fd9 SD_ROOT/wz_mini/etc/profile
|
8b5e58acfcbb20034dc4873a08b45fd9 SD_ROOT/wz_mini/etc/profile
|
||||||
|
574a0198606cf3a2255843cd1ed7860a SD_ROOT/wz_mini/etc/cron/root
|
||||||
2c2df1b9cb603f9c31c46162d6ac307f SD_ROOT/wz_mini/etc/alsa/alsa.conf
|
2c2df1b9cb603f9c31c46162d6ac307f SD_ROOT/wz_mini/etc/alsa/alsa.conf
|
||||||
|
482483f68e5f41e0c3792b2e77fc1028 SD_ROOT/wz_mini/etc/rc.d/S18fps
|
||||||
|
80650d58c240c642295448a72a49ad45 SD_ROOT/wz_mini/etc/rc.d/K01network
|
||||||
|
ca8d8d8a60b3dc255133151ba33e0eb3 SD_ROOT/wz_mini/etc/rc.d/S17motor
|
||||||
|
03ca145794cedfe4748692dd6341839e SD_ROOT/wz_mini/etc/rc.d/S10firmware
|
||||||
|
5e81ec81999790b247ef2af25cc34cb6 SD_ROOT/wz_mini/etc/rc.d/K03rcd
|
||||||
|
ebfa49291afc96c4dd306101b7dec31c SD_ROOT/wz_mini/etc/rc.d/K02webcam
|
||||||
|
60d4ae31b12857888ae1643c89ef3a53 SD_ROOT/wz_mini/etc/rc.d/S07bonding
|
||||||
|
de825dae173ec43983d6ffa1a293060e SD_ROOT/wz_mini/etc/rc.d/S06networkalt
|
||||||
|
10908c95aa008ffa6ae53c6583d16ad2 SD_ROOT/wz_mini/etc/rc.d/S14nightdrop
|
||||||
|
264bd2ac40adf4c24c081b53f9763996 SD_ROOT/wz_mini/etc/rc.d/S03ethernet
|
||||||
|
282e4e0ce3be2740403466bea0c380d9 SD_ROOT/wz_mini/etc/rc.d/S20cron
|
||||||
|
c64a9651df819401b04708736c29cf30 SD_ROOT/wz_mini/etc/rc.d/S13mp4write
|
||||||
|
28ddd36f07b39500630eccd16d9938aa SD_ROOT/wz_mini/etc/rc.d/S05rndis
|
||||||
|
8cd393bb2cda585061961dba143ae2bd SD_ROOT/wz_mini/etc/rc.d/S01swap
|
||||||
|
17ab0c2db34671e4dcc05cc4e6b440ee SD_ROOT/wz_mini/etc/rc.d/K15logging
|
||||||
|
55dfb3a95dec09663df5ae9da8e7a602 SD_ROOT/wz_mini/etc/rc.d/S21syslog
|
||||||
|
e76b57b067bc349fd3e977447b0316f4 SD_ROOT/wz_mini/etc/rc.d/S04usbdirect
|
||||||
|
70e289c992f46d69954f72b7550b9876 SD_ROOT/wz_mini/etc/rc.d/S09coredump
|
||||||
9e5591da95042bcca910403bde25dc60 SD_ROOT/wz_mini/etc/fstab
|
9e5591da95042bcca910403bde25dc60 SD_ROOT/wz_mini/etc/fstab
|
||||||
3962900301ef8743c68e42ecef4d2811 SD_ROOT/wz_mini/etc/passwd
|
3962900301ef8743c68e42ecef4d2811 SD_ROOT/wz_mini/etc/passwd
|
||||||
|
775b92a2052189e3e407cbceb548cae7 SD_ROOT/wz_mini/etc/rc.local
|
||||||
c838ac76efbe3d3fc3c4805789a6519f SD_ROOT/wz_mini/etc/uvc_jxf23.config
|
c838ac76efbe3d3fc3c4805789a6519f SD_ROOT/wz_mini/etc/uvc_jxf23.config
|
||||||
9dafc0f6aa1ea4f8e7ccf0caafd5e28d SD_ROOT/wz_mini/etc/resolv.dnsmasq
|
9dafc0f6aa1ea4f8e7ccf0caafd5e28d SD_ROOT/wz_mini/etc/resolv.dnsmasq
|
||||||
d41d8cd98f00b204e9800998ecf8427e SD_ROOT/wz_mini/etc/configs/.gitignore
|
d41d8cd98f00b204e9800998ecf8427e SD_ROOT/wz_mini/etc/configs/.gitignore
|
||||||
@ -86,7 +128,7 @@ e6a6a9dd8ce138686083a3d4303cea40 SD_ROOT/wz_mini/bin/iperf3
|
|||||||
79d69cd251a8cdadd9957cdaec2034fc SD_ROOT/wz_mini/bin/rtmp-stream.sh
|
79d69cd251a8cdadd9957cdaec2034fc SD_ROOT/wz_mini/bin/rtmp-stream.sh
|
||||||
5d1359af0c7c5d326b8682a62f910620 SD_ROOT/wz_mini/bin/strace
|
5d1359af0c7c5d326b8682a62f910620 SD_ROOT/wz_mini/bin/strace
|
||||||
516118bfcc0f0ddc93fb9339b3c6a315 SD_ROOT/wz_mini/bin/xtables-multi
|
516118bfcc0f0ddc93fb9339b3c6a315 SD_ROOT/wz_mini/bin/xtables-multi
|
||||||
9be9aab45620d83fecc8b963954cf4f1 SD_ROOT/wz_mini/bin/gather_wz_logs.sh
|
ba7475184c364fee8bba1f45b7c42070 SD_ROOT/wz_mini/bin/gather_wz_logs.sh
|
||||||
097cd91a56f2b0caea1dd87ae0e51a54 SD_ROOT/wz_mini/bin/screen
|
097cd91a56f2b0caea1dd87ae0e51a54 SD_ROOT/wz_mini/bin/screen
|
||||||
fbbc2a8f362d05fc31557b1a534b42c6 SD_ROOT/wz_mini/bin/wget
|
fbbc2a8f362d05fc31557b1a534b42c6 SD_ROOT/wz_mini/bin/wget
|
||||||
35420095a770c9bb6177788842f55bba SD_ROOT/wz_mini/bin/dropbearconvert
|
35420095a770c9bb6177788842f55bba SD_ROOT/wz_mini/bin/dropbearconvert
|
||||||
@ -105,14 +147,16 @@ eaf86f91cb1b15b2191a8845ae88e3c8 SD_ROOT/wz_mini/usr/share/audio/init_v2.wav
|
|||||||
02fed0e4b2382d839f630ce0477aba26 SD_ROOT/wz_mini/usr/share/audio/init.wav
|
02fed0e4b2382d839f630ce0477aba26 SD_ROOT/wz_mini/usr/share/audio/init.wav
|
||||||
5754f767c1334df202983aed2a20a050 SD_ROOT/wz_mini/usr/share/audio/binbin_v3.wav
|
5754f767c1334df202983aed2a20a050 SD_ROOT/wz_mini/usr/share/audio/binbin_v3.wav
|
||||||
6e01838f67f7e6e51a6891e1c411318a SD_ROOT/wz_mini/usr/share/audio/honk.wav
|
6e01838f67f7e6e51a6891e1c411318a SD_ROOT/wz_mini/usr/share/audio/honk.wav
|
||||||
|
71b26aa98e14c4a1f5798b3e3a2d9bab SD_ROOT/wz_mini/usr/bin/restart_wlan0.sh
|
||||||
ac9f3a5d097d25d5d972c3d2ad288df9 SD_ROOT/wz_mini/usr/bin/ucamera_v2
|
ac9f3a5d097d25d5d972c3d2ad288df9 SD_ROOT/wz_mini/usr/bin/ucamera_v2
|
||||||
7626ba23cc36b88491b010dd6eff72de SD_ROOT/wz_mini/usr/bin/iCamera
|
7626ba23cc36b88491b010dd6eff72de SD_ROOT/wz_mini/usr/bin/iCamera
|
||||||
1e64fdad40c82ecce420f71701ec3d6d SD_ROOT/wz_mini/usr/bin/watch_up.sh
|
1e64fdad40c82ecce420f71701ec3d6d SD_ROOT/wz_mini/usr/bin/watch_up.sh
|
||||||
b339aee882a5d1c943ad08e4282ec3fd SD_ROOT/wz_mini/usr/bin/iCamera-dbg
|
b339aee882a5d1c943ad08e4282ec3fd SD_ROOT/wz_mini/usr/bin/iCamera-dbg
|
||||||
0de553a920d30d1e9d84c9ab4136df0d SD_ROOT/wz_mini/usr/bin/ucamera
|
20b061689308b2cee7edf3b9b906bca7 SD_ROOT/wz_mini/usr/bin/ucamera
|
||||||
3777d9e80c8b517c01a124e6360b6525 SD_ROOT/wz_mini/usr/bin/imp_helper.sh
|
071b974925501c4b83f2dd546d90febd SD_ROOT/wz_mini/usr/bin/netmon.sh
|
||||||
|
3e15a736b79854c35abb7fd4f7207064 SD_ROOT/wz_mini/usr/bin/imp_helper.sh
|
||||||
580b1b6e91e72b4a4fef7b21d8954403 SD_ROOT/wz_mini/usr/bin/getSensorType
|
580b1b6e91e72b4a4fef7b21d8954403 SD_ROOT/wz_mini/usr/bin/getSensorType
|
||||||
bd20117feddea81a3db3bb4471a088db SD_ROOT/wz_mini/usr/bin/app.ver
|
9f367ddd445aa9645d99e7467a5ce5e0 SD_ROOT/wz_mini/usr/bin/app.ver
|
||||||
4c780f0455481d106d47d89f0ae04ed5 SD_ROOT/wz_mini/lib/uClibc.tar
|
4c780f0455481d106d47d89f0ae04ed5 SD_ROOT/wz_mini/lib/uClibc.tar
|
||||||
9afeb088e4cbabbe0b04033b560204d0 SD_ROOT/wz_mini/lib/libimp.so
|
9afeb088e4cbabbe0b04033b560204d0 SD_ROOT/wz_mini/lib/libimp.so
|
||||||
4100755cb6cc6e3b76da20c7e3690e16 SD_ROOT/wz_mini/lib/libalog.so
|
4100755cb6cc6e3b76da20c7e3690e16 SD_ROOT/wz_mini/lib/libalog.so
|
||||||
@ -261,7 +305,7 @@ c6a2e765996b4a8bfe351757785fb989 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan
|
|||||||
14865a6e2e2df87a8362c6f20377a934 SD_ROOT/wz_mini/lib/libtinyalsa.so.2
|
14865a6e2e2df87a8362c6f20377a934 SD_ROOT/wz_mini/lib/libtinyalsa.so.2
|
||||||
bd383994491e4bdca81788c168feb2eb SD_ROOT/wz_mini/lib/libasound.so.2
|
bd383994491e4bdca81788c168feb2eb SD_ROOT/wz_mini/lib/libasound.so.2
|
||||||
f6f0d5a9ebd916de6bdb9695067809ae SD_ROOT/wz_mini/lib/libaudioProcess.so
|
f6f0d5a9ebd916de6bdb9695067809ae SD_ROOT/wz_mini/lib/libaudioProcess.so
|
||||||
ac436b39b69f26fb65e993c2dfefb421 SD_ROOT/wz_mini/wz_mini.conf
|
99a800721bfe8a1b0e98f039175c12fd SD_ROOT/wz_mini/wz_mini.conf
|
||||||
d41d8cd98f00b204e9800998ecf8427e SD_ROOT/wz_mini/tmp/.gitignore
|
d41d8cd98f00b204e9800998ecf8427e SD_ROOT/wz_mini/tmp/.gitignore
|
||||||
283fca97d62c1c199eb2b04877998879 v2_install/compile_image.sh
|
283fca97d62c1c199eb2b04877998879 v2_install/compile_image.sh
|
||||||
53db8da5b90bc9b219dbb1d58e934bda v2_install/fw_tool.sh
|
53db8da5b90bc9b219dbb1d58e934bda v2_install/fw_tool.sh
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# devtmpfs does not get automounted for initramfs
|
|
||||||
|
|
||||||
set -x
|
|
||||||
|
|
||||||
mount -t devtmpfs devtmpfs /dev
|
|
||||||
mount -t proc proc /proc
|
|
||||||
mount -t sysfs sysfs /sys
|
|
||||||
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
mkdir -p /sdcard
|
|
||||||
mount -t vfat /dev/mmcblk0p1 /sdcard -o rw,umask=0000,dmask=0000
|
|
||||||
|
|
||||||
mkdir /v3
|
|
||||||
mount -t squashfs /dev/mtdblock2 /v3
|
|
||||||
|
|
||||||
if [ ! -f /sdcard/wz_mini/etc/init.d/v3_init.sh ]; then
|
|
||||||
|
|
||||||
echo "v3_init not found, booting stock"
|
|
||||||
|
|
||||||
mount --move /dev /v3/dev
|
|
||||||
mount --move /sys /v3/sys
|
|
||||||
mount --move /proc /v3/proc
|
|
||||||
|
|
||||||
umount /sdcard
|
|
||||||
|
|
||||||
exec busybox switch_root /v3 /linuxrc
|
|
||||||
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
mkdir -p /v3/dev
|
|
||||||
mkdir -p /v3/sys
|
|
||||||
|
|
||||||
|
|
||||||
mount --move /dev /v3/dev
|
|
||||||
mount --move /sys /v3/sys
|
|
||||||
mount --move /proc /v3/proc
|
|
||||||
|
|
||||||
#mkdir -p /v3/media/mmc
|
|
||||||
mount --move /sdcard /v3/opt
|
|
||||||
|
|
||||||
#exec busybox switch_root /v3 /linuxrc
|
|
||||||
exec busybox switch_root /v3 /opt/wz_mini/etc/init.d/v3_init.sh
|
|
||||||
|
|
||||||
fi
|
|
@ -1,85 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -x
|
|
||||||
|
|
||||||
# devtmpfs does not get automounted for initramfs
|
|
||||||
mount -t devtmpfs devtmpfs /dev
|
|
||||||
mount -t proc proc /proc
|
|
||||||
mount -t sysfs sysfs /sys
|
|
||||||
|
|
||||||
#Required delay on T20/T31
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "Check for T20 platform"
|
|
||||||
|
|
||||||
if [ -b /dev/mtdblock10 ]; then
|
|
||||||
|
|
||||||
echo "Found T20"
|
|
||||||
|
|
||||||
#T20: Need to export the sd card enable gpio manually
|
|
||||||
echo 43 > /sys/class/gpio/export
|
|
||||||
echo in > /sys/class/gpio/gpio43/direction
|
|
||||||
|
|
||||||
#T20: Insert required delay for sd card init
|
|
||||||
sleep 3
|
|
||||||
|
|
||||||
else
|
|
||||||
echo "Not T20"
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p /sdcard
|
|
||||||
mount -t vfat /dev/mmcblk0p1 /sdcard -o rw,umask=0000,dmask=0000
|
|
||||||
|
|
||||||
initram_init() {
|
|
||||||
|
|
||||||
mkdir /v3
|
|
||||||
mount -t squashfs /dev/mtdblock2 /v3
|
|
||||||
|
|
||||||
if [ ! -f /sdcard/wz_mini/etc/init.d/v3_init.sh ]; then
|
|
||||||
|
|
||||||
echo "wz_mini not found, booting stock"
|
|
||||||
|
|
||||||
mount --move /dev /v3/dev
|
|
||||||
mount --move /sys /v3/sys
|
|
||||||
mount --move /proc /v3/proc
|
|
||||||
|
|
||||||
umount /sdcard
|
|
||||||
|
|
||||||
exec busybox switch_root /v3 /linuxrc
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
echo "Loading wz_mini..."
|
|
||||||
|
|
||||||
mkdir -p /v3/dev
|
|
||||||
mkdir -p /v3/sys
|
|
||||||
|
|
||||||
|
|
||||||
mount --move /dev /v3/dev
|
|
||||||
mount --move /sys /v3/sys
|
|
||||||
mount --move /proc /v3/proc
|
|
||||||
|
|
||||||
#mkdir -p /v3/media/mmc
|
|
||||||
mount --move /sdcard /v3/opt
|
|
||||||
|
|
||||||
#exec busybox switch_root /v3 /linuxrc
|
|
||||||
exec busybox switch_root /v3 /opt/wz_mini/etc/init.d/v3_init.sh
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ -f /sdcard/wz_mini/wz_mini.conf ]; then
|
|
||||||
|
|
||||||
source /sdcard/wz_mini/wz_mini.conf
|
|
||||||
|
|
||||||
if [[ "$DEBUG_INITRAMFS_ENABLED" == "true" ]]; then
|
|
||||||
/bin/sh
|
|
||||||
#exit 0
|
|
||||||
else
|
|
||||||
echo "initramfs debug disabled"
|
|
||||||
initram_init
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
initram_init
|
|
||||||
fi
|
|
Loading…
Reference in New Issue
Block a user