firmware/general/package/wifibroadcast/files/tweaksys

101 lines
3.3 KiB
Bash
Executable File

#!/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
# 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 5120
${cli} -s .video0.codec h264
${cli} -s .video0.rcMode cbr
${cli} -s .video0.gopSize 0
${cli} -s .hls.enabled false
${cli} -s .netip.enabled false
${cli} -s .jpeg.enabled false
# lowdelay support only imx307 sensor
if [ ${sensor} = "imx307" ]; then
# ${cli} -s .video0.size 1280x720
# ${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 custom config
if [ ${chip} = "gk7205v200" ] && [ ${sensor} = "imx307" ]; then
echo "switch to custom sensor config"
# ${cli} -s .isp.sensorConfig /etc/sensors/60fps/720p_imx307_i2c_2l.ini
fi
# fix osmem in bootargs
bootargs=$(fw_printenv -n bootargs)
if echo ${bootargs} | grep -q "32M"; then
newbootargs="mem=\${osmem} "$(echo ${bootargs} | cut -d " " -f2-)
fw_setenv bootargs ${newbootargs}
fw_setenv osmem 40M
fi
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