#!/bin/sh chip=$(ipcinfo -c) family=$(ipcinfo -f) vendor=$(ipcinfo -v) sensor=$(ipcinfo -s) prefix=${family} cli="yaml-cli -i /etc/majestic.yaml" all_other() { if [ ${vendor} = "hisilicon" ]; then prefix="open" fi # don't load f2fs module (disabled in kernel) sed -i "s!f2fs!#f2fs!g" /etc/modules # remove unneeded modules sed -i "s!insmod ${prefix}_rgn.ko!#insmod ${prefix}_rgn.ko!g" /usr/bin/load_${vendor} sed -i "s!insmod ${prefix}_jpege.ko!#insmod ${prefix}_jpege.ko!g" /usr/bin/load_${vendor} sed -i "s!insmod ${prefix}_ive.ko save_power=0!#insmod ${prefix}_ive.ko save_power=0!g" /usr/bin/load_${vendor} sed -i "s!insmod ${prefix}_aio.ko!#insmod ${prefix}_aio.ko!g" /usr/bin/load_${vendor} sed -i "s!insmod ${prefix}_ai.ko!#insmod ${prefix}_ai.ko!g" /usr/bin/load_${vendor} sed -i "s!insmod ${prefix}_ao.ko!#insmod ${prefix}_ao.ko!g" /usr/bin/load_${vendor} sed -i "s!insmod ${prefix}_aenc.ko!#insmod ${prefix}_aenc.ko!g" /usr/bin/load_${vendor} sed -i "s!insmod ${prefix}_adec.ko!#insmod ${prefix}_adec.ko!g" /usr/bin/load_${vendor} sed -i "s!insmod ${prefix}_acodec.ko!#insmod ${prefix}_acodec.ko!g" /usr/bin/load_${vendor} # change fps 25 -> 30 sed -i "s!Isp_FrameRate=25!Isp_FrameRate=30!g" /etc/sensors/imx307_i2c_2l_1080p.ini sed -i "s!Isp_FrameRate=25!Isp_FrameRate=30!g" /etc/sensors/smtsec_imx307_i2c_4l_1080p.ini # disable mavlink routerd autostart sed -i "s!/usr/bin/mavlink-routerd &!#/usr/bin/mavlink-routerd &!g" /etc/init.d/S97mavlink # majestic basic settings ${cli} -s .isp.slowShutter disabled ${cli} -s .isp.drc 350 # enable digital image stabilization # ${cli} -s .isp.dis true ${cli} -s .image.contrast 50 ${cli} -s .image.luminance 50 ${cli} -s .video0.bitrate 4096 ${cli} -s .video0.codec h264 ${cli} -s .video0.rcMode cbr ${cli} -s .video0.gopSize 0.1 ${cli} -s .hls.enabled false ${cli} -s .netip.enabled false ${cli} -s .rtsp.enabled false ${cli} -s .jpeg.enabled false # lowdelay support only imx307 sensor if [ ${sensor} = "imx307" ]; then ${cli} -s .video0.size 1920x1080 ${cli} -s .video0.fps 30 ${cli} -s .isp.lowDelay true # ${cli} -s .video0.sliceUnits 4 fi # add outgoing rtp stream to udp cat >> /etc/majestic.yaml << EOF outgoing: - udp://127.0.0.1:5600 EOF # complete tweaks touch /etc/system.ok echo "Preparing system done." reboot } case "$1" in gk7205v200 | hi3516ev200) echo "Preparing system tweaks for ${chip}..." # set osmem fw_setenv osmem 40M # change uart2 to uart0 (uart2 used by default [RX ONLY!] If you need two way, use uart0) #sed -i "s!Device = /dev/ttyAMA2!Device = /dev/ttyAMA0!g" /etc/mavlink.conf #sed -i "s!console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL!#console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL!g" /etc/inittab # remove unneeded to reduce some memory rm -f /etc/init.d/S60crond /etc/init.d/S49ntpd /etc/init.d/S02klogd all_other ;; gk7205v300 | hi3516ev300) echo "Preparing system tweaks for ${chip}..." # set sensor config for smtsec board if [ ${chip} = "gk7205v300" ] && [ ${sensor} = "imx307" ]; then ${cli} -s .isp.sensorConfig /etc/sensors/smtsec_imx307_i2c_4l_1080p.ini fi all_other ;; *) echo "Usage: $0 {gk7205v200|gk7205v300|hi3516ev200|hi3516ev300}" exit 1 esac