mirror of
https://github.com/gtxaspec/wz_mini_hacks.git
synced 2024-12-22 20:33:33 +00:00
add v2 support
This commit is contained in:
parent
54fe16fdfe
commit
80378fbd5e
32
README.md
32
README.md
@ -1,7 +1,7 @@
|
||||
# wz_mini_hacks
|
||||
### v3/PANv2 devices ONLY
|
||||
### v2/v3/PANv2 devices ONLY
|
||||
|
||||
Run whatever firmware you want on your v3/PANv2 and have root access to the device. This is in early stages of testing, use CAUTION if you are unsure of what you are doing. No support whatsoever is offered with this release.
|
||||
Run whatever firmware you want on your v2/v3/PANv2 and have root access to the device. This is in early stages of testing, use CAUTION if you are unsure of what you are doing. No support whatsoever is offered with this release.
|
||||
|
||||
**Do not contact the manufacturer for information or support, they will not be able to assist or advise you!**
|
||||
|
||||
@ -55,27 +55,50 @@ Using this project can potentially expose your device to the open internet depen
|
||||
* Person
|
||||
* Computer
|
||||
* 256MB or larger Micro-SD Card is required!
|
||||
* Higher class Micro-SD cards will ensure better performance
|
||||
|
||||
## What Works / What Doesn't Work
|
||||
* Everything works except:
|
||||
|
||||
1. PAN v2:
|
||||
- Tilt (Vertical) only works at motor speed 9
|
||||
2. v2
|
||||
- webcam mode does not work on v2
|
||||
- usb direct does not work on v2 yet
|
||||
- rndis mode on v2 is untested
|
||||
|
||||
## Setup
|
||||
## 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 ), volume name does not matter.
|
||||
2. copy all the files inside of SD_ROOT to your micro sd card
|
||||
3. __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/)__
|
||||
|
||||
## Installation
|
||||
## Installation v3/PANv2
|
||||
|
||||
1. Turn off the camera
|
||||
2. Insert the micro sd memory card into the camera
|
||||
3. Turn on the camera
|
||||
4. The camera will proceed to boot, then you may connect via the IP address of your device using SSH, port 22. The username is root. It may take a few minutes for the device to finish booting and connect to Wi-Fi, then launch the SSH server. Be patient.
|
||||
5. You may also login via the serial console, password is WYom2020
|
||||
|
||||
## 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 ), 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
|
||||
6. __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/)__
|
||||
|
||||
## Installation v2
|
||||
|
||||
1. Insert the micro sd memory card into the camera
|
||||
2. Hold down reset button while powering unit on. This is the standard manual firmware restore procedure.
|
||||
3. Wait for camera to flash the latest modified firmware, and reboot, do not remove the micro sd card.
|
||||
4. The camera will proceed to boot, then you may connect via the IP address of your device using SSH, port 22. The username is root. It may take a few minutes for the device to finish booting and connect to Wi-Fi, then launch the SSH server. Be patient. You should hear audio prompts from the camera once it has booted successfully.
|
||||
5. You may also login via the serial console, password is WYom2020
|
||||
|
||||
## Removal
|
||||
1. Delete the files you copied to the memory card, or remove the memory card all together. The next time you boot the camera, you will return to stock firmware.
|
||||
|
||||
@ -235,6 +258,7 @@ WEB_CAM_FPS_RATE="25"
|
||||
|
||||
## Latest Updates
|
||||
|
||||
* 05-22-22: Update wz_mini scripts and libraries to support v2 camera. experimental.
|
||||
* 05-20-22: updated to latest libcallback including mp4write, bug fixes: usb direct mac addr, usb webcam mode bad variable.
|
||||
* 05-18-22: Added PC Web Camera functionality, changed RTSP server, when you use enable more than one stream, they share the port and use different paths.
|
||||
* 05-15-22: fixed rtsp audio for low-res rtsp stream, patched libcallback sources for audio channel 1.
|
||||
|
@ -21,29 +21,47 @@ echo '
|
||||
|
||||
set -x
|
||||
|
||||
#lets test this out and see how it goes, patched udhcpc for iCamera
|
||||
#test for v2
|
||||
mount -t jffs2 /dev/mtdblock9 /params
|
||||
|
||||
if cat /params/config/.product_config | grep WYZEC1-JZ; then
|
||||
V2="true"
|
||||
fi
|
||||
umount /params
|
||||
|
||||
mount --bind /opt/wz_mini/bin/busybox /bin/busybox
|
||||
|
||||
#WCV3 GPIO
|
||||
GPIO=63
|
||||
|
||||
#Check model, change GPIO is HL_PAN2
|
||||
mount -t jffs2 /dev/mtdblock6 /configs
|
||||
if [[ $(cat /configs/.product_config | grep PRODUCT_MODEL) == "PRODUCT_MODEL=HL_PAN2" ]]; then
|
||||
umount /configs
|
||||
GPIO=7
|
||||
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 "v2, no need to check"
|
||||
fi
|
||||
|
||||
if [[ -e /opt/wz_mini/etc/.first_boot ]]; then
|
||||
echo "first boot already completed"
|
||||
else
|
||||
echo "first boot, initializing"
|
||||
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/init.wav 50
|
||||
rmmod audio
|
||||
touch /opt/wz_mini/etc/.first_boot
|
||||
if [[ "$V2" == "true" ]]; then
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14_v2/kernel/audio.ko
|
||||
LD_LIBRARY_PATH='/opt/wz_mini/lib' /opt/wz_mini/bin/audioplay_t20 /opt/wz_mini/usr/share/audio/init_v2.wav 70
|
||||
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/init.wav 50
|
||||
rmmod audio
|
||||
fi
|
||||
fi
|
||||
|
||||
touch /opt/wz_mini/etc/.first_boot
|
||||
|
||||
mount --bind /opt/wz_mini/etc/inittab /etc/inittab
|
||||
|
||||
echo "bind /etc/profile for local/ssh shells"
|
||||
@ -53,8 +71,13 @@ echo "mounting tmpfs"
|
||||
mount -t tmpfs /tmp
|
||||
|
||||
echo "mount system to replace factorycheck with dummy, to prevent bind unmount"
|
||||
mount /dev/mtdblock3 /system
|
||||
mount --bind /opt/wz_mini/bin/factorycheck /system/bin/factorycheck
|
||||
if [[ ! "$V2" == "true" ]]; 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"
|
||||
@ -89,13 +112,16 @@ cp /opt/wz_mini/etc/shadow /opt/wz_mini/tmp/.storage/shadow
|
||||
mount --bind /opt/wz_mini/tmp/.storage/shadow /etc/shadow
|
||||
chmod 400 /etc/shadow
|
||||
|
||||
echo "mount kernel modules"
|
||||
mount --bind /opt/wz_mini/lib/modules /lib/modules
|
||||
|
||||
if [[ -e /opt/wz_mini/swap.gz ]]; then
|
||||
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/swap.wav 50
|
||||
rmmod audio
|
||||
if [[ "$V2" == "true" ]]; then
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14_v2/kernel/audio.ko
|
||||
LD_LIBRARY_PATH='/opt/wz_mini/lib' /opt/wz_mini/bin/audioplay_t20 /opt/wz_mini/usr/share/audio/swap_v2.wav 70
|
||||
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/swap.wav 50
|
||||
rmmod audio
|
||||
fi
|
||||
echo "swap archive present, extracting"
|
||||
gzip -d /opt/wz_mini/swap.gz
|
||||
mkswap /opt/wz_mini/swap
|
||||
@ -116,13 +142,13 @@ echo "Run dropbear ssh server"
|
||||
/opt/wz_mini/bin/dropbear -R -s -g
|
||||
|
||||
if [[ $(cat /opt/wz_mini/run_mmc.sh | grep "DEBUG_ENABLED\=") == "DEBUG_ENABLED\=\"true\"" ]]; then
|
||||
sed -i '/app_init.sh/,+3d' /opt/wz_mini/tmp/.storage/rcS
|
||||
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
|
||||
else
|
||||
|
||||
if [[ $(cat /opt/wz_mini/run_mmc.sh | grep "WEB_CAM_ENABLE\=") == "WEB_CAM_ENABLE\=\"true\"" ]]; then
|
||||
sed -i '/app_init.sh/,+3d' /opt/wz_mini/tmp/.storage/rcS
|
||||
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
|
||||
fi
|
||||
|
@ -4,24 +4,39 @@
|
||||
|
||||
exec 1> /opt/wz_mini/log/v3_post.log 2>&1
|
||||
|
||||
set -x
|
||||
|
||||
echo "welcome to v3_post.sh"
|
||||
echo "PID $$"
|
||||
|
||||
set -x
|
||||
|
||||
echo "v3_post.sh exec"
|
||||
|
||||
echo "mount kernel modules"
|
||||
mount --bind /opt/wz_mini/lib/modules /lib/modules
|
||||
|
||||
if [[ $(cat /opt/wz_mini/run_mmc.sh | grep "RTSP_HI_RES_ENABLED\=") == "RTSP_HI_RES_ENABLED\=\"true\"" ]] || [[ $(cat /opt/wz_mini/run_mmc.sh | grep "RTSP_LOW_RES_ENABLED\=") == "RTSP_LOW_RES_ENABLED\=\"true\"" ]] && ! [[ -e /tmp/dbgflag ]]; then
|
||||
if [[ $(cat /opt/wz_mini/run_mmc.sh | grep "RTSP_LOW_RES_ENABLED\=") == "RTSP_LOW_RES_ENABLED\=\"true\"" ]] && [[ $(cat /opt/wz_mini/run_mmc.sh | grep "RTSP_HI_RES_ENABLED\=") == "RTSP_HI_RES_ENABLED\=\"true\"" ]]; then
|
||||
echo "load video loopback driver at video1 video2"
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/v4l2loopback.ko video_nr=1,2
|
||||
if [[ -d /etc/hotplug ]]; then
|
||||
echo "load video loopback driver at video6 video7"
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14_v2/kernel/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__/kernel/v4l2loopback.ko video_nr=1,2
|
||||
fi
|
||||
elif [[ $(cat /opt/wz_mini/run_mmc.sh | grep "RTSP_LOW_RES_ENABLED\=") == "RTSP_LOW_RES_ENABLED\=\"true\"" ]]; then
|
||||
echo "load video loopback driver at video2"
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/v4l2loopback.ko video_nr=2
|
||||
if [[ -d /etc/hotplug ]]; then
|
||||
echo "load video loopback driver at video7"
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14_v2/kernel/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__/kernel/v4l2loopback.ko video_nr=2
|
||||
fi
|
||||
elif [[ $(cat /opt/wz_mini/run_mmc.sh | grep "RTSP_HI_RES_ENABLED\=") == "RTSP_HI_RES_ENABLED\=\"true\"" ]]; then
|
||||
echo "load video loopback driver at video1"
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/v4l2loopback.ko video_nr=1
|
||||
if [[ -d /etc/hotplug ]]; then
|
||||
echo "load video loopback driver at video6"
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14_v2/kernel/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__/kernel/v4l2loopback.ko video_nr=1
|
||||
fi
|
||||
fi
|
||||
|
||||
cp /system/bin/iCamera /opt/wz_mini/tmp/.storage/
|
||||
|
BIN
SD_ROOT/wz_mini/lib/libalog.so
Normal file
BIN
SD_ROOT/wz_mini/lib/libalog.so
Normal file
Binary file not shown.
BIN
SD_ROOT/wz_mini/lib/libaudioProcess.so
Normal file
BIN
SD_ROOT/wz_mini/lib/libaudioProcess.so
Normal file
Binary file not shown.
Binary file not shown.
BIN
SD_ROOT/wz_mini/lib/libimp.so
Normal file
BIN
SD_ROOT/wz_mini/lib/libimp.so
Normal file
Binary file not shown.
@ -87,7 +87,7 @@ wait_sdroot() {
|
||||
##Stall execution if the micro-sd card isn't mounted yet, iCamera controls this internally.
|
||||
while true
|
||||
do
|
||||
if [[ -d /media/mmc/wz_mini ]]; then
|
||||
if [[ -d /media/mmc/wz_mini ]] || [[ -d /media/mmcblk0p1/wz_mini ]]; then
|
||||
echo "sd card ready"
|
||||
break
|
||||
fi
|
||||
@ -135,7 +135,11 @@ eth_wlan_up() {
|
||||
ifconfig wlan0 up
|
||||
pkill udhcpc
|
||||
udhcpc -i wlan0 -x hostname:$HOSTNAME -p /var/run/udhcpc.pid -b
|
||||
if [[ "$V2" == "true" ]]; then
|
||||
mount -o bind /media/mmc/wz_mini/bin/wpa_cli.sh /system/bin/wpa_cli
|
||||
else
|
||||
mount -o bind /media/mmc/wz_mini/bin/wpa_cli.sh /bin/wpa_cli
|
||||
fi
|
||||
break
|
||||
}
|
||||
|
||||
@ -190,6 +194,13 @@ first_run_check
|
||||
wait_sdroot
|
||||
wait_wlan
|
||||
|
||||
if [[ -d /etc/hotplug ]]; then
|
||||
V2="true"
|
||||
KMOD_PATH="/opt/wz_mini/lib/modules/3.10.14_v2"
|
||||
else
|
||||
V2="false"
|
||||
KMOD_PATH="/opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__"
|
||||
fi
|
||||
|
||||
if [[ "$ENABLE_SWAP" == "true" ]]; then
|
||||
if cat /proc/swaps | grep "mini" ; then
|
||||
@ -208,39 +219,42 @@ else
|
||||
fi
|
||||
|
||||
if [[ "$ENABLE_NFSv4" == "true" ]]; then
|
||||
insmod /lib/modules/3.10.14__isvp_swan_1.0__/kernel/lib/oid_registry.ko
|
||||
insmod /lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/dns_resolver/dns_resolver.ko
|
||||
insmod /lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/nfs/nfsv4.ko
|
||||
insmod /lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko
|
||||
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 /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
|
||||
insmod /lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/ipt_REJECT.ko
|
||||
insmod /lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/iptable_filter.ko
|
||||
insmod /lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/iptable_mangle.ko
|
||||
echo "iptables ipv4 enabled"
|
||||
if [[ "$ENABLE_IPTABLES" == "true" ]]; then
|
||||
if [[ "$V2" == "true" ]]; then
|
||||
echo "v2 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
|
||||
insmod /lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/ipt_REJECT.ko
|
||||
insmod /lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/iptable_filter.ko
|
||||
insmod /lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/iptable_mangle.ko
|
||||
echo "iptables ipv4 enabled"
|
||||
fi
|
||||
|
||||
if [[ "$ENABLE_IPV6" == "true" ]]; then
|
||||
insmod /lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6_tables.ko
|
||||
insmod /lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6t_REJECT.ko
|
||||
insmod /lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6table_filter.ko
|
||||
insmod /lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6table_mangle.ko
|
||||
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"
|
||||
else
|
||||
echo "iptables disabled"
|
||||
fi
|
||||
|
||||
if [[ "$ENABLE_USB_ETH" == "true" ]]; then
|
||||
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/usbnet.ko
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/asix.ko
|
||||
insmod $KMOD_PATH/kernel/drivers/net/usb/usbnet.ko
|
||||
insmod $KMOD_PATH/kernel/drivers/net/usb/asix.ko
|
||||
|
||||
if [[ "$ENABLE_SWAP" == "true" ]]; then
|
||||
echo "swap already enabled"
|
||||
@ -264,10 +278,13 @@ if [[ "$ENABLE_USB_DIRECT" == "true" ]]; then
|
||||
|
||||
host_macaddr=$(echo $HOSTNAME|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/')
|
||||
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/libcomposite.ko
|
||||
if [[ "$V2" == "false" ]]; 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
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/g_ncm.ko iManufacturer=wz_mini_ncm host_addr=$host_macaddr dev_addr=$USB_DIRECT_MAC_ADDR
|
||||
fi
|
||||
|
||||
insmod $KMOD_PATH/kernel/drivers/usb/gadget/libcomposite.ko
|
||||
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
|
||||
|
||||
@ -290,9 +307,9 @@ fi
|
||||
|
||||
if [[ "$ENABLE_USB_RNDIS" == "true" ]]; then
|
||||
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/usbnet.ko
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/cdc_ether.ko
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/rndis_host.ko
|
||||
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
|
||||
|
||||
@ -314,31 +331,35 @@ if [[ "$ENABLE_USB_RNDIS" == "true" ]]; then
|
||||
fi
|
||||
|
||||
if [[ "$ENABLE_WIREGUARD" == "true" ]]; then
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/tunnel4.ko
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/ip_tunnel.ko
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/wireguard/wireguard.ko
|
||||
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
|
||||
else
|
||||
echo "wireguard disabled"
|
||||
fi
|
||||
|
||||
if [[ "$ENABLE_CIFS" == "true" ]]; then
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/cifs/cifs.ko
|
||||
insmod $KMOD_PATH/kernel/fs/cifs/cifs.ko
|
||||
else
|
||||
echo "cifs disabled"
|
||||
fi
|
||||
|
||||
if [[ "$ENABLE_USB_STORAGE" == "true" ]]; then
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/scsi/scsi_mod.ko
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/scsi/sd_mod.ko
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/storage/usb-storage.ko
|
||||
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
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/jbd2/jbd2.ko
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/mbcache.ko
|
||||
insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/ext4/ext4.ko
|
||||
if [[ "$V2" == "true" ]]; 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
|
||||
@ -350,7 +371,7 @@ if [[ "$DISABLE_FW_UPGRADE" == "true" ]]; then
|
||||
mount --bind /opt/wz_mini/tmp/.storage/hosts /etc/hosts
|
||||
else
|
||||
mkdir /tmp/Upgrade
|
||||
/opt/wz_mini/bin/busybox inotifyd /opt/wz_mini/usr/bin/watch_up.sh /tmp/Upgrade:n &
|
||||
/opt/wz_mini/bin/busybox inotifyd /opt/wz_mini/usr/bin/watch_up.sh /tmp:n &
|
||||
fi
|
||||
|
||||
if [[ "$REMOTE_SPOTLIGHT" == "true" ]]; then
|
||||
@ -369,6 +390,12 @@ fi
|
||||
|
||||
if [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then
|
||||
|
||||
if [[ -d /etc/hotplug ]]; then
|
||||
HI_VIDEO_DEV="/dev/video6"
|
||||
else
|
||||
HI_VIDEO_DEV="/dev/video1"
|
||||
fi
|
||||
|
||||
if [[ "$ENABLE_SWAP" == "true" ]]; then
|
||||
echo "swap already enabled"
|
||||
else
|
||||
@ -385,22 +412,34 @@ if [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then
|
||||
/opt/wz_mini/bin/cmd audio on
|
||||
AUDIO_CH="-C 1"
|
||||
AUDIO_FMT="-a S16_LE"
|
||||
DEVICE1="/dev/video1,hw:Loopback,0"
|
||||
DEVICE1="$HI_VIDEO_DEV,hw:Loopback,0"
|
||||
else
|
||||
DEVICE1="/dev/video1"
|
||||
DEVICE1="$HI_VIDEO_DEV"
|
||||
echo "rtsp audio disabled"
|
||||
fi
|
||||
|
||||
if [[ "$RTSP_HI_RES_ENC_PARAMETER" != "" ]]; then
|
||||
watch -n10 -t "/system/bin/impdbg --enc_rc_s 0:44:4:$RTSP_HI_RES_ENC_PARAMETER" > /dev/null 2>&1 &
|
||||
if [[ "$V2" == "true" ]]; then
|
||||
watch -n10 -t "/system/bin/impdbg --enc_rc_s 0:0:4:$RTSP_LOW_RES_ENC_PARAMETER" > /dev/null 2>&1 &
|
||||
else
|
||||
watch -n10 -t "/system/bin/impdbg --enc_rc_s 0:44:4:$RTSP_HI_RES_ENC_PARAMETER" > /dev/null 2>&1 &
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$RTSP_HI_RES_MAX_BITRATE" != "" ]]; then
|
||||
watch -n10 -t "/system/bin/impdbg --enc_rc_s 0:48:4:$RTSP_HI_RES_MAX_BITRATE" > /dev/null 2>&1 &
|
||||
if [[ "$V2" == "true" ]]; then
|
||||
watch -n10 -t "/system/bin/impdbg --enc_rc_s 0:28:4:$RTSP_LOW_RES_MAX_BITRATE" > /dev/null 2>&1 &
|
||||
else
|
||||
watch -n10 -t "/system/bin/impdbg --enc_rc_s 0:48:4:$RTSP_HI_RES_MAX_BITRATE" > /dev/null 2>&1 &
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$RTSP_HI_RES_TARGET_BITRATE" != "" ]]; then
|
||||
watch -n10 -t "/system/bin/impdbg --enc_rc_s 0:52:4:$RTSP_HI_RES_TARGET_BITRATE" > /dev/null 2>&1 &
|
||||
if [[ "$V2" == "true" ]]; then
|
||||
echo "not supported on v2"
|
||||
else
|
||||
watch -n10 -t "/system/bin/impdbg --enc_rc_s 0:52:4:$RTSP_HI_RES_TARGET_BITRATE" > /dev/null 2>&1 &
|
||||
fi
|
||||
fi
|
||||
|
||||
else
|
||||
@ -410,6 +449,13 @@ fi
|
||||
|
||||
|
||||
if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]; then
|
||||
|
||||
if [[ -d /etc/hotplug ]]; then
|
||||
LOW_VIDEO_DEV="/dev/video7"
|
||||
else
|
||||
LOW_VIDEO_DEV="/dev/video2"
|
||||
fi
|
||||
|
||||
|
||||
if [[ "$ENABLE_SWAP" == "true" ]]; then
|
||||
echo "swap already enabled"
|
||||
@ -427,22 +473,34 @@ if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]; then
|
||||
/opt/wz_mini/bin/cmd audio on1
|
||||
AUDIO_CH="-C 1"
|
||||
AUDIO_FMT="-a S16_LE"
|
||||
DEVICE2="/dev/video2,hw:Loopback,1"
|
||||
DEVICE2="$LOW_VIDEO_DEV,hw:Loopback,1"
|
||||
else
|
||||
DEVICE2="/dev/video2"
|
||||
DEVICE2="$LOW_VIDEO_DEV"
|
||||
echo "rtsp audio disabled"
|
||||
fi
|
||||
|
||||
if [[ "$RTSP_LOW_RES_ENC_PARAMETER" != "" ]]; then
|
||||
watch -n10 -t "/system/bin/impdbg --enc_rc_s 1:44:4:$RTSP_LOW_RES_ENC_PARAMETER" > /dev/null 2>&1 &
|
||||
if [[ "$V2" == "true" ]]; then
|
||||
watch -n10 -t "/system/bin/impdbg --enc_rc_s 1:0:4:$RTSP_LOW_RES_ENC_PARAMETER" > /dev/null 2>&1 &
|
||||
else
|
||||
watch -n10 -t "/system/bin/impdbg --enc_rc_s 1:44:4:$RTSP_LOW_RES_ENC_PARAMETER" > /dev/null 2>&1 &
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$RTSP_LOW_RES_MAX_BITRATE" != "" ]]; then
|
||||
watch -n10 -t "/system/bin/impdbg --enc_rc_s 1:48:4:$RTSP_LOW_RES_MAX_BITRATE" > /dev/null 2>&1 &
|
||||
if [[ "$V2" == "true" ]]; then
|
||||
watch -n10 -t "/system/bin/impdbg --enc_rc_s 1:28:4:$RTSP_LOW_RES_MAX_BITRATE" > /dev/null 2>&1 &
|
||||
else
|
||||
watch -n10 -t "/system/bin/impdbg --enc_rc_s 1:48:4:$RTSP_LOW_RES_MAX_BITRATE" > /dev/null 2>&1 &
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$RTSP_LOW_RES_TARGET_BITRATE" != "" ]]; then
|
||||
watch -n10 -t "/system/bin/impdbg --enc_rc_s 1:52:4:$RTSP_LOW_RES_TARGET_BITRATE" > /dev/null 2>&1 &
|
||||
if [[ "$V2" == "true" ]]; then
|
||||
echo "not supported on v2"
|
||||
else
|
||||
watch -n10 -t "/system/bin/impdbg --enc_rc_s 1:52:4:$RTSP_LOW_RES_TARGET_BITRATE" > /dev/null 2>&1 &
|
||||
fi
|
||||
fi
|
||||
|
||||
else
|
||||
|
@ -1,14 +1,37 @@
|
||||
#!/bin/sh
|
||||
|
||||
exec 1>> /opt/wz_mini/log/watch_up.log 2>&1
|
||||
|
||||
set -x
|
||||
|
||||
event="$1"
|
||||
directory="$2"
|
||||
file="$3"
|
||||
|
||||
case "$event" in
|
||||
n) if [[ "$file" == "upgraderun.sh" ]]; then
|
||||
n) date; if [[ "$file" == "img" ]]; then
|
||||
|
||||
set -x
|
||||
|
||||
#hook the v2
|
||||
if cat /params/config/.product_config | grep WYZEC1-JZ; then
|
||||
while [ ! -f /tmp/Upgrade/upgraderun.sh ]
|
||||
do
|
||||
sed -i '/pgrep/,+4d' /tmp/Upgrade/upgraderun.sh
|
||||
find /tmp/Upgrade > /opt/upgrade_find.log &
|
||||
sleep 0.1
|
||||
done
|
||||
|
||||
else
|
||||
|
||||
#t31
|
||||
while [ ! -f /tmp/Upgrade/upgraderun.sh ]
|
||||
do
|
||||
pkill -f "sh /tmp/Upgrade/upgraderun.sh"
|
||||
mv /tmp/Upgrade/upgraderun.sh /tmp/Upgrade/upgraderun.old
|
||||
echo "squashed upgraderun.sh"
|
||||
sleep 0.1
|
||||
done
|
||||
|
||||
echo "start countdown"
|
||||
secs=30
|
||||
@ -24,35 +47,49 @@ case "$event" in
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -e /tmp/Upgrade/app ]]; then
|
||||
echo "found app image, flashing"
|
||||
flashcp -v /tmp/Upgrade/app /dev/mtd3
|
||||
/opt/wz_mini/bin/busybox sync
|
||||
else
|
||||
echo "no kernel image present"
|
||||
fi
|
||||
|
||||
if [[ -e /tmp/Upgrade/kernel ]]; then
|
||||
echo "found kernel image, flashing"
|
||||
flashcp -v /tmp/Upgrade/kernel /dev/mtd1
|
||||
/opt/wz_mini/bin/busybox sync
|
||||
if cat /params/config/.product_config | grep WYZEC1-JZ; then
|
||||
echo "v2 found"
|
||||
upgrade_path=$(find /tmp/Upgrade | grep upgradecp.sh)
|
||||
sed -i '/wc -c $KERNEL/,+14d' $upgrade_path
|
||||
#mv /tmp/Upgrade/upgraderun.sh /tmp/Upgrade/run_upg.sh
|
||||
#sh /tmp/Upgrade/run_upg.sh
|
||||
/tmp/Upgrade/system_upgrade.sh
|
||||
else
|
||||
echo "no app image present"
|
||||
|
||||
if [[ -e /tmp/Upgrade/app ]]; then
|
||||
echo "found app image, flashing"
|
||||
flashcp -v /tmp/Upgrade/app /dev/mtd3
|
||||
/opt/wz_mini/bin/busybox sync
|
||||
else
|
||||
echo "no kernel image present"
|
||||
fi
|
||||
|
||||
if [[ -e /tmp/Upgrade/kernel ]]; then
|
||||
echo "found kernel image, flashing"
|
||||
flashcp -v /tmp/Upgrade/kernel /dev/mtd1
|
||||
/opt/wz_mini/bin/busybox sync
|
||||
else
|
||||
echo "no app image present"
|
||||
fi
|
||||
|
||||
if [[ -e /tmp/Upgrade/rootfs ]]; then
|
||||
echo "found rootfs image, flashing"
|
||||
flashcp -v /tmp/Upgrade/rootfs /dev/mtd2
|
||||
/opt/wz_mini/bin/busybox sync
|
||||
else
|
||||
echo "no root image present"
|
||||
fi
|
||||
|
||||
if [[ -e /tmp/Upgrade/rootfs ]]; then
|
||||
echo "found rootfs image, flashing"
|
||||
flashcp -v /tmp/Upgrade/rootfs /dev/mtd2
|
||||
/opt/wz_mini/bin/busybox sync
|
||||
else
|
||||
echo "no root image present"
|
||||
fi
|
||||
/opt/wz_mini/bin/busybox sync
|
||||
/opt/wz_mini/bin/busybox sync
|
||||
sleep 5
|
||||
echo reboot
|
||||
/opt/wz_mini/bin/busybox reboot
|
||||
|
||||
fi
|
||||
|
||||
fi;;
|
||||
*) echo "This script must be run from inotifyd";;
|
||||
esac
|
||||
|
29
v2_install/compile_image.sh
Executable file
29
v2_install/compile_image.sh
Executable file
@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
DL_URL=$(wget --user-agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" -qO- https://support.wyze.com/hc/en-us/articles/360024852172-Release-Notes-Firmware | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*" | grep /v2/ | sort -t . -k2r,5 | grep demo | head -1)
|
||||
|
||||
echo "create work directory"
|
||||
mkdir v2_ro
|
||||
|
||||
echo "download latest firmware"
|
||||
wget $DL_URL -P ./v2_ro/
|
||||
|
||||
echo "extracting firmware to workdir"
|
||||
unzip v2_ro/demo_4.9.8.1002.zip -d ./v2_ro/
|
||||
|
||||
echo "create firmware dir"
|
||||
mkdir v2_ro/tmp_dir
|
||||
|
||||
echo "unpack stock firmware"
|
||||
./fw_tool.sh unpack v2_ro/demo_4.9.8.1002.bin v2_ro/tmp_dir
|
||||
|
||||
echo "replace kernel"
|
||||
cp v2_kernel.bin v2_ro/tmp_dir/kernel.bin
|
||||
|
||||
echo "pack firmware with new kernel"
|
||||
./fw_tool.sh pack v2_ro/tmp_dir/ demo.bin
|
||||
|
||||
echo "md5sum is: " `md5sum demo.bin`
|
||||
rm -rf v2_ro
|
||||
|
||||
echo "demo.bin ready. Please copy demo.bin to your memory card"
|
38
v2_install/fw_tool.sh
Executable file
38
v2_install/fw_tool.sh
Executable file
@ -0,0 +1,38 @@
|
||||
#!/bin/sh
|
||||
|
||||
#custom for V2
|
||||
|
||||
ACTION=$1
|
||||
|
||||
KERNEL_OFFSET=$((64))
|
||||
ROOTFS_OFFSET=$((2097216))
|
||||
DRIVER_OFFSET=$((5570624))
|
||||
APPFS_OFFSET=$((6225984))
|
||||
|
||||
if [ "$ACTION" = "unpack" ]; then
|
||||
DEMO_IN=$2
|
||||
OUT_DIR=$3
|
||||
|
||||
dd if=${DEMO_IN} of=$OUT_DIR/kernel.bin skip=$KERNEL_OFFSET count=$(($ROOTFS_OFFSET-$KERNEL_OFFSET)) bs=1
|
||||
md5sum $OUT_DIR/kernel.bin
|
||||
|
||||
dd if=${DEMO_IN} of=$OUT_DIR/rootfs.bin skip=$ROOTFS_OFFSET count=$(($DRIVER_OFFSET-$ROOTFS_OFFSET)) bs=1
|
||||
md5sum $OUT_DIR/rootfs.bin
|
||||
dd if=${DEMO_IN} of=$OUT_DIR/driver.bin skip=$DRIVER_OFFSET count=$(($APPFS_OFFSET-$DRIVER_OFFSET)) bs=1
|
||||
md5sum $OUT_DIR/driver.bin
|
||||
|
||||
IMAGE_END=$(($(stat -c %s ${DEMO_IN})))
|
||||
dd if=${DEMO_IN} of=$OUT_DIR/appfs.bin skip=$APPFS_OFFSET count=$(($IMAGE_END-$APPFS_OFFSET)) bs=1
|
||||
md5sum $OUT_DIR/appfs.bin
|
||||
|
||||
elif [ "$ACTION" = "pack" ]; then
|
||||
TMP_DIR=$2
|
||||
DEMO_OUT=$3
|
||||
# need to pad kernel is its smaller than the stock kernel size, 2097152 bytes
|
||||
dd if=/dev/zero of=$TMP_DIR/kernel.bin bs=1 count=1 seek=2097151
|
||||
cat $TMP_DIR/kernel.bin $TMP_DIR/rootfs.bin $TMP_DIR/driver.bin $TMP_DIR/appfs.bin > $TMP_DIR/flash.bin
|
||||
mkimage -A MIPS -O linux -T firmware -C none -a 0 -e 0 -n jz_fw -d $TMP_DIR/flash.bin $DEMO_OUT
|
||||
|
||||
else
|
||||
echo "Unknown action '$ACTION'"
|
||||
fi
|
BIN
v2_install/v2_kernel.bin
Normal file
BIN
v2_install/v2_kernel.bin
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user