From 7d43095b7252f94c3aa6b64b93243e2ba61bb172 Mon Sep 17 00:00:00 2001 From: Alfonso Gamboa Date: Thu, 16 Jun 2022 23:26:14 -0700 Subject: [PATCH 1/5] change camera model detection --- README.md | 4 +- SD_ROOT/wz_mini/bin/upgrade-run.sh | 46 +++++--------- SD_ROOT/wz_mini/etc/init.d/wz_cam.sh | 17 +---- SD_ROOT/wz_mini/etc/init.d/wz_init.sh | 87 ++++++++++++++------------ SD_ROOT/wz_mini/etc/init.d/wz_post.sh | 20 +++--- SD_ROOT/wz_mini/etc/init.d/wz_user.sh | 59 +++++++++-------- SD_ROOT/wz_mini/usr/bin/upgrade-run.sh | 52 +++++++-------- file.chk | 12 ++-- 8 files changed, 126 insertions(+), 171 deletions(-) diff --git a/README.md b/README.md index 6963c6e..8834ade 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,7 @@ Using this project can potentially expose your device to the open internet depen ## Related Projects: * wz_mini_debian: run full debian in a chroot, on the camera! (coming soon) - -~~* wz_mini_utils: various statically compiled binaries for use with the camera (mipsel)~~ (deprecated, all utils now located in wz_mini/bin) +* ~~wz_mini_utils: various statically compiled binaries for use with the camera (mipsel)~~ (deprecated, all utils now located in wz_mini/bin) ## Features @@ -382,6 +381,7 @@ NOTE: if you are upgrading a V2 camera from a release older than 06-16-22, you m ## Latest Updates +* 06-16-22: Simplified the camera model detection method throughout wz_mini. * 06-16-22: fix scp client bug, allow user modifications to app_init, updated initramfs script, moved upgrade-run to PATH, revised kernel module paths, added ENABLE_RTL8189FS_DRIVER option for v2/v3, updated kernels for v2/v3. ( NOTE: this is a major upgrade, file names for the init scripts have changed, if you are upgrading the V2, do not use the upgrade-run.sh script ) * 06-14-22: Updated v4l2rtspserver, fixes to prevent rare low memory situations and RTSP server crashes, fixed intermittant failed RTSP HD stream, script logic updates. * 06-12-22: Added additional audio variables for tuning in libcallback, various bug fixes in wz_user. Added `gather_wz_logs.sh` script for users to share debug logs. diff --git a/SD_ROOT/wz_mini/bin/upgrade-run.sh b/SD_ROOT/wz_mini/bin/upgrade-run.sh index 919ec53..662d844 100755 --- a/SD_ROOT/wz_mini/bin/upgrade-run.sh +++ b/SD_ROOT/wz_mini/bin/upgrade-run.sh @@ -71,44 +71,26 @@ export WZMINI_CFG=/opt/wz_mini/wz_mini.conf set -x -#WCV3 AUDIO GPIO -GPIO=63 -V2="false" +#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 -#Check model, change GPIO is HL_PAN2 -if [[ "$V2" == "false" ]]; then - mount -t jffs2 /dev/mtdblock6 /configs - if [[ $(cat /configs/.product_config | grep PRODUCT_MODEL) == "PRODUCT_MODEL=HL_PAN2" ]]; then - umount /configs - GPIO=7 - fi +if [ -f /opt/wz_mini/tmp/.T20 ]; then + insmod /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/lib/modules/3.10.14/extra/audio.ko + LD_LIBRARY_PATH='/opt/wz_mini/lib' /opt/wz_mini/bin/audioplay_t20 /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/usr/share/audio/upgrade_mode_v2.wav $AUDIO_PROMPT_VOLUME + rmmod audio else - echo "not HL_PAN2" + insmod /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/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/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/usr/share/audio/upgrade_mode.wav $AUDIO_PROMPT_VOLUME + rmmod audio fi - -#test for v2 -if [ -b /dev/mtdblock9 ]; then - mount -t jffs2 /dev/mtdblock9 /params - if cat /params/config/.product_config | grep WYZEC1-JZ; then - V2="true" - fi -fi - - -if [[ "$V2" == "true" ]]; then - insmod /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/lib/modules/3.10.14/extra/audio.ko - LD_LIBRARY_PATH='/opt/wz_mini/lib' /opt/wz_mini/bin/audioplay_t20 /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/usr/share/audio/upgrade_mode_v2.wav $AUDIO_PROMPT_VOLUME - rmmod audio - else - insmod /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/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/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/usr/share/audio/upgrade_mode.wav $AUDIO_PROMPT_VOLUME - rmmod audio - fi - echo UPGRADE MODE -if [[ "$V2" == "true" ]]; then +if [ -f /opt/wz_mini/tmp/.T20 ]; then echo "Upgrading kernel" flashcp -v /opt/Upgrade/wz_mini_hacks-master/v2_install/v2_kernel.bin /dev/mtd1 fi diff --git a/SD_ROOT/wz_mini/etc/init.d/wz_cam.sh b/SD_ROOT/wz_mini/etc/init.d/wz_cam.sh index eb94b38..3b8c1c3 100755 --- a/SD_ROOT/wz_mini/etc/init.d/wz_cam.sh +++ b/SD_ROOT/wz_mini/etc/init.d/wz_cam.sh @@ -21,22 +21,7 @@ set -x echo "welcome to wz_cam.sh" echo "PID $$" -#test for v2 -v2_test() { - if cat /params/config/.product_config | grep WYZEC1-JZ; then - V2="true" - fi -} - -if mountpoint -q /params; then - echo "params already mounted" - v2_test -else - mount -t jffs2 /dev/mtdblock9 /params - v2_test -fi - -if [ "$V2" == "false" ]; then + if [ -f /opt/wz_mini/tmp/.T31 ]; then cp /opt/wz_mini/etc/uvc.config /opt/wz_mini/usr/bin/uvc.config diff --git a/SD_ROOT/wz_mini/etc/init.d/wz_init.sh b/SD_ROOT/wz_mini/etc/init.d/wz_init.sh index 8967091..1d5cf42 100755 --- a/SD_ROOT/wz_mini/etc/init.d/wz_init.sh +++ b/SD_ROOT/wz_mini/etc/init.d/wz_init.sh @@ -36,40 +36,59 @@ echo ' set -x -#WCV3 AUDIO GPIO -GPIO=63 -V2="false" - #replace stock busybox mount --bind /opt/wz_mini/bin/busybox /bin/busybox -#test for v2 +echo "replace stock fstab" +mount --bind /opt/wz_mini/etc/fstab /etc/fstab + +echo "mount workplace dir" +mount -t tmpfs /opt/wz_mini/tmp + +echo "install busybox applets" +mkdir /opt/wz_mini/tmp/.bin +/opt/wz_mini/bin/busybox --install -s /opt/wz_mini/tmp/.bin + +##DETECT CAMERA MODEL & PLATFORM TYPE +#V2=WYZEC1-JZ +#PANv1=WYZECP1_JEF +#PANv2=HL_PAN2 +#V3=WYZE_CAKP2JFUS +#DB3=WYZEDB3 + +#mtdblock9 only exists on the T20 platform, indicating V2 or PANv1 if [ -b /dev/mtdblock9 ]; then - mount -t jffs2 /dev/mtdblock9 /params - if cat /params/config/.product_config | grep WYZEC1-JZ; then - V2="true" - fi + 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 -#Check model, change GPIO is HL_PAN2 -if [[ "$V2" == "false" ]]; then - mount -t jffs2 /dev/mtdblock6 /configs - if [[ $(cat /configs/.product_config | grep PRODUCT_MODEL) == "PRODUCT_MODEL=HL_PAN2" ]]; then - umount /configs - GPIO=7 - fi -else - echo "not HL_PAN2" +#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 +if [ -e /opt/wz_mini/etc/.first_boot ]; then echo "first boot already completed" else echo "first boot, initializing" - if [[ "$V2" == "true" ]]; then - insmod /opt/wz_mini/lib/modules/3.10.14/extra/audio.ko + 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 - rmmod audio 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 @@ -88,25 +107,13 @@ echo "mounting tmpfs" mount -t tmpfs /tmp echo "mount system to replace factorycheck with dummy, to prevent bind unmount" -if [[ ! "$V2" == "true" ]]; then +if [ -f /opt/wz_mini/tmp/.T31 ]; then mount /dev/mtdblock3 /system mount --bind /opt/wz_mini/bin/factorycheck /system/bin/factorycheck -else - echo "v2 doesn't need factorycheck" fi touch /tmp/usrflag -echo "replace stock fstab" -mount --bind /opt/wz_mini/etc/fstab /etc/fstab - -echo "mount workplace dir" -mount -t tmpfs /opt/wz_mini/tmp - -echo "install busybox applets" -mkdir /opt/wz_mini/tmp/.bin -/opt/wz_mini/bin/busybox --install -s /opt/wz_mini/tmp/.bin - echo "create workspace directory" mkdir /opt/wz_mini/tmp/.storage @@ -124,7 +131,7 @@ sed -i '/system\/\lib/s/$/:\/opt\/wz_mini\/lib/' /opt/wz_mini/tmp/.storage/rcS #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 [[ "$V2" == "true" ]]; then +if [ -f /opt/wz_mini/tmp/.T20 ]; then mount -t jffs2 /dev/mtdblock4 /system fi @@ -147,10 +154,8 @@ mount --bind /opt/wz_mini/tmp/.storage/shadow /etc/shadow chmod 400 /etc/shadow if [[ -e /opt/wz_mini/swap.gz ]]; then - if [[ "$V2" == "true" ]]; then - insmod /opt/wz_mini/lib/modules/3.10.14/extra/audio.ko + 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 - rmmod audio 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 @@ -161,10 +166,10 @@ if [[ -e /opt/wz_mini/swap.gz ]]; then mkswap /opt/wz_mini/swap sync;echo 3 > /proc/sys/vm/drop_caches else - echo "swap archive not present, not extracting" + echo "swap archive missing, not extracting" fi -if [[ -d /opt/wz_mini/usr/share/terminfo ]]; then +if [ -d /opt/wz_mini/usr/share/terminfo ]; then echo "terminfo already present" else echo "terminfo not present, extract" diff --git a/SD_ROOT/wz_mini/etc/init.d/wz_post.sh b/SD_ROOT/wz_mini/etc/init.d/wz_post.sh index d5ddbe1..d2406e3 100755 --- a/SD_ROOT/wz_mini/etc/init.d/wz_post.sh +++ b/SD_ROOT/wz_mini/etc/init.d/wz_post.sh @@ -16,7 +16,7 @@ exec 1> $LOG_NAME.log 2>&1 set -x -if [[ -e /tmp/dbgflag ]];then +if [ -e /tmp/dbgflag ];then echo "debug mode, disabled" exit 0 fi @@ -40,20 +40,14 @@ if [ -d /lib/modules ]; then mount --bind /opt/wz_mini/lib/modules /lib/modules fi -if [ -f /params/config/.product_config ]; then - if cat /params/config/.product_config | grep WYZEC1-JZ; then - V2="true" - fi -fi - ## REPLACE STOCK MODULES if [[ "$ENABLE_RTL8189FS_DRIVER" == "true" ]]; then - #V2/V3 ONLY + #V2/V3 ONLY [DB3 untested] echo "Enable RTL8189FS" - if [[ "$V2" == "true" ]]; then + 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/g' /opt/wz_mini/tmp/.storage/app_init.sh - else + 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/g' /opt/wz_mini/tmp/.storage/app_init.sh fi fi @@ -62,7 +56,7 @@ 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 [[ "$V2" == "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 @@ -70,7 +64,7 @@ if [[ "$RTSP_HI_RES_ENABLED" == "true" ]] || [[ "$RTSP_LOW_RES_ENABLED" == "tru 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 [[ "$V2" == "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 @@ -78,7 +72,7 @@ if [[ "$RTSP_HI_RES_ENABLED" == "true" ]] || [[ "$RTSP_LOW_RES_ENABLED" == "tru 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 [[ "$V2" == "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 diff --git a/SD_ROOT/wz_mini/etc/init.d/wz_user.sh b/SD_ROOT/wz_mini/etc/init.d/wz_user.sh index 61947c8..58d56ed 100755 --- a/SD_ROOT/wz_mini/etc/init.d/wz_user.sh +++ b/SD_ROOT/wz_mini/etc/init.d/wz_user.sh @@ -33,7 +33,7 @@ hostname_set() { } first_run_check() { - if [[ -e /opt/wz_mini/tmp/.wz_user_firstrun ]]; then + if [ -e /opt/wz_mini/tmp/.wz_user_firstrun ]; then echo "wz_user.sh already run once, exit." exit 0 fi @@ -76,7 +76,7 @@ eth_wlan_up() { ifconfig wlan0 up pkill udhcpc udhcpc -i wlan0 -x hostname:$HOSTNAME -p /var/run/udhcpc.pid -b - if [[ "$V2" == "true" ]]; then + 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 @@ -86,7 +86,7 @@ eth_wlan_up() { wpa_check() { #Check if wpa_supplicant has been created by iCamera - if [[ -e /tmp/wpa_supplicant.conf ]]; then + if [ -e /tmp/wpa_supplicant.conf ]; then echo "wpa_supplicant.conf ready" wlanold_check $1 else @@ -103,7 +103,7 @@ wpa_check() { wlanold_check() { #Have we renamed interfaces yet? - if [[ -d /sys/class/net/wlanold ]]; then + if [ -d /sys/class/net/wlanold ]; then echo "wlanold exist" eth_wlan_up else @@ -123,7 +123,7 @@ netloop() { } swap_enable() { - if [[ -e /opt/wz_mini/swap ]]; then + if [ -e /opt/wz_mini/swap ]; then echo "Swap file exists" if cat /proc/swaps | grep "mini" ; then echo "Swap is already enabled" @@ -165,12 +165,11 @@ done first_run_check wait_wlan -if cat /params/config/.product_config | grep WYZEC1-JZ; then -V2="true" -KMOD_PATH="/opt/wz_mini/lib/modules/3.10.14" +#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 -V2="false" -KMOD_PATH="/opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__" + KMOD_PATH="/opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__" fi swap_enable @@ -193,8 +192,8 @@ else fi if [[ "$ENABLE_IPTABLES" == "true" ]]; then - if [[ "$V2" == "true" ]]; then - echo "v2 has iptables built in" + if [ -f /opt/wz_mini/tmp/.T20 ]; then + echo "T20 has iptables built in" else insmod /lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/x_tables.ko insmod /lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/ip_tables.ko @@ -236,7 +235,7 @@ if [[ "$ENABLE_USB_DIRECT" == "true" ]]; then HOST_MACADDR=$(echo "$HOSTNAME"|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/') - if [[ "$V2" == "true" ]]; then + 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 @@ -252,7 +251,7 @@ if [[ "$ENABLE_USB_DIRECT" == "true" ]]; then insmod $KMOD_PATH/kernel/drivers/usb/gadget/libcomposite.ko - if [[ "$V2" == "false" ]]; then + 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 @@ -341,7 +340,7 @@ else fi if [[ "$ENABLE_EXT4" == "true" ]]; then - if [[ "$V2" == "true" ]]; then + if [ -f /opt/wz_mini/tmp/.T20 ]; then insmod $KMOD_PATH/kernel/lib/crc16.ko fi @@ -370,8 +369,8 @@ else fi if [[ "$ENABLE_MP4_WRITE" == "true" ]]; then - if [[ "$V2" == "true" ]]; then - echo "mp4_write is not supported on v2" + 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" @@ -382,7 +381,7 @@ fi if [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then - if [[ "$V2" == "true" ]]; then + if [ -f /opt/wz_mini/tmp/.T20 ]; then HI_VIDEO_DEV="/dev/video6" else HI_VIDEO_DEV="/dev/video1" @@ -407,7 +406,7 @@ if [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then fi if [[ "$RTSP_HI_RES_ENC_PARAMETER" != "" ]]; then - if [[ "$V2" == "true" ]]; then + if [ -f /opt/wz_mini/tmp/.T20 ]; then if [[ $RTSP_HI_RES_ENC_PARAMETER =~ "^[0|1|2|4|8]$" ]]; then watch -n30 -t "/system/bin/impdbg --enc_rc_s 0:0:4:$RTSP_HI_RES_ENC_PARAMETER" > /dev/null 2>&1 & sleep 5 @@ -425,7 +424,7 @@ if [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then fi if [[ "$RTSP_HI_RES_MAX_BITRATE" != "" ]]; then - if [[ "$V2" == "true" ]]; then + if [ -f /opt/wz_mini/tmp/.T20 ]; then watch -n30 -t "/system/bin/impdbg --enc_rc_s 0:28:4:$RTSP_HI_RES_MAX_BITRATE" > /dev/null 2>&1 & sleep 5 else @@ -435,8 +434,8 @@ if [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then fi if [[ "$RTSP_HI_RES_TARGET_BITRATE" != "" ]]; then - if [[ "$V2" == "true" ]]; then - echo "not supported on v2" + if [ -f /opt/wz_mini/tmp/.T20 ]; then + echo "not supported on T20" else watch -n30 -t "/system/bin/impdbg --enc_rc_s 0:48:4:$RTSP_HI_RES_TARGET_BITRATE" > /dev/null 2>&1 & sleep 5 @@ -444,7 +443,7 @@ if [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then fi if [[ "$RTSP_HI_RES_FPS" != "" ]]; then - if [[ "$V2" == "true" ]]; then + if [ -f /opt/wz_mini/tmp/.T20 ]; then watch -n30 -t "/system/bin/impdbg --enc_rc_s 0:8:4:$RTSP_HI_RES_FPS" > /dev/null 2>&1 & sleep 5 else @@ -461,7 +460,7 @@ fi if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]; then - if [[ "$V2" == "true" ]]; then + if [ -f /opt/wz_mini/tmp/.T20 ]; then LOW_VIDEO_DEV="/dev/video7" else LOW_VIDEO_DEV="/dev/video2" @@ -486,7 +485,7 @@ if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]; then fi if [[ "$RTSP_LOW_RES_ENC_PARAMETER" != "" ]]; then - if [[ "$V2" == "true" ]]; then + if [ -f /opt/wz_mini/tmp/.T20 ]; then if [[ $RTSP_LOW_RES_ENC_PARAMETER =~ "^[0|1|2|4|8]$" ]]; then watch -n30 -t "/system/bin/impdbg --enc_rc_s 1:0:4:$RTSP_LOW_RES_ENC_PARAMETER" > /dev/null 2>&1 & sleep 5 @@ -503,7 +502,7 @@ if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]; then fi if [[ "$RTSP_LOW_RES_MAX_BITRATE" != "" ]]; then - if [[ "$V2" == "true" ]]; then + if [ -f /opt/wz_mini/tmp/.T20 ]; then watch -n30 -t "/system/bin/impdbg --enc_rc_s 1:28:4:$RTSP_LOW_RES_MAX_BITRATE" > /dev/null 2>&1 & sleep 5 else @@ -512,15 +511,15 @@ if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]; then fi if [[ "$RTSP_LOW_RES_TARGET_BITRATE" != "" ]]; then - if [[ "$V2" == "true" ]]; then - echo "not supported on v2" + if [ -f /opt/wz_mini/tmp/.T20 ]; then + echo "not supported on T20" else watch -n30 -t "/system/bin/impdbg --enc_rc_s 1:48:4:$RTSP_LOW_RES_TARGET_BITRATE" > /dev/null 2>&1 & fi fi if [[ "$RTSP_LOW_RES_FPS" != "" ]]; then - if [[ "$V2" == "true" ]]; then + if [ -f /opt/wz_mini/tmp/.T20 ]; then watch -n30 -t "/system/bin/impdbg --enc_rc_s 1:8:4:$RTSP_LOW_RES_FPS" > /dev/null 2>&1 & sleep 5 else @@ -552,7 +551,7 @@ 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 when something crashes +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 diff --git a/SD_ROOT/wz_mini/usr/bin/upgrade-run.sh b/SD_ROOT/wz_mini/usr/bin/upgrade-run.sh index 8cf45f5..662d844 100755 --- a/SD_ROOT/wz_mini/usr/bin/upgrade-run.sh +++ b/SD_ROOT/wz_mini/usr/bin/upgrade-run.sh @@ -44,6 +44,9 @@ fi install_upgrade_script() { echo "Installing latest upgrade-script" cp /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/bin/upgrade-run.sh /opt/wz_mini/bin/upgrade-run.sh + +sleep 5 + /opt/wz_mini/bin/upgrade-run.sh backup_begin } @@ -68,43 +71,30 @@ export WZMINI_CFG=/opt/wz_mini/wz_mini.conf set -x -#WCV3 AUDIO GPIO -GPIO=63 -V2="false" +#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 -#Check model, change GPIO is HL_PAN2 -if [[ "$V2" == "false" ]]; then - mount -t jffs2 /dev/mtdblock6 /configs - if [[ $(cat /configs/.product_config | grep PRODUCT_MODEL) == "PRODUCT_MODEL=HL_PAN2" ]]; then - umount /configs - GPIO=7 - fi +if [ -f /opt/wz_mini/tmp/.T20 ]; then + insmod /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/lib/modules/3.10.14/extra/audio.ko + LD_LIBRARY_PATH='/opt/wz_mini/lib' /opt/wz_mini/bin/audioplay_t20 /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/usr/share/audio/upgrade_mode_v2.wav $AUDIO_PROMPT_VOLUME + rmmod audio else - echo "not HL_PAN2" + insmod /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/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/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/usr/share/audio/upgrade_mode.wav $AUDIO_PROMPT_VOLUME + rmmod audio fi - -#test for v2 -if [ -b /dev/mtdblock9 ]; then - mount -t jffs2 /dev/mtdblock9 /params - if cat /params/config/.product_config | grep WYZEC1-JZ; then - V2="true" - fi -fi - - -if [[ "$V2" == "true" ]]; then - insmod /opt/wz_mini/lib/modules/3.10.14/kernel/audio.ko - LD_LIBRARY_PATH='/opt/wz_mini/lib' /opt/wz_mini/bin/audioplay_t20 /opt/wz_mini/usr/share/audio/upgrade_mode_v2.wav $AUDIO_PROMPT_VOLUME - rmmod audio - else - insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/audio.ko spk_gpio=$GPIO alc_mode=0 mic_gain=0 - /opt/wz_mini/bin/audioplay_t31 /opt/wz_mini/usr/share/audio/upgrade_mode.wav $AUDIO_PROMPT_VOLUME - rmmod audio - fi - echo UPGRADE MODE +if [ -f /opt/wz_mini/tmp/.T20 ]; then + echo "Upgrading kernel" + flashcp -v /opt/Upgrade/wz_mini_hacks-master/v2_install/v2_kernel.bin /dev/mtd1 +fi + umount -l /opt/wz_mini/tmp ls -l /opt/wz_mini/ rm -rf /opt/wz_mini/* diff --git a/file.chk b/file.chk index 2febea5..0dc1a96 100644 --- a/file.chk +++ b/file.chk @@ -1,10 +1,10 @@ 72349f3e54a44146d63dc775d37045b1 SD_ROOT/factory_t31_ZMC6tiIDQN d41d8cd98f00b204e9800998ecf8427e SD_ROOT/wz_mini/mnt/.gitignore 34c6a4c3a941ff2becd9f487826d7692 SD_ROOT/wz_mini/etc/uvc.config -0ca440c725d13707e17f8bf4da6f02da SD_ROOT/wz_mini/etc/init.d/wz_cam.sh -a96f3eb3c571e95490317e746a9d697f SD_ROOT/wz_mini/etc/init.d/wz_init.sh -9d55cf0a4de134f12b2eb68f45efddd5 SD_ROOT/wz_mini/etc/init.d/wz_user.sh -b346d78a55b0d30b161c15b8c55f8277 SD_ROOT/wz_mini/etc/init.d/wz_post.sh +ad7d1a2f9db3079617731b5854ce3b6a SD_ROOT/wz_mini/etc/init.d/wz_cam.sh +0774518c06d6ef8e7181d35f194777cc SD_ROOT/wz_mini/etc/init.d/wz_init.sh +f4e8ec1b1d69c3b5ba74c617ec7e73d0 SD_ROOT/wz_mini/etc/init.d/wz_user.sh +48c4fd27a194459efda6e92b446f51a0 SD_ROOT/wz_mini/etc/init.d/wz_post.sh e3034eac02d8eda9902ca9cf89f0a586 SD_ROOT/wz_mini/etc/inittab 840aa9c26726201f7cffbf001bee193a SD_ROOT/wz_mini/etc/uvc_jxf22.config 2e2d5c1ebdcc16da6852e9cdd3ffc66c SD_ROOT/wz_mini/etc/wz_mini.conf.dist @@ -49,7 +49,7 @@ a8970288e72c871bff6a4484f1e733d6 SD_ROOT/wz_mini/bin/readelf 41b56bb30f02bce5f5e2598073151e16 SD_ROOT/wz_mini/bin/ffmpeg e37474a12d76cae16336476cba61e8b8 SD_ROOT/wz_mini/bin/neofetch 7fcc716cda1e024dae1045050a135beb SD_ROOT/wz_mini/bin/audioplay_t31 -ff3a5698bed114d813440564c2923d6d SD_ROOT/wz_mini/bin/upgrade-run.sh +4fc59ee666cd95f7af99cc75e21e455b SD_ROOT/wz_mini/bin/upgrade-run.sh e6a6a9dd8ce138686083a3d4303cea40 SD_ROOT/wz_mini/bin/iperf3 0468ffb319707687557353242a518923 SD_ROOT/wz_mini/bin/wg 65510c6c4d0db4b4679fc92d1c617fdd SD_ROOT/wz_mini/bin/rtmp-stream.sh @@ -77,7 +77,7 @@ ac9f3a5d097d25d5d972c3d2ad288df9 SD_ROOT/wz_mini/usr/bin/ucamera_v2 cf049b9446094cc8a7e07a33cf91c4a8 SD_ROOT/wz_mini/usr/bin/watch_up.sh b339aee882a5d1c943ad08e4282ec3fd SD_ROOT/wz_mini/usr/bin/iCamera-dbg 20b061689308b2cee7edf3b9b906bca7 SD_ROOT/wz_mini/usr/bin/ucamera -d010b7a3e0c22fa6ea7fe1b53a13c119 SD_ROOT/wz_mini/usr/bin/upgrade-run.sh +4fc59ee666cd95f7af99cc75e21e455b SD_ROOT/wz_mini/usr/bin/upgrade-run.sh 580b1b6e91e72b4a4fef7b21d8954403 SD_ROOT/wz_mini/usr/bin/getSensorType 4c780f0455481d106d47d89f0ae04ed5 SD_ROOT/wz_mini/lib/uClibc.tar 9afeb088e4cbabbe0b04033b560204d0 SD_ROOT/wz_mini/lib/libimp.so From 6c3fd8a0676a063282e55c74b69516821580940c Mon Sep 17 00:00:00 2001 From: Alfonso Gamboa Date: Fri, 17 Jun 2022 00:06:01 -0700 Subject: [PATCH 2/5] remove old version upgrade script, fix rare over-write upgrade-script issue --- README.md | 2 +- SD_ROOT/wz_mini/bin/upgrade-run.sh | 47 +++++--- SD_ROOT/wz_mini/usr/bin/upgrade-run.sh | 161 ------------------------- file.chk | 3 +- 4 files changed, 29 insertions(+), 184 deletions(-) delete mode 100755 SD_ROOT/wz_mini/usr/bin/upgrade-run.sh diff --git a/README.md b/README.md index 8834ade..b84429b 100644 --- a/README.md +++ b/README.md @@ -382,7 +382,7 @@ NOTE: if you are upgrading a V2 camera from a release older than 06-16-22, you m ## Latest Updates * 06-16-22: Simplified the camera model detection method throughout wz_mini. -* 06-16-22: fix scp client bug, allow user modifications to app_init, updated initramfs script, moved upgrade-run to PATH, revised kernel module paths, added ENABLE_RTL8189FS_DRIVER option for v2/v3, updated kernels for v2/v3. ( NOTE: this is a major upgrade, file names for the init scripts have changed, if you are upgrading the V2, do not use the upgrade-run.sh script ) +* 06-16-22: fix scp client bug, allow user modifications to app_init, updated initramfs script, moved upgrade-run to PATH, revised kernel module paths, added ENABLE_RTL8189FS_DRIVER option for v2/v3, updated kernels for v2/v3. ( NOTE: this is a major upgrade, file names for the init scripts have changed, if you are upgrading the V2, do not use the upgrade-run.sh script, please manually update ) * 06-14-22: Updated v4l2rtspserver, fixes to prevent rare low memory situations and RTSP server crashes, fixed intermittant failed RTSP HD stream, script logic updates. * 06-12-22: Added additional audio variables for tuning in libcallback, various bug fixes in wz_user. Added `gather_wz_logs.sh` script for users to share debug logs. * 06-07-22: Added support to tune IMP video and audio options in libcallback. diff --git a/SD_ROOT/wz_mini/bin/upgrade-run.sh b/SD_ROOT/wz_mini/bin/upgrade-run.sh index 662d844..5c4b237 100755 --- a/SD_ROOT/wz_mini/bin/upgrade-run.sh +++ b/SD_ROOT/wz_mini/bin/upgrade-run.sh @@ -1,9 +1,9 @@ #!/bin/sh if [ -L /dev/fd ]; then - echo fd exists + echo "fd exists" > /dev/null else - echo fd does not exist, link + echo "fd does not exist, link" > /dev/null ln -s /proc/self/fd /dev/fd fi @@ -28,29 +28,36 @@ echo "Verify file integrity" cd /opt/Upgrade/wz_mini_hacks-master md5sum -c file.chk -if [ $? -eq 0 ] -then - echo "files OK" - install_upgrade_script +if [ $? -eq 0 ]; then + echo "files OK" + install_upgrade_script else - echo "Failure: archive has corrupted files" - echo "Delete failed upgrade dir" - rm -rf /opt/Upgrade - exit 1 + echo "Failure: archive has corrupted files" + echo "Delete failed upgrade dir" + rm -rf /opt/Upgrade + exit 1 fi } install_upgrade_script() { -echo "Installing latest upgrade-script" +echo "Installing latest upgrade-run from repo" cp /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/bin/upgrade-run.sh /opt/wz_mini/bin/upgrade-run.sh sleep 5 -/opt/wz_mini/bin/upgrade-run.sh backup_begin +echo "Launching latest upgrade-script" +/opt/wz_mini/bin/upgrade-run.sh backup_begin & + +echo "Exit old script" +exit 0 } backup_begin() { +echo "Resume upgrade-run, latest version" + +sleep 5 + echo "Backup user config" cp /opt/wz_mini/wz_mini.conf /opt/Upgrade/preserve/ cp -r /opt/wz_mini/etc/configs /opt/Upgrade/preserve/ @@ -88,7 +95,7 @@ else rmmod audio fi -echo UPGRADE MODE +echo "UPGRADE MODE" if [ -f /opt/wz_mini/tmp/.T20 ]; then echo "Upgrading kernel" @@ -106,12 +113,12 @@ mv /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/factory_t31_ZMC6tiIDQN /opt/factory diff /opt/wz_mini/wz_mini.conf /opt/Upgrade/preserve/wz_mini.conf if [ $(cat /opt/Upgrade/preserve/wz_mini.conf | wc -l) != $(cat /opt/wz_mini/wz_mini.conf | wc -l) ]; then -echo "doesn't match, keep old config" -mv /opt/wz_mini/wz_mini.conf /opt/wz_mini/wz_mini.conf.dist -cp /opt/Upgrade/preserve/wz_mini.conf /opt/wz_mini/ + echo "doesn't match, keep old config" + mv /opt/wz_mini/wz_mini.conf /opt/wz_mini/wz_mini.conf.dist + cp /opt/Upgrade/preserve/wz_mini.conf /opt/wz_mini/ else -echo "configs match" -cp /opt/Upgrade/preserve/wz_mini.conf /opt/wz_mini/ + echo "configs match" + cp /opt/Upgrade/preserve/wz_mini.conf /opt/wz_mini/ fi cp /opt/Upgrade/preserve/ssh/* /opt/wz_mini/etc/ssh/ @@ -124,11 +131,11 @@ reboot } if [[ -e /tmp/dbgflag ]]; then -upgrade_mode_start + upgrade_mode_start else if [ "$1" == "backup_begin" ]; then -backup_begin + backup_begin else read -r -p "${1:-wz_mini, this will download the latest version from github and upgrade your system. Are you sure? [y/N]} " response diff --git a/SD_ROOT/wz_mini/usr/bin/upgrade-run.sh b/SD_ROOT/wz_mini/usr/bin/upgrade-run.sh deleted file mode 100755 index 662d844..0000000 --- a/SD_ROOT/wz_mini/usr/bin/upgrade-run.sh +++ /dev/null @@ -1,161 +0,0 @@ -#!/bin/sh - -if [ -L /dev/fd ]; then - echo fd exists -else - echo fd does not exist, link - ln -s /proc/self/fd /dev/fd -fi - -LOG_FILE=/opt/upgrade_wz_mini.log -exec > >(busybox tee -a ${LOG_FILE}) 2>&1 - -setup() { - -echo "Create Upgrade directory" -mkdir /opt/Upgrade - -echo "Create backup files directory" -mkdir /opt/Upgrade/preserve - -echo "Download latest master" -wget --no-check-certificate https://github.com/gtxaspec/wz_mini_hacks/archive/refs/heads/master.zip -O /opt/Upgrade/wz_mini.zip; sync - -echo "Extract archive" -unzip /opt/Upgrade/wz_mini.zip -d /opt/Upgrade/ - -echo "Verify file integrity" -cd /opt/Upgrade/wz_mini_hacks-master -md5sum -c file.chk - -if [ $? -eq 0 ] -then - echo "files OK" - install_upgrade_script -else - echo "Failure: archive has corrupted files" - echo "Delete failed upgrade dir" - rm -rf /opt/Upgrade - exit 1 -fi - -} - -install_upgrade_script() { -echo "Installing latest upgrade-script" -cp /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/bin/upgrade-run.sh /opt/wz_mini/bin/upgrade-run.sh - -sleep 5 - -/opt/wz_mini/bin/upgrade-run.sh backup_begin -} - -backup_begin() { -echo "Backup user config" -cp /opt/wz_mini/wz_mini.conf /opt/Upgrade/preserve/ -cp -r /opt/wz_mini/etc/configs /opt/Upgrade/preserve/ -cp -r /opt/wz_mini/etc/ssh /opt/Upgrade/preserve/ -cp -r /opt/wz_mini/etc/wireguard /opt/Upgrade/preserve/ -sync - -echo "Rebooting into UPGRADE MODE" -reboot -} - - -upgrade_mode_start() { - -export WZMINI_CFG=/opt/wz_mini/wz_mini.conf - -[ -f $WZMINI_CFG ] && source $WZMINI_CFG - -set -x - -#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 [ -f /opt/wz_mini/tmp/.T20 ]; then - insmod /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/lib/modules/3.10.14/extra/audio.ko - LD_LIBRARY_PATH='/opt/wz_mini/lib' /opt/wz_mini/bin/audioplay_t20 /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/usr/share/audio/upgrade_mode_v2.wav $AUDIO_PROMPT_VOLUME - rmmod audio -else - insmod /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/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/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/usr/share/audio/upgrade_mode.wav $AUDIO_PROMPT_VOLUME - rmmod audio -fi - -echo UPGRADE MODE - -if [ -f /opt/wz_mini/tmp/.T20 ]; then - echo "Upgrading kernel" - flashcp -v /opt/Upgrade/wz_mini_hacks-master/v2_install/v2_kernel.bin /dev/mtd1 -fi - -umount -l /opt/wz_mini/tmp -ls -l /opt/wz_mini/ -rm -rf /opt/wz_mini/* -sync -mv /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/wz_mini/* /opt/wz_mini/ -rm -f /opt/factory_t31_ZMC6tiIDQN -mv /opt/Upgrade/wz_mini_hacks-master/SD_ROOT/factory_t31_ZMC6tiIDQN /opt/factory_t31_ZMC6tiIDQN - -diff /opt/wz_mini/wz_mini.conf /opt/Upgrade/preserve/wz_mini.conf - -if [ $(cat /opt/Upgrade/preserve/wz_mini.conf | wc -l) != $(cat /opt/wz_mini/wz_mini.conf | wc -l) ]; then -echo "doesn't match, keep old config" -mv /opt/wz_mini/wz_mini.conf /opt/wz_mini/wz_mini.conf.dist -cp /opt/Upgrade/preserve/wz_mini.conf /opt/wz_mini/ -else -echo "configs match" -cp /opt/Upgrade/preserve/wz_mini.conf /opt/wz_mini/ -fi - -cp /opt/Upgrade/preserve/ssh/* /opt/wz_mini/etc/ssh/ -cp /opt/Upgrade/preserve/configs/* /opt/wz_mini/etc/configs -cp -r /opt/Upgrade/preserve/wireguard /opt/wz_mini/etc/ -rm -rf /opt/Upgrade -sync -reboot - -} - -if [[ -e /tmp/dbgflag ]]; then -upgrade_mode_start -else - -if [ "$1" == "backup_begin" ]; then -backup_begin -else - -read -r -p "${1:-wz_mini, this will download the latest version from github and upgrade your system. Are you sure? [y/N]} " response - case "$response" in - [yY][eE][sS]|[yY]) - if [[ -d /opt/Upgrade ]]; then - echo "WARNING: Old Upgrade directory exists" - read -r -p "${1:-Unable to proceed, must DELETE old Upgrade directory, are you sure? [y/N]} " response - case "$response" in - [yY][eE][sS]|[yY]) - rm -rf /opt/Upgrade - sync - setup - ;; - *) - echo "User denied directory removal, exit" - ;; - esac - else - setup - fi - - ;; - *) - echo "User declined system update, exit" - ;; - esac -fi - -fi diff --git a/file.chk b/file.chk index 0dc1a96..0453ff1 100644 --- a/file.chk +++ b/file.chk @@ -49,7 +49,7 @@ a8970288e72c871bff6a4484f1e733d6 SD_ROOT/wz_mini/bin/readelf 41b56bb30f02bce5f5e2598073151e16 SD_ROOT/wz_mini/bin/ffmpeg e37474a12d76cae16336476cba61e8b8 SD_ROOT/wz_mini/bin/neofetch 7fcc716cda1e024dae1045050a135beb SD_ROOT/wz_mini/bin/audioplay_t31 -4fc59ee666cd95f7af99cc75e21e455b SD_ROOT/wz_mini/bin/upgrade-run.sh +1b34a65eae3c4aed0704cc90e59757ce SD_ROOT/wz_mini/bin/upgrade-run.sh e6a6a9dd8ce138686083a3d4303cea40 SD_ROOT/wz_mini/bin/iperf3 0468ffb319707687557353242a518923 SD_ROOT/wz_mini/bin/wg 65510c6c4d0db4b4679fc92d1c617fdd SD_ROOT/wz_mini/bin/rtmp-stream.sh @@ -77,7 +77,6 @@ ac9f3a5d097d25d5d972c3d2ad288df9 SD_ROOT/wz_mini/usr/bin/ucamera_v2 cf049b9446094cc8a7e07a33cf91c4a8 SD_ROOT/wz_mini/usr/bin/watch_up.sh b339aee882a5d1c943ad08e4282ec3fd SD_ROOT/wz_mini/usr/bin/iCamera-dbg 20b061689308b2cee7edf3b9b906bca7 SD_ROOT/wz_mini/usr/bin/ucamera -4fc59ee666cd95f7af99cc75e21e455b SD_ROOT/wz_mini/usr/bin/upgrade-run.sh 580b1b6e91e72b4a4fef7b21d8954403 SD_ROOT/wz_mini/usr/bin/getSensorType 4c780f0455481d106d47d89f0ae04ed5 SD_ROOT/wz_mini/lib/uClibc.tar 9afeb088e4cbabbe0b04033b560204d0 SD_ROOT/wz_mini/lib/libimp.so From a5fd7dc57f1bb8a72afd5de976b7943e08aa7442 Mon Sep 17 00:00:00 2001 From: Alfonso Gamboa Date: Fri, 17 Jun 2022 00:24:24 -0700 Subject: [PATCH 3/5] clarity waitMotion motion tagging requirement --- SD_ROOT/wz_mini/bin/cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SD_ROOT/wz_mini/bin/cmd b/SD_ROOT/wz_mini/bin/cmd index 9949289..1fee2ee 100755 --- a/SD_ROOT/wz_mini/bin/cmd +++ b/SD_ROOT/wz_mini/bin/cmd @@ -7,7 +7,7 @@ if [ "$1" == "" ]; then echo -e "video on on1 or off off1" echo -e "audio on on1 or off off1" echo -e "move (movable camera only)" - echo -e "waitMotion " + echo -e "waitMotion (you must enable motion tagging in the app first)" echo -e "irled on or off" echo -e "aplay " echo -e "curlDebug on or off" From fb2ba96f5b0f393fa173a31fb9c16e4fd64dfad0 Mon Sep 17 00:00:00 2001 From: Alfonso Gamboa Date: Fri, 17 Jun 2022 01:17:39 -0700 Subject: [PATCH 4/5] strip passwords from debug logs users can generate --- SD_ROOT/wz_mini/bin/gather_wz_logs.sh | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/SD_ROOT/wz_mini/bin/gather_wz_logs.sh b/SD_ROOT/wz_mini/bin/gather_wz_logs.sh index 8198967..92d57b9 100755 --- a/SD_ROOT/wz_mini/bin/gather_wz_logs.sh +++ b/SD_ROOT/wz_mini/bin/gather_wz_logs.sh @@ -13,7 +13,6 @@ else create_dir fi -#cat * | grep 2C | sed 's/^.*\(RTSP_PASSWORD=\).*$/\1/' | sed 's/-U[^-P]*//' echo "copy wz_mini logs" cp /opt/wz_mini/log/* /opt/wz_mini/tmp/log_gather/ @@ -39,7 +38,7 @@ echo "gather libcallback logs" logread | grep "\[command\]" > /opt/wz_mini/tmp/log_gather/libcallback.log echo "gather process list" -ps -T | sed 's/-U[^-P]*//' > /opt/wz_mini/tmp/log_gather/ps.log +ps -T > /opt/wz_mini/tmp/log_gather/ps.log echo "gather mounts" mount > /opt/wz_mini/tmp/log_gather/mount.log @@ -62,6 +61,17 @@ if [ -f /tmp/sd_check_result.txt ]; then cp /tmp/sd_check_result.txt /opt/wz_mini/tmp/log_gather/sd_check_result.txt fi +if [[ "$RTSP_PASSWORD" == "" ]]; then + echo "password is blank in config" + RTSP_PASSWORD=$(cat /opt/wz_mini/tmp/wlan0_mac) +fi + +cd /opt/wz_mini/tmp/log_gather +echo $RTSP_PASSWORD +sed -e s/"$RTSP_PASSWORD"//g -i * +cd / + + echo "compress to /media/mmc/log_gather_$(date +"%F_T%H%M").tar.gz" tar -czf /media/mmc/log_gather_$(date +"%F_T%H%M").tar.gz -C /opt/wz_mini/tmp log_gather/ From e5fc16696decdd2c4504893cdbd0ada499d3eeae Mon Sep 17 00:00:00 2001 From: Alfonso Gamboa Date: Fri, 17 Jun 2022 01:22:19 -0700 Subject: [PATCH 5/5] fix custom hostname issues --- README.md | 5 +++-- SD_ROOT/wz_mini/etc/init.d/wz_user.sh | 6 +++--- SD_ROOT/wz_mini/etc/wz_mini.conf.dist | 4 +++- SD_ROOT/wz_mini/wz_mini.conf | 2 +- file.chk | 10 +++++----- 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index b84429b..a97afcc 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ Using this project can potentially expose your device to the open internet depen ## Setup v3/PANv2 1. git clone the repo or download the repo zip -2. format micro-sd card as fat-32 ( this is a hard requirement, the bootloader does not support ex-fat or ext, and thus will not load wz_mini ), DOS partition map type, volume name does not matter. +2. perform a fresh format on your micro-sd card, using fat-32 ( this is a hard requirement, the bootloader does not support ex-fat or ext, and thus will not load wz_mini ), DOS partition map type, volume name does not matter. 3. copy all the files inside of SD_ROOT to your micro sd card 4. __SSH is enabled, but is secured using public key authentication for security. Edit the file ```wz_mini/etc/ssh/authorized_keys``` and enter your public key here. If you need a simple guide, [how to use public key authentication](https://averagelinuxuser.com/how-to-use-public-key-authentication/)__ @@ -84,7 +84,7 @@ Using this project can potentially expose your device to the open internet depen ## Setup v2 1. git clone the repo or download the repo zip -2. format micro-sd card as fat-32 ( this is a hard requirement, the bootloader does not support ex-fat or ext, and thus will not load wz_mini ), DOS partition map type, volume name does not matter. +2. perform a fresh format on your micro-sd card, using fat-32 ( this is a hard requirement, the bootloader does not support ex-fat or ext, and thus will not load wz_mini ), DOS partition map type, volume name does not matter. 3. Run `compile_image.sh` using linux, wait for the script to finish. 4. Copy all the files inside of SD_ROOT to your micro sd card 5. Copy the generated `demo.bin` to root of your micro sd card @@ -381,6 +381,7 @@ NOTE: if you are upgrading a V2 camera from a release older than 06-16-22, you m ## Latest Updates +* 06-17-22: Fix custom hostname not being set. Note: The hostname variable has CHANGED! You will need to update your `wz_mini.conf` file. * 06-16-22: Simplified the camera model detection method throughout wz_mini. * 06-16-22: fix scp client bug, allow user modifications to app_init, updated initramfs script, moved upgrade-run to PATH, revised kernel module paths, added ENABLE_RTL8189FS_DRIVER option for v2/v3, updated kernels for v2/v3. ( NOTE: this is a major upgrade, file names for the init scripts have changed, if you are upgrading the V2, do not use the upgrade-run.sh script, please manually update ) * 06-14-22: Updated v4l2rtspserver, fixes to prevent rare low memory situations and RTSP server crashes, fixed intermittant failed RTSP HD stream, script logic updates. diff --git a/SD_ROOT/wz_mini/etc/init.d/wz_user.sh b/SD_ROOT/wz_mini/etc/init.d/wz_user.sh index 58d56ed..e4f95db 100755 --- a/SD_ROOT/wz_mini/etc/init.d/wz_user.sh +++ b/SD_ROOT/wz_mini/etc/init.d/wz_user.sh @@ -29,7 +29,7 @@ export WZMINI_CFG=/opt/wz_mini/wz_mini.conf hostname_set() { echo "set hostname" - hostname $HOSTNAME + hostname $CUSTOM_HOSTNAME } first_run_check() { @@ -75,7 +75,7 @@ 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:$HOSTNAME -p /var/run/udhcpc.pid -b + udhcpc -i wlan0 -x hostname:$CUSTOM_HOSTNAME -p /var/run/udhcpc.pid -b if [ -f /opt/wz_mini/tmp/.T20 ]; then mount -o bind /opt/wz_mini/bin/wpa_cli.sh /system/bin/wpa_cli else @@ -233,7 +233,7 @@ fi if [[ "$ENABLE_USB_DIRECT" == "true" ]]; then - HOST_MACADDR=$(echo "$HOSTNAME"|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/') + 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 diff --git a/SD_ROOT/wz_mini/etc/wz_mini.conf.dist b/SD_ROOT/wz_mini/etc/wz_mini.conf.dist index ded368b..ccff9ae 100644 --- a/SD_ROOT/wz_mini/etc/wz_mini.conf.dist +++ b/SD_ROOT/wz_mini/etc/wz_mini.conf.dist @@ -9,7 +9,7 @@ WEB_CAM_BIT_RATE="8000" WEB_CAM_FPS_RATE="25" #####NETWORKING##### -HOSTNAME="WCV3" +CUSTOM_HOSTNAME="WCV3" ENABLE_USB_ETH="false" ENABLE_USB_ETH_MODULES="asix" @@ -32,6 +32,8 @@ ENABLE_IPTABLES="false" ENABLE_NFSv4="false" +ENABLE_RTL8189FS_DRIVER="false" + #####ACCESSORIES##### REMOTE_SPOTLIGHT="false" REMOTE_SPOTLIGHT_HOST="0.0.0.0" diff --git a/SD_ROOT/wz_mini/wz_mini.conf b/SD_ROOT/wz_mini/wz_mini.conf index bfb3f35..ccff9ae 100644 --- a/SD_ROOT/wz_mini/wz_mini.conf +++ b/SD_ROOT/wz_mini/wz_mini.conf @@ -9,7 +9,7 @@ WEB_CAM_BIT_RATE="8000" WEB_CAM_FPS_RATE="25" #####NETWORKING##### -HOSTNAME="WCV3" +CUSTOM_HOSTNAME="WCV3" ENABLE_USB_ETH="false" ENABLE_USB_ETH_MODULES="asix" diff --git a/file.chk b/file.chk index 0453ff1..0f89fa9 100644 --- a/file.chk +++ b/file.chk @@ -3,11 +3,11 @@ d41d8cd98f00b204e9800998ecf8427e SD_ROOT/wz_mini/mnt/.gitignore 34c6a4c3a941ff2becd9f487826d7692 SD_ROOT/wz_mini/etc/uvc.config ad7d1a2f9db3079617731b5854ce3b6a SD_ROOT/wz_mini/etc/init.d/wz_cam.sh 0774518c06d6ef8e7181d35f194777cc SD_ROOT/wz_mini/etc/init.d/wz_init.sh -f4e8ec1b1d69c3b5ba74c617ec7e73d0 SD_ROOT/wz_mini/etc/init.d/wz_user.sh +c94845a6a1bd6c20f643daf4595b03f9 SD_ROOT/wz_mini/etc/init.d/wz_user.sh 48c4fd27a194459efda6e92b446f51a0 SD_ROOT/wz_mini/etc/init.d/wz_post.sh e3034eac02d8eda9902ca9cf89f0a586 SD_ROOT/wz_mini/etc/inittab 840aa9c26726201f7cffbf001bee193a SD_ROOT/wz_mini/etc/uvc_jxf22.config -2e2d5c1ebdcc16da6852e9cdd3ffc66c SD_ROOT/wz_mini/etc/wz_mini.conf.dist +2609cae8b3b084d83e84299528d8bc93 SD_ROOT/wz_mini/etc/wz_mini.conf.dist 8b5e58acfcbb20034dc4873a08b45fd9 SD_ROOT/wz_mini/etc/profile 2c2df1b9cb603f9c31c46162d6ac307f SD_ROOT/wz_mini/etc/alsa/alsa.conf 9e5591da95042bcca910403bde25dc60 SD_ROOT/wz_mini/etc/fstab @@ -25,7 +25,7 @@ d41d8cd98f00b204e9800998ecf8427e SD_ROOT/wz_mini/root/.gitignore ec906872794379af570869ebfd49bb23 SD_ROOT/wz_mini/bin/tcpdump db5c63af3c763fc6eb76f6e1b5c96794 SD_ROOT/wz_mini/bin/file 3feb341fca58bc705c3ed5705d4eb716 SD_ROOT/wz_mini/bin/factorycheck -fa09ee51c0aa8e9a5896051c20238965 SD_ROOT/wz_mini/bin/cmd +042c34e28f96300c402a08254dca1200 SD_ROOT/wz_mini/bin/cmd a9a6bf805cbcfdd6698fe5efd65f91bb SD_ROOT/wz_mini/bin/nano 36cbfe7b96d4240a6b138dd3695ccefd SD_ROOT/wz_mini/bin/strings 1458f09775917db388f807f7ac01bb65 SD_ROOT/wz_mini/bin/socat @@ -55,7 +55,7 @@ e6a6a9dd8ce138686083a3d4303cea40 SD_ROOT/wz_mini/bin/iperf3 65510c6c4d0db4b4679fc92d1c617fdd SD_ROOT/wz_mini/bin/rtmp-stream.sh 5d1359af0c7c5d326b8682a62f910620 SD_ROOT/wz_mini/bin/strace 516118bfcc0f0ddc93fb9339b3c6a315 SD_ROOT/wz_mini/bin/xtables-multi -a97ef595ae543e76de900c270baaa0d9 SD_ROOT/wz_mini/bin/gather_wz_logs.sh +17a23742c599a262e4144c499fa66845 SD_ROOT/wz_mini/bin/gather_wz_logs.sh 097cd91a56f2b0caea1dd87ae0e51a54 SD_ROOT/wz_mini/bin/screen fbbc2a8f362d05fc31557b1a534b42c6 SD_ROOT/wz_mini/bin/wget 35420095a770c9bb6177788842f55bba SD_ROOT/wz_mini/bin/dropbearconvert @@ -184,5 +184,5 @@ ccf8f3611141656ba5594771bec06202 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan 14865a6e2e2df87a8362c6f20377a934 SD_ROOT/wz_mini/lib/libtinyalsa.so.2 bd383994491e4bdca81788c168feb2eb SD_ROOT/wz_mini/lib/libasound.so.2 f6f0d5a9ebd916de6bdb9695067809ae SD_ROOT/wz_mini/lib/libaudioProcess.so -2d825fabc13b2f654c26c492758e1c8e SD_ROOT/wz_mini/wz_mini.conf +2609cae8b3b084d83e84299528d8bc93 SD_ROOT/wz_mini/wz_mini.conf d41d8cd98f00b204e9800998ecf8427e SD_ROOT/wz_mini/tmp/.gitignore