Skip to content

Commit

Permalink
add Xiaomi MJSXJ03HL with JXQ03
Browse files Browse the repository at this point in the history
  • Loading branch information
cronyx committed Feb 14, 2024
1 parent 15ddf67 commit 735363d
Show file tree
Hide file tree
Showing 7 changed files with 309 additions and 0 deletions.
1 change: 1 addition & 0 deletions .github/workflows/master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ jobs:
- t31_lite_chinamobile-hdc-51-a6-v11
- t31_lite_chinatelecom-y4h-50
- t31_lite_xiaomi-mjsxj03hl
- t31_lite_xiaomi-mjsxj03hl-jxq03
- t31_lite_tuya-gv7630-t31-ptz
- t31_ultimate_azarton-c1-t31x
- t31_ultimate_gcraftsman-gca50
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ VStarcam CS55 T31N GC2053 RTL8188FU_USB NOR_16M in pr
Wansview Q5 1080p T21Z OV2735B RTL8188FU_USB NOR_16M in progress
Wansview Q5 2K T31L SC2336 ATBM6031_SDIO NOR_8M done
Xiaomi MJSXJ02HL HI3518EV300 JXF22 RTL8189FS_SDIO NOR_16M preparation
Xiaomi MJSXJ03HL T31N JXQ03 RTL8189FS_SDIO NOR_16M done
Xiaomi MJSXJ03HL T31N JXQ03P RTL8189FS_SDIO NOR_16M done
Xiaomi MJSXJ05HL T31L GC2053 ATBM6031_SDIO NOR_16M preparation
X-06S v2.2 T21 JXH62 RTL8188FU_USB NOR_8M in progress
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
# Architecture
BR2_mipsel=y
BR2_mips_xburst=y
# BR2_MIPS_SOFT_FLOAT is not set
BR2_MIPS_FP32_MODE_32=y
# BR2_MIPS_FP32_MODE_XX is not set
BR2_MIPS_NAN_LEGACY=y
BR2_MIPS_OABI32=y
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="3.10.14"
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_10=y

# Toolchain
BR2_PER_PACKAGE_DIRECTORIES=y
BR2_GCC_VERSION_12_X=y
# BR2_TOOLCHAIN_USES_UCLIBC is not set
# BR2_TOOLCHAIN_BUILDROOT_UCLIBC is not set
# BR2_TOOLCHAIN_BUILDROOT_LIBC="uclibc"
BR2_EXTRA_GCC_CONFIG_OPTIONS="--with-float=hard"
BR2_TOOLCHAIN_USES_MUSL=y
BR2_TOOLCHAIN_BUILDROOT_MUSL=y
BR2_TOOLCHAIN_BUILDROOT_LIBC="musl"
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TOOLCHAIN_BUILDROOT_LOCALE=y
BR2_TOOLCHAIN_BUILDROOT_USE_SSP=y

# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/openipc/linux/archive/$(OPENIPC_KERNEL).tar.gz"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/kernel/t31.generic.config"
BR2_LINUX_KERNEL_UIMAGE=y
BR2_LINUX_KERNEL_LZMA=y

# OpenIPC
BR2_OPENIPC_SOC_VENDOR="ingenic"
BR2_OPENIPC_SOC_MODEL="t31"
BR2_OPENIPC_SOC_FAMILY="t31"
BR2_OPENIPC_SNS_MODEL="jxq03"
BR2_OPENIPC_VARIANT="lite"
BR2_OPENIPC_FLASH_SIZE="8"

# Filesystem
# BR2_TARGET_TZ_INFO is not set
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_SQUASHFS=y
BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL)/overlay"
BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL)/scripts/rootfs_script.sh"

# OpenIPC configuration
BR2_TOOLCHAIN_BUILDROOT_VENDOR="openipc"
BR2_TARGET_GENERIC_ISSUE="Welcome to OpenIPC"
BR2_TARGET_GENERIC_HOSTNAME="openipc-t31"
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL)/package/all-patches"

# OpenIPC packages
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/package/busybox/busybox.config"
BR2_PACKAGE_DROPBEAR_OPENIPC=y
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
# BR2_PACKAGE_FDK_AAC_OPENIPC is not set
BR2_PACKAGE_UBOOT_TOOLS=y
BR2_PACKAGE_INGENIC_OSDRV_T31=y
BR2_PACKAGE_IPCTOOL=y
BR2_PACKAGE_JSON_C=y
BR2_PACKAGE_JSONFILTER=y
BR2_PACKAGE_LIBCURL_OPENIPC=y
BR2_PACKAGE_LIBCURL_OPENIPC_CURL=y
# BR2_PACKAGE_LIBCURL_OPENIPC_VERBOSE is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_PROXY_SUPPORT is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_COOKIES_SUPPORT is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_EXTRA_PROTOCOLS_FEATURES is not set
BR2_PACKAGE_LIBCURL_OPENIPC_MBEDTLS=y
BR2_PACKAGE_LIBEVENT_OPENIPC=y
BR2_PACKAGE_LIBEVENT_OPENIPC_REMOVE_PYSCRIPT=y
BR2_PACKAGE_LIBOGG_OPENIPC=y
BR2_PACKAGE_LIBYAML=y
BR2_PACKAGE_MAJESTIC_FONTS=y
BR2_PACKAGE_MAJESTIC=y
BR2_PACKAGE_MBEDTLS_OPENIPC=y
# BR2_PACKAGE_MBEDTLS_OPENIPC_PROGRAMS is not set
# BR2_PACKAGE_MBEDTLS_OPENIPC_COMPRESSION is not set
BR2_PACKAGE_WEBUI=y
# BR2_PACKAGE_MINI_SNMPD is not set
# BR2_PACKAGE_MOTORS is not set
BR2_PACKAGE_OPUS_OPENIPC=y
BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y
# BR2_PACKAGE_SSHPASS is not set
# BR2_PACKAGE_UACME_OPENIPC is not set
BR2_PACKAGE_VTUND_OPENIPC=y
BR2_PACKAGE_YAML_CLI=y
BR2_PACKAGE_QUIRC_OPENIPC=y
# BR2_PACKAGE_AUTONIGHT is not set

# WiFi
BR2_PACKAGE_WIRELESS_TOOLS=y
BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y
BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
BR2_PACKAGE_RTL8189FS_OPENIPC=y

# WIREGUARD
BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
BR2_PACKAGE_WIREGUARD_TOOLS=y

# EXPERIMENTAL
# BR2_PACKAGE_ONVIF_SIMPLE_SERVER is not set

# DEBUG
# BR2_PACKAGE_INGENIC_PWM is not set
# BR2_PACKAGE_LOGCAT_OPENIPC is not set
# BR2_PACKAGE_INGENIC_DIAG_TOOLS is not set
# BR2_PACKAGE_HOST_GDB is not set
# BR2_PACKAGE_GDB is not set

# CCACHE
BR2_CCACHE=y
BR2_CCACHE_DIR="$(HOME)/.ccache"

# Compression
BR2_PACKAGE_ZLIB=y

# External
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="mipsel-openipc-linux-musl"
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y
BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz"
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/bin/sh

AUTOLED_ARGS=""
AUTOLED_PID_FILE=/var/run/autoled.pid

start() {
printf "Starting automatic LED control: "
umask 077
start-stop-daemon -b -m -S -q -p $AUTOLED_PID_FILE \
--exec /usr/sbin/autoled.sh -- $AUTOLED_ARGS
[ $? = 0 ] && echo "OK" || echo "FAIL"
}

stop() {
printf "Stopping automatic LED control: "
start-stop-daemon -K -q -p $AUTOLED_PID_FILE
[ $? = 0 ] && echo "OK" || echo "FAIL"
}

restart() {
stop
start
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart | reload)
restart
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac

exit $?
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#!/bin/sh
#
# Automatic LED control for Xiaomi MJSXJ03HL

streamerProcess="majestic"
serviceProcess="sysupgrade"
pollingInterval=1

show_help() {
echo "Usage: $0 [-p process] [-s process] [-i value] [-h]
-p process Monitored streamer process (default = ${streamerProcess}).
-s process Monitored service process (default = ${serviceProcess}).
-i value Polling interval in seconds (default = ${pollingInterval}).
-h Show this help."
exit 0
}

# override config values with command line arguments
while getopts H:L:i:h flag; do
case ${flag} in
p)
streamerProcess=${OPTARG}
;;
s)
serviceProcess=${OPTARG}
;;
i)
pollingInterval=${OPTARG}
;;
h | *)
show_help
;;
esac
done

echo "Streamer process: ${streamerProcess}"
echo "Service process: ${serviceProcess}"
echo "Polling interval: ${pollingInterval} sec"

led_state=0
/usr/sbin/led_control.sh -o 0 -b 0

while true; do
if killall -q -0 $serviceProcess; then
if [ $led_state -ne 3 ]; then
echo "$serviceProcess is running, turn white LED on"
/usr/sbin/led_control.sh -o 1 -b 1
led_state=3
fi
else
if [ $led_state -ne 1 ] && ! killall -q -0 $streamerProcess; then
echo "$streamerProcess is not running, turn orange LED on"
/usr/sbin/led_control.sh -o 1 -b 0
led_state=1
elif [ $led_state -ne 2 ] && killall -q -0 $streamerProcess; then
echo "$streamerProcess is running, turn blue LED on"
/usr/sbin/led_control.sh -o 0 -b 1
led_state=2
fi
fi
sleep $pollingInterval
done
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/bin/sh
#
# LED control for Xiaomi MJSXJ03HL

show_help() {
echo "Usage: $0 [-o <0|1>] [-b <0|1>]
-o <0|1> Switch state for orange LED.
-b <0|1> Switch state for blue LED."
exit 0
}

led_control() {
echo "Switching LED with GPIO${1} to state ${2}"
if [ ! -d /sys/class/gpio/gpio${1}/ ]; then
echo ${1} > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio${1}/direction
fi
echo ${2} > /sys/class/gpio/gpio${1}/value
}

if [ $# -eq 0 ]; then show_help; fi
while getopts o:b: flag; do
case ${flag} in
o)
[ ${OPTARG} -eq 0 -o ${OPTARG} -eq 1 ] || show_help
led_control 39 ${OPTARG}
;;
b)
[ ${OPTARG} -eq 0 -o ${OPTARG} -eq 1 ] || show_help
led_control 38 ${OPTARG}
;;
*)
show_help
;;
esac
done
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/sh
#
# Perform basic settings on a known IP camera
#
#
# Set custom upgrade url
#
fw_setenv upgrade 'https://github.com/OpenIPC/builder/releases/download/latest/t31_lite_xiaomi-mjsxj03hl-jxq03-nor.tgz'
#
#
# Set custom majestic settings
#
cli -s .system.webAdmin disabled
cli -s .system.staticDir /var/www/majestic
cli -s .isp.blkCnt 1
cli -s .nightMode.enabled true
cli -s .nightMode.irCutPin1 49
cli -s .nightMode.irCutPin2 50
cli -s .nightMode.backlightPin 60
cli -s .video0.codec h264
#
#
# Set wlan device and credentials if need
#
fw_setenv wlandev rtl8189fs-generic
#fw_setenv wlanssid Router
#fw_setenv wlanpass 12345678
#
#
# Set osmem and rmem
#
fw_setenv osmem 39M
fw_setenv rmem 25M@0x2700000
#
exit 0

0 comments on commit 735363d

Please sign in to comment.