Add support Lenovo snowman 1080p camera (#13)

* add-lenovo-snowman-1080p

* Correct flavor from lite to ultimate

* Delete devices/hi3518ev200_ultimate_lenovo-snowman-1080p/general/overlay/etc/builder.msg

* Delete devices/hi3518ev200_ultimate_lenovo-snowman-1080p/general/overlay/etc/wireless/usb

* deleted:    bin/load_hisilicon moved changes to firmware

* Removal from the list deletion of staging modules because in not build anymore

* Delete undeeded option and set wlandev env variable

* Delete changes, work at default 30fps

* Add mux GPIO 37 for audio speaker

* Add lite flavor lenovo snowman 1080p

* Cosmetic changes

* Removal preset sensor

---------

Co-authored-by: andrew <andrew@gradient.ru>
Co-authored-by: Signor Pellegrino <68112357+FlyRouter@users.noreply.github.com>
This commit is contained in:
Steam
2024-02-15 12:36:55 +03:00
committed by GitHub
parent 735363dd47
commit cd5e1126f1
16 changed files with 5932 additions and 0 deletions

View File

@@ -19,12 +19,14 @@ jobs:
- gk7205v210_lite_vixand-ivg-g3s - gk7205v210_lite_vixand-ivg-g3s
- gk7205v210_lite_vixand-ivg-g4f-a - gk7205v210_lite_vixand-ivg-g4f-a
- hi3516cv200_lite_trassir-tr-d4121ir1-v2 - hi3516cv200_lite_trassir-tr-d4121ir1-v2
- hi3518ev200_lite_lenovo-snowman-1080p
- hi3518ev200_lite_smartwares-cip-37210 - hi3518ev200_lite_smartwares-cip-37210
- hi3518ev200_lite_switcam-hs303 - hi3518ev200_lite_switcam-hs303
- hi3518ev200_lite_switcam-hs303-v2 - hi3518ev200_lite_switcam-hs303-v2
- hi3518ev200_lite_vstarcam-c8892wip - hi3518ev200_lite_vstarcam-c8892wip
- hi3518ev200_lite_qtech-qvc-ipc-136w - hi3518ev200_lite_qtech-qvc-ipc-136w
- hi3518ev300_lite_xiaomi-mjsxj02hl - hi3518ev300_lite_xiaomi-mjsxj02hl
- hi3518ev200_ultimate_lenovo-snowman-1080p
- ssc30kd_lite_chinatelecom-ds-ytj5301 - ssc30kd_lite_chinatelecom-ds-ytj5301
- ssc325_lite_imilab-ec3-cmsxj25a - ssc325_lite_imilab-ec3-cmsxj25a
- ssc325de_lite_imou-c22ep-s2 - ssc325de_lite_imou-c22ep-s2

View File

@@ -56,6 +56,7 @@ CMCC HDC-51 A6-V11 T31L SC2332 RTL8188FU_USB NOR_16M done
Azarton C1 T20X JXF23 RTL8189FS_SDIO NOR_16M done Azarton C1 T20X JXF23 RTL8189FS_SDIO NOR_16M done
Azarton C1 T31X GC2053 RTL8189FS_SDIO NOR_16M done Azarton C1 T31X GC2053 RTL8189FS_SDIO NOR_16M done
JVS INGT10 GQS60EP T10A OV9750 - NOR_8M done JVS INGT10 GQS60EP T10A OV9750 - NOR_8M done
Lenovo Snowman 1080P HI3518EV200 SC2035 RTL8188EUS_USB NOR_16M in progress, LightSensor-no
ZTE K540 T31X SC4336 ATBM6012B_USB NOR_16M done ZTE K540 T31X SC4336 ATBM6012B_USB NOR_16M done
H3C TC2101 SSC337 JXQ03 RTL8188FU_USB NOR_16M done H3C TC2101 SSC337 JXQ03 RTL8188FU_USB NOR_16M done
``` ```

View File

@@ -0,0 +1,126 @@
# Architecture
BR2_arm=y
BR2_arm926t=y
BR2_ARM_EABI=y
# BR2_ARM_INSTRUCTIONS_THUMB is not set
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="4.9.37"
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=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_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/hi3518ev200.generic.config"
BR2_LINUX_KERNEL_UIMAGE=y
BR2_LINUX_KERNEL_XZ=y
# OpenIPC
BR2_OPENIPC_SOC_VENDOR="hisilicon"
BR2_OPENIPC_SOC_MODEL="hi3518ev200"
BR2_OPENIPC_SOC_FAMILY="hi3516cv200"
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-hi3518ev200"
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_HISI_GPIO is not set
BR2_PACKAGE_HISILICON_OSDRV_HI3516CV200=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
# 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_LINUX_FIRMWARE_OPENIPC is not set
# BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MEDIATEK_MT7601U is not set
# BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_RTL_8188EU is not set
# BR2_PACKAGE_RTL8188EU is not set
BR2_PACKAGE_RTL8188EUS_OPENIPC=y
# BR2_PACKAGE_RTL8188FU_OPENIPC is not set
# WIREGUARD
BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
BR2_PACKAGE_WIREGUARD_TOOLS=y
# DEBUG
# 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="arm-openipc-linux-musleabi"
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9=y
BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz"

View File

@@ -0,0 +1,19 @@
#!/bin/sh
# load vendor specific drivers
vendor=$(ipcinfo -v)
log_vendor() {
logger -s -p daemon.info -t ${vendor} "$1"
}
case "$1" in
start)
[ "${vendor}" = "goke" ] || [ "${vendor}" = "hisilicon" ] && status=$(check_mac)
[ -n "${status}" ] && log_vendor "${status}"
# mux GPIO37 for speaker
devmem 0x200f0068 32 0x0
echo -e '\nLoading of kernel modules...'
load_${vendor} -i
;;
esac

View File

@@ -0,0 +1,93 @@
#!/bin/sh
GPIO_RED=48
GPIO_GREEN=47
GPIO_BLUE=49
help() {
echo -e "\n================= LIGHT usage =================\n"
echo -e "Set the colour of the status light\n"
echo -e "light <off|red|green|blue|yellow|magenta|cyan|white>\n"
}
setRed() {
if [ -n "$GPIO_RED" ]; then
[ $1 -eq 1 ] && gpio set "$GPIO_RED" || gpio clear "$GPIO_RED"
else
echo "[INFO] Status Lights: Red GPIO undefined in /usr/sbin/light" > /dev/kmsg
fi
}
setGreen() {
if [ -n "$GPIO_GREEN" ]; then
[ $1 -eq 1 ] && gpio set "$GPIO_GREEN" || gpio clear "$GPIO_GREEN"
else
echo "[INFO] Status Lights: Green GPIO undefined in /usr/sbin/light" > /dev/kmsg
fi
}
setBlue() {
if [ -n "$GPIO_BLUE" ]; then
[ $1 -eq 1 ] && gpio set "$GPIO_BLUE" || gpio clear "$GPIO_BLUE"
else
echo "[INFO] Status Lights: Blue GPIO undefined in /usr/sbin/light" > /dev/kmsg
fi
}
if [ -n $1 ]; then
case $1 in
off)
setRed 1
setGreen 1
setBlue 1
;;
red)
setRed 0
setGreen 1
setBlue 1
;;
green)
setRed 1
setGreen 0
setBlue 1
;;
blue)
setRed 1
setGreen 1
setBlue 0
;;
yellow)
setRed 0
setGreen 0
setBlue 1
;;
magenta|purple)
setRed 0
setGreen 1
setBlue 0
;;
cyan)
setRed 1
setGreen 0
setBlue 0
;;
white)
setRed 0
setGreen 0
setBlue 0
;;
*)
help
;;
esac
else
help
fi

View File

@@ -0,0 +1,32 @@
#!/bin/sh
# Set Reset switch GPIO
GPIO=3
[ -z $GPIO ] && echo "GPIO pin for resetd is not set" && echo "[resetd] GPIO undefined in /usr/sbin/resetd" > /dev/kmsg && exit
# Counter for button press until reset
count=0
# prepare the pin
if [ ! -d /sys/class/gpio/gpio${GPIO} ]; then
echo "${GPIO}" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio"${GPIO}"/direction
fi
# continuously monitor current value of reset switch
while [ true ]; do
if [ "$(cat /sys/class/gpio/gpio"${GPIO}"/value)" -eq 1 ]; then
count=0
else
count=$((count+1))
# 20 counts =~ 5 seconds @ 0.25 sleep intervals
if [ $count -eq 20 ]; then
echo 'RESETTING FIRMWARE'
firstboot
fi
fi
# This interval uses 1% CPU. Less sleep = more CPU
sleep 0.25
done

View File

@@ -0,0 +1,23 @@
#!/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/hi3518ev200_lite_lenovo-snowman-1080p-nor.tgz'
fw_setenv wlandev 'rtl8188eus-hi3518ev200-lenovo'
#
#
# Set custom majestic settings
#
cli -s .system.staticDir /var/www/majestic
cli -s .nightMode.enabled true
cli -s .nightMode.irCutPin1 33
cli -s .nightMode.irCutSingleInvert true
cli -s .nightMode.backlightPin 50
cli -s .audio.speakerPin 37
#
exit 0

View File

@@ -0,0 +1,52 @@
/etc/sensors/ar0130_i2c_720p.ini
/etc/sensors/gc1034_i2c_720p.ini
/etc/sensors/imx222_i2c_1080p.ini
/etc/sensors/imx222_i2c_720p.ini
/etc/sensors/imx291_i2c_lvds_1080p.ini
/etc/sensors/imx323_i2c_dc_1080p.ini
/etc/sensors/imx323_spi_dc_1080p.ini
/etc/sensors/jxf22_i2c_1080p.ini
/etc/sensors/jxf23_i2c_1080p.ini
/etc/sensors/jxh62_i2c_720p.ini
/etc/sensors/jxh65_i2c_960p.ini
/etc/sensors/ov2735_i2c_1080p.ini
/etc/sensors/ov9712_i2c_720p.ini
/etc/sensors/ov9732_i2c_720p.ini
/etc/sensors/ov9750_i2c_960p.ini
/etc/sensors/sc1135_i2c_720p.ini
/etc/sensors/sc1145_i2c_720p.ini
/etc/sensors/sc1235_i2c_dc_960p.ini
/etc/sensors/sc2135_i2c_1080p.ini
/etc/sensors/sc2235_i2c_dc_1080p.ini
/etc/sensors/ar0237_i2c_dc_1080p.ini
#
/etc/sensors/iq/ar0230.ini
/etc/sensors/iq/imx222.ini
/etc/sensors/iq/ov9732.ini
/etc/sensors/iq/ov9750.ini
#
/usr/lib/sensors/libsns_ar0130.so
/usr/lib/sensors/libsns_gc1034.so
/usr/lib/sensors/libsns_gc2023.so
/usr/lib/sensors/libsns_imx122.so
/usr/lib/sensors/libsns_imx222.so
/usr/lib/sensors/libsns_imx291.so
/usr/lib/sensors/libsns_imx323_i2c_dc.so
/usr/lib/sensors/libsns_imx323_i2c_dc_v1.so
/usr/lib/sensors/libsns_jxf22.so
/usr/lib/sensors/libsns_jxf23.so
/usr/lib/sensors/libsns_jxh62.so
/usr/lib/sensors/libsns_jxh65.so
/usr/lib/sensors/libsns_mn34222.so
/usr/lib/sensors/libsns_ov2718.so
/usr/lib/sensors/libsns_ov2735.so
/usr/lib/sensors/libsns_ov9712.so
/usr/lib/sensors/libsns_ov9732.so
/usr/lib/sensors/libsns_ov9750.so
/usr/lib/sensors/libsns_ov9752.so
/usr/lib/sensors/libsns_sc1135.so
/usr/lib/sensors/libsns_sc1145.so
/usr/lib/sensors/libsns_sc1235.so
/usr/lib/sensors/libsns_sc2135.so
/usr/lib/sensors/libsns_sc2235.so
#

View File

@@ -0,0 +1,147 @@
# Architecture
BR2_arm=y
BR2_arm926t=y
BR2_ARM_EABI=y
# BR2_ARM_INSTRUCTIONS_THUMB is not set
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="4.9.37"
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=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_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/hi3518ev200.generic.config"
BR2_LINUX_KERNEL_UIMAGE=y
BR2_LINUX_KERNEL_XZ=y
# OpenIPC
BR2_OPENIPC_SOC_VENDOR="hisilicon"
BR2_OPENIPC_SOC_MODEL="hi3518ev200"
BR2_OPENIPC_SOC_FAMILY="hi3516cv200"
BR2_OPENIPC_VARIANT="ultimate"
BR2_OPENIPC_FLASH_SIZE="16"
# 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_TARGET_ROOTFS_UBI=y
BR2_TARGET_ROOTFS_UBI_SUBSIZE=2048
BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG=y
BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/scripts/ubifs/ubinize.cfg"
BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000
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-hi3518ev200"
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_HISI_GPIO is not set
BR2_PACKAGE_HISILICON_OSDRV_HI3516CV200=y
BR2_PACKAGE_IPCTOOL=y
BR2_PACKAGE_JSON_C=y
BR2_PACKAGE_JSONFILTER=y
BR2_PACKAGE_LAME_OPENIPC=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_LIBWEBSOCKETS_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=y
BR2_PACKAGE_VTUND_OPENIPC=y
BR2_PACKAGE_YAML_CLI=y
BR2_PACKAGE_QUIRC_OPENIPC=y
# 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_LINUX_FIRMWARE_OPENIPC is not set
# BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MEDIATEK_MT7601U is not set
# BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_RTL_8188EU is not set
# BR2_PACKAGE_RTL8188EU is not set
BR2_PACKAGE_RTL8188EUS_OPENIPC=y
# BR2_PACKAGE_RTL8188FU_OPENIPC is not set
# WIREGUARD
BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
BR2_PACKAGE_WIREGUARD_TOOLS=y
# IPTABLES
BR2_PACKAGE_IPTABLES=y
# MQTT
BR2_PACKAGE_MOSQUITTO=y
# BR2_PACKAGE_MOSQUITTO_BROKER is not set
# ZEROTIER
BR2_PACKAGE_ZEROTIER_ONE=y
# NABTO
# BR2_PACKAGE_NABTO is not set
# DEBUG
# 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="arm-openipc-linux-musleabi"
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9=y
BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz"

View File

@@ -0,0 +1,19 @@
#!/bin/sh
# load vendor specific drivers
vendor=$(ipcinfo -v)
log_vendor() {
logger -s -p daemon.info -t ${vendor} "$1"
}
case "$1" in
start)
[ "${vendor}" = "goke" ] || [ "${vendor}" = "hisilicon" ] && status=$(check_mac)
[ -n "${status}" ] && log_vendor "${status}"
# mux GPIO37 for speaker
devmem 0x200f0068 32 0x0
echo -e '\nLoading of kernel modules...'
load_${vendor} -i
;;
esac

View File

@@ -0,0 +1,93 @@
#!/bin/sh
GPIO_RED=48
GPIO_GREEN=47
GPIO_BLUE=49
help() {
echo -e "\n================= LIGHT usage =================\n"
echo -e "Set the colour of the status light\n"
echo -e "light <off|red|green|blue|yellow|magenta|cyan|white>\n"
}
setRed() {
if [ -n "$GPIO_RED" ]; then
[ $1 -eq 1 ] && gpio set "$GPIO_RED" || gpio clear "$GPIO_RED"
else
echo "[INFO] Status Lights: Red GPIO undefined in /usr/sbin/light" > /dev/kmsg
fi
}
setGreen() {
if [ -n "$GPIO_GREEN" ]; then
[ $1 -eq 1 ] && gpio set "$GPIO_GREEN" || gpio clear "$GPIO_GREEN"
else
echo "[INFO] Status Lights: Green GPIO undefined in /usr/sbin/light" > /dev/kmsg
fi
}
setBlue() {
if [ -n "$GPIO_BLUE" ]; then
[ $1 -eq 1 ] && gpio set "$GPIO_BLUE" || gpio clear "$GPIO_BLUE"
else
echo "[INFO] Status Lights: Blue GPIO undefined in /usr/sbin/light" > /dev/kmsg
fi
}
if [ -n $1 ]; then
case $1 in
off)
setRed 1
setGreen 1
setBlue 1
;;
red)
setRed 0
setGreen 1
setBlue 1
;;
green)
setRed 1
setGreen 0
setBlue 1
;;
blue)
setRed 1
setGreen 1
setBlue 0
;;
yellow)
setRed 0
setGreen 0
setBlue 1
;;
magenta|purple)
setRed 0
setGreen 1
setBlue 0
;;
cyan)
setRed 1
setGreen 0
setBlue 0
;;
white)
setRed 0
setGreen 0
setBlue 0
;;
*)
help
;;
esac
else
help
fi

View File

@@ -0,0 +1,32 @@
#!/bin/sh
# Set Reset switch GPIO
GPIO=3
[ -z $GPIO ] && echo "GPIO pin for resetd is not set" && echo "[resetd] GPIO undefined in /usr/sbin/resetd" > /dev/kmsg && exit
# Counter for button press until reset
count=0
# prepare the pin
if [ ! -d /sys/class/gpio/gpio${GPIO} ]; then
echo "${GPIO}" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio"${GPIO}"/direction
fi
# continuously monitor current value of reset switch
while [ true ]; do
if [ "$(cat /sys/class/gpio/gpio"${GPIO}"/value)" -eq 1 ]; then
count=0
else
count=$((count+1))
# 20 counts =~ 5 seconds @ 0.25 sleep intervals
if [ $count -eq 20 ]; then
echo 'RESETTING FIRMWARE'
firstboot
fi
fi
# This interval uses 1% CPU. Less sleep = more CPU
sleep 0.25
done

View File

@@ -0,0 +1,23 @@
#!/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/hi3518ev200_ultimate_lenovo-snowman-1080p-nor.tgz'
fw_setenv wlandev 'rtl8188eus-hi3518ev200-lenovo'
#
#
# Set custom majestic settings
#
cli -s .system.staticDir /var/www/majestic
cli -s .nightMode.enabled true
cli -s .nightMode.irCutPin1 33
cli -s .nightMode.irCutSingleInvert true
cli -s .nightMode.backlightPin 50
cli -s .audio.speakerPin 37
#
exit 0

View File

@@ -0,0 +1,52 @@
/etc/sensors/ar0130_i2c_720p.ini
/etc/sensors/gc1034_i2c_720p.ini
/etc/sensors/imx222_i2c_1080p.ini
/etc/sensors/imx222_i2c_720p.ini
/etc/sensors/imx291_i2c_lvds_1080p.ini
/etc/sensors/imx323_i2c_dc_1080p.ini
/etc/sensors/imx323_spi_dc_1080p.ini
/etc/sensors/jxf22_i2c_1080p.ini
/etc/sensors/jxf23_i2c_1080p.ini
/etc/sensors/jxh62_i2c_720p.ini
/etc/sensors/jxh65_i2c_960p.ini
/etc/sensors/ov2735_i2c_1080p.ini
/etc/sensors/ov9712_i2c_720p.ini
/etc/sensors/ov9732_i2c_720p.ini
/etc/sensors/ov9750_i2c_960p.ini
/etc/sensors/sc1135_i2c_720p.ini
/etc/sensors/sc1145_i2c_720p.ini
/etc/sensors/sc1235_i2c_dc_960p.ini
/etc/sensors/sc2135_i2c_1080p.ini
/etc/sensors/sc2235_i2c_dc_1080p.ini
/etc/sensors/ar0237_i2c_dc_1080p.ini
#
/etc/sensors/iq/ar0230.ini
/etc/sensors/iq/imx222.ini
/etc/sensors/iq/ov9732.ini
/etc/sensors/iq/ov9750.ini
#
/usr/lib/sensors/libsns_ar0130.so
/usr/lib/sensors/libsns_gc1034.so
/usr/lib/sensors/libsns_gc2023.so
/usr/lib/sensors/libsns_imx122.so
/usr/lib/sensors/libsns_imx222.so
/usr/lib/sensors/libsns_imx291.so
/usr/lib/sensors/libsns_imx323_i2c_dc.so
/usr/lib/sensors/libsns_imx323_i2c_dc_v1.so
/usr/lib/sensors/libsns_jxf22.so
/usr/lib/sensors/libsns_jxf23.so
/usr/lib/sensors/libsns_jxh62.so
/usr/lib/sensors/libsns_jxh65.so
/usr/lib/sensors/libsns_mn34222.so
/usr/lib/sensors/libsns_ov2718.so
/usr/lib/sensors/libsns_ov2735.so
/usr/lib/sensors/libsns_ov9712.so
/usr/lib/sensors/libsns_ov9732.so
/usr/lib/sensors/libsns_ov9750.so
/usr/lib/sensors/libsns_ov9752.so
/usr/lib/sensors/libsns_sc1135.so
/usr/lib/sensors/libsns_sc1145.so
/usr/lib/sensors/libsns_sc1235.so
/usr/lib/sensors/libsns_sc2135.so
/usr/lib/sensors/libsns_sc2235.so
#