132 lines
3.1 KiB
Bash
Raw Permalink Normal View History

2025-05-10 21:58:58 +08:00
#!/bin/sh
#
check_linker()
{
[ ! -L "$2" ] && ln -sf $1 $2
}
[ -f /etc/profile.d/enable_coredump.sh ] && source /etc/profile.d/enable_coredump.sh
check_linker /userdata /oem/usr/www/userdata
check_linker /userdata /oem/usr/www/userdata
check_linker /media/usb0 /oem/usr/www/usb0
check_linker /mnt/sdcard /oem/usr/www/sdcard
if [ ! -f "/oem/sysconfig.db" ]; then
media-ctl -p -d /dev/media1 | grep 3840x2160
if [ $? -eq 0 ] ;then
ln -s -f /oem/sysconfig-4K.db /oem/sysconfig.db
fi
media-ctl -p -d /dev/media1 | grep 2688x1520
if [ $? -eq 0 ] ;then
ln -s -f /oem/sysconfig-2K.db /oem/sysconfig.db
fi
media-ctl -p -d /dev/media1 | grep 1920x1080
if [ $? -eq 0 ] ;then
ln -s -f /oem/sysconfig-1080P.db /oem/sysconfig.db
fi
media-ctl -p -d /dev/media1 | grep 2592x1944
if [ $? -eq 0 ] ;then
ln -s -f /oem/sysconfig-5M.db /oem/sysconfig.db
fi
fi
#set max socket buffer size to 1.5MByte
sysctl -w net.core.wmem_max=1572864
export HDR_MODE=1
export enable_encoder_debug=0
#vpu 600M, kernel default 600M
#echo 600000000 >/sys/kernel/debug/mpp_service/rkvenc/clk_core
ipc-daemon --no-mediaserver &
sleep 2
QUICKDISPLAY=`busybox ps |grep -w startup_app_ipc |grep -v grep`
if [ -z "$QUICKDISPLAY" ] ;then
echo "run ispserver"
ispserver &
sleep 1
else
echo "ispserver is running"
fi
ls /sys/class/drm | grep "card0-"
if [ $? -ne 0 ] ;then
echo "not found display"
HasDisplay=0
else
echo "find display"
HasDisplay=1
cat /proc/device-tree/compatible | grep lt9611
if [ $? -ne 0 ] ;then
echo "not HDMI"
else
echo "find HDMI"
HasHDMI=1
fi
fi
arecord -l |grep "card 0"
if [ $? -ne 0 ] ;then
echo "not found sound card"
HasAudio=0
else
echo "find sound card"
HasAudio=1
fi
# TODO:
# HasAudio=0
if [ $HasDisplay -eq 1 ]; then
if [ $HasHDMI -eq 1 ]; then
mediaserver -c /oem/usr/share/mediaserver/rv1109/ipc-hdmi-display.conf &
else
if [ -z "$QUICKDISPLAY" ]; then
if [ $HasAudio -eq 1 ]; then
mediaserver -c /oem/usr/share/mediaserver/rv1109/ipc-display.conf &
else
mediaserver -c /oem/usr/share/mediaserver/rv1109/ipc-display-without-audio.conf &
fi
else
if [ $HasAudio -eq 1 ]; then
mediaserver -c /oem/usr/share/mediaserver/rv1109/ipc.conf &
else
mediaserver -c /oem/usr/share/mediaserver/rv1109/ipc-without-audio.conf &
fi
fi
fi
else
if [ $HasAudio -eq 1 ]; then
mediaserver -c /oem/usr/share/mediaserver/rv1109/ipc.conf &
else
mediaserver -c /oem/usr/share/mediaserver/rv1109/ipc-without-audio.conf &
fi
fi
# mount media part for video recording
export MEDIA_DEV=/dev/block/by-name/media
export FSTYPE=ext4
if [ ! -L $MEDIA_DEV ]; then
echo "media part not exit, do nothing";
exit
fi
prepare_part()
{
dumpe2fs -h $MEDIA_DEV 2>/dev/null| grep "media"
if [ $? -ne 0 ]; then
echo "Auto formatting $MEDIA_DEV to $FSTYPE"
mke2fs -F -L media $MEDIA_DEV && resize2fs $MEDIA_DEV && tune2fs -c 0 -i 0 $MEDIA_DEV && prepare_part && return
fi
}
prepare_part
echo "prepare_part /userdata/media"
mkdir -p /userdata/media && sync
echo "fsck /userdata/media"
fsck.$FSTYPE -y $MEDIA_DEV
mount $MEDIA_DEV /userdata/media