Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ _(based on Buildroot)_
### List of known and supported devices

```
Anxinshi ASRIH698T HI3516DV100 IMX291 - NOR_8M testing, pan/tilt (pelco-d UART1)
Aoni EP01J05 T31L ? RTL8188FU_USB NOR_16M new
Azarton C1 T20X JXF23 RTL8189FS_SDIO NOR_16M done
Azarton C1 T31X GC2053 RTL8189FS_SDIO NOR_16M done
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Architecture
BR2_arm=y
BR2_cortex_a7=y
BR2_ARM_EABI=y
BR2_ARM_FPU_NEON_VFPV4=y
BR2_ARM_INSTRUCTIONS_THUMB2=y

# Toolchain
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz"
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-openipc-linux-musleabi"
BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y
BR2_TOOLCHAIN_EXTERNAL_CXX=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)/hi3516dv100.generic.config"
BR2_LINUX_KERNEL_UIMAGE=y
BR2_LINUX_KERNEL_XZ=y

# Filesystem
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/package/busybox/busybox.config"
BR2_PACKAGE_UBOOT_TOOLS=y
BR2_PACKAGE_ZLIB=y
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
BR2_PACKAGE_WIREGUARD_TOOLS=y
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_SQUASHFS=y
BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y

# OpenIPC
BR2_OPENIPC_SOC_VENDOR="hisilicon"
BR2_OPENIPC_SOC_MODEL="hi3516dv100"
BR2_OPENIPC_SOC_FAMILY="hi3516av100"
BR2_OPENIPC_VARIANT="lite"
BR2_OPENIPC_FLASH_SIZE="8"

# Packages
BR2_PACKAGE_DROPBEAR_OPENIPC=y
BR2_PACKAGE_HISILICON_OPENSDK=y
BR2_PACKAGE_HISILICON_OSDRV_HI3516AV100=y
BR2_PACKAGE_IPCTOOL=y
BR2_PACKAGE_LIBCURL_OPENIPC=y
BR2_PACKAGE_LIBCURL_OPENIPC_CURL=y
# 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_LIBEVENT_OPENIPC=y
BR2_PACKAGE_LIBOGG_OPENIPC=y
BR2_PACKAGE_MAJESTIC_FONTS=y
BR2_PACKAGE_MAJESTIC_WEBUI=y
BR2_PACKAGE_MAJESTIC=y
BR2_PACKAGE_MAJESTIC_AF=y
BR2_PACKAGE_MBEDTLS_OPENIPC=y
BR2_PACKAGE_MOTORS=y
BR2_PACKAGE_OPUS_OPENIPC=y
BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y
BR2_PACKAGE_VTUND_OPENIPC=y
BR2_PACKAGE_YAML_CLI=y
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/bin/sh
#
# Perform basic settings on a known IP camera
#
# Anxinshi ASRIH698T-020-20X speed dome: the XiongMai HI3516D_N81820 main
# board (hi3516dv100 + Sony IMX291 on the DC/parallel interface) in a 20x
# pan/tilt dome. Pan/tilt is an MCU in the base that speaks Pelco-D, address
# 1, 9600 8N1, over RS-485 on UART1 (OpenIPC/firmware#2385). muxes.sh puts
# UART1 on its pads and holds the transceiver in transmit on every boot.
#
# The zoom/focus lens is the board's MS41908M on SPI, as on the varifocal
# hi3516dv100_lite_xm-n81820. majestic drives one motor actuator, and here it
# is the pan/tilt head, so the lens is not driven by majestic on this image.
#
#
# Set sensor. IMX291 on this board is the DC/parallel variant, so pin its ini
# explicitly (the MIPI default would give no video).
#
fw_setenv sensor imx291
cli -s .isp.sensorConfig /etc/sensors/imx291_i2c_dc_1080p.ini
#
# Set custom upgrade url
#
fw_setenv upgrade 'https://github.com/OpenIPC/builder/releases/download/latest/hi3516dv100_lite_anxinshi-asrih698t-nor.tgz'
#
#
# PTZ: Pelco-D pan/tilt on UART1. ptz_caps narrows the WebUI pad to what the
# base does; a Pelco-D zoom frame reaches it and is ignored.
#
fw_setenv ptz_control pelco-d
fw_setenv ptz_port /dev/ttyAMA1
fw_setenv ptz_speed 9600
fw_setenv ptz_caps 'pan tilt'
cli -s .ptz.enabled true
#
#
# Reboot so the environment takes effect.
#
(sleep 3 ; reboot -f) &
#

exit 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/sh
#
# Anxinshi ASRIH698T-020-20X pinmux preset; S30customizer runs it on every
# boot, before majestic opens the port.
#
# The pan/tilt MCU sits behind an RS-485 transceiver on UART1. The stock
# firmware muxes UART1 RXD/TXD and keeps the UART1_RTSN ball as GPIO9_2,
# driven as the transceiver's direction pin (Hi3516A/D datasheet table 2-48;
# OpenIPC/firmware#2385). GPIO9_2 resets low, which is receive, so nothing
# majestic sends would reach the bus. Pan/tilt frames need no reply, so the
# pin is held high.
#

devmem 0x200f0078 32 0
devmem 0x200f007c 32 1
devmem 0x200f0084 32 1

dir=$(devmem 0x201d0400)
devmem 0x201d0400 32 $((dir | 0x4))
devmem 0x201d0010 32 0x4
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/usr/lib/sensors/libsns_ar0330_dc.so
/usr/lib/sensors/libsns_imx122.so
/usr/lib/sensors/libsns_imx224.so
/usr/lib/sensors/libsns_imx225.so
/usr/lib/sensors/libsns_imx290.so
/usr/lib/sensors/libsns_imx291.so
Comment thread
qodo-free-for-open-source-projects[bot] marked this conversation as resolved.
/usr/lib/sensors/libsns_imx385.so
/usr/lib/sensors/libsns_os05a10.so
/usr/lib/sensors/libsns_ov2718.so
/usr/lib/sensors/libsns_sc2310.so
/usr/lib/sensors/libsns_sc5235.so
#
/etc/sensors/ar0237_i2c_dc_1080p.ini
/etc/sensors/ar0330_i2c_3M.ini
/etc/sensors/ar0330_i2c_dc_3M.ini
/etc/sensors/gc2053_i2c_1080p.ini
/etc/sensors/imx123_i2c_lvds_3M.ini
/etc/sensors/imx178_i2c_lvds_5M.ini
/etc/sensors/imx185_i2c_1080p.ini
/etc/sensors/imx307_i2c_2l_1080p.ini
/etc/sensors/imx335_i2c_4M.ini
/etc/sensors/imx385_i2c_1080p.ini
/etc/sensors/os05a_i2c_5M.ini
/etc/sensors/ov4689_i2c_1080p.ini
/etc/sensors/ov4689_i2c_4M.ini
/etc/sensors/ov5658_i2c_5M.ini
/etc/sensors/sc4236_i2c_3M.ini
Loading