safesight-edge/scripts/systemd/quick-setup.sh

103 lines
2.9 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# RK3588 Media Server 快速设置脚本
# 适用于开发板直接编译部署
set -e
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
echo -e "${YELLOW}========== RK3588 Media Server 快速设置 ==========${NC}"
echo ""
# 检测是否在 Orange Pi 上
if [[ "$(uname -m)" != "aarch64" ]]; then
echo "警告: 当前不是 ARM64 架构,此脚本适用于 RK3588 开发板"
read -p "是否继续? (y/N): " -n 1 -r
echo
[[ ! $REPLY =~ ^[Yy]$ ]] && exit 1
fi
# 检查 sudo
if [ "$EUID" -ne 0 ]; then
echo "请使用 sudo 运行"
exit 1
fi
PROJECT_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
BUILD_DIR="$PROJECT_DIR/build"
echo "项目目录: $PROJECT_DIR"
echo ""
# 步骤1: 检查编译
echo "[1/4] 检查编译状态..."
if [ ! -f "$BUILD_DIR/media-server" ]; then
echo "未找到编译好的 media-server开始编译..."
echo ""
echo "CMake 配置:"
cmake -S "$PROJECT_DIR" -B "$BUILD_DIR" \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTS=OFF \
-DBUILD_SAMPLES=ON \
-DRK3588_ENABLE_FFMPEG=ON \
-DRK3588_ENABLE_MPP=ON \
-DRK3588_ENABLE_RGA=ON \
-DRK3588_ENABLE_ZLMEDIAKIT=ON \
-DRK3588_ENABLE_RKNN=ON \
-DRK_ZLMK_API_LIB_PATH="$PROJECT_DIR/third_party/rknpu2/examples/3rdparty/zlmediakit/aarch64/libmk_api.so" \
-DRK_ZLMEDIAKIT_INCLUDE_DIR="$PROJECT_DIR/third_party/rknpu2/examples/3rdparty/zlmediakit/include"
echo ""
echo "开始编译(使用 $(nproc) 线程)..."
cmake --build "$BUILD_DIR" -j$(nproc)
else
echo -e "${GREEN}${NC} 已编译"
fi
echo ""
# 步骤2: 安装 systemd 服务
echo "[2/4] 安装 Systemd 服务..."
"$(dirname "$0")/install-systemd.sh" \
--media-bin "$BUILD_DIR/media-server" \
--media-config "$PROJECT_DIR/configs/sample_cam1.json" \
--agent-bin "$PROJECT_DIR/agent/rk3588-agent_linux_arm64" \
--agent-config "$PROJECT_DIR/agent/agent_cam1.config.json"
echo ""
# 步骤3: 检查端口
echo "[3/4] 检查端口..."
for port in 9000 8554 8555 9100; do
if ss -tln | grep -q ":$port "; then
echo -e " ${GREEN}${NC} 端口 $port 监听正常"
else
echo " 端口 $port 未监听"
fi
done
echo ""
# 步骤4: 测试
echo "[4/4] 快速测试..."
sleep 2
if systemctl is-active --quiet media-server; then
echo -e "${GREEN}Media Server 运行正常${NC}"
echo ""
echo "测试地址:"
IP=$(hostname -I | awk '{print $1}')
echo " HLS: http://$IP:9000/hls/cam1/index.m3u8"
echo " RTSP: rtsp://$IP:8555/live/cam1"
else
echo "Media Server 可能未正常启动,请检查日志:"
echo " journalctl -u media-server -n 20"
fi
echo ""
echo -e "${GREEN}设置完成!${NC}"
echo ""
echo "常用命令:"
echo " 查看状态: $(dirname "$0")/status.sh"
echo " 查看日志: journalctl -u media-server -f"
echo " 重启服务: systemctl restart media-server"