diff --git a/scripts/install_deps.sh b/scripts/install_deps.sh index c86e772..63d33d7 100755 --- a/scripts/install_deps.sh +++ b/scripts/install_deps.sh @@ -87,21 +87,31 @@ echo -e "${YELLOW}[2/4] 安装 Rockchip MPP...${NC}" cd "$PROJECT_DIR/third_party/mpp" -# 创建缺失的 version 文件 +# 创建完整的 version.h 文件 mkdir -p build/cmake mpp -if [ ! -f "build/cmake/version.in" ]; then - cat > build/cmake/version.in << 'EOF' +cat > mpp/version.h << 'EOF' #ifndef MPP_VERSION_H #define MPP_VERSION_H + #define MPP_VERSION "1.0.0" #define MPP_GIT_VERSION "unknown" #define MPP_GIT_BRANCH "master" +#define MPP_BUILD_TIME "unknown" + +#define MPP_VER_HIST_CNT 10 +#define MPP_VER_HIST_0 "unknown" +#define MPP_VER_HIST_1 "unknown" +#define MPP_VER_HIST_2 "unknown" +#define MPP_VER_HIST_3 "unknown" +#define MPP_VER_HIST_4 "unknown" +#define MPP_VER_HIST_5 "unknown" +#define MPP_VER_HIST_6 "unknown" +#define MPP_VER_HIST_7 "unknown" +#define MPP_VER_HIST_8 "unknown" +#define MPP_VER_HIST_9 "unknown" + #endif EOF -fi -if [ ! -f "mpp/version.h" ]; then - cp build/cmake/version.in mpp/version.h -fi # 编译安装 mkdir -p build @@ -119,24 +129,33 @@ ldconfig echo -e "${GREEN}✓${NC} MPP 安装完成" # ============================================ -# 3. RKNN Runtime (项目自带) +# 3. RKNN Runtime # ============================================ echo -e "${YELLOW}[3/4] 安装 RKNN Runtime...${NC}" -cd "$PROJECT_DIR/third_party/rknpu2" - -# 查找 runtime 目录 -if [ -d "runtime/RK3588/Linux/aarch64" ]; then - echo " 安装 RKNN 库..." - cp runtime/RK3588/Linux/aarch64/*.so /usr/lib/ 2>/dev/null || true - cp runtime/RK3588/Linux/aarch64/librknn* /usr/lib/ 2>/dev/null || true +# 优先使用下载的 rknpu2-1.5.2.zip +if [ -f "/tmp/rknpu2-1.5.2.zip" ]; then + echo " 使用下载的 rknpu2-1.5.2.zip" + cd /tmp + unzip -q -o rknpu2-1.5.2.zip 2>/dev/null || unzip -q -o rknpu2-1.6.0_arm64.deb.zip 2>/dev/null || true - if [ -d "runtime/RK3588/Linux/aarch64/include" ]; then - cp -r runtime/RK3588/Linux/aarch64/include/* /usr/include/ 2>/dev/null || true + # 查找解压后的目录 + RKNPU_DIR=$(find /tmp -maxdepth 1 -type d -name "rknpu*" | head -1) + if [ -n "$RKNPU_DIR" ] && [ -d "$RKNPU_DIR/runtime/RK3588/Linux/aarch64" ]; then + echo " 安装 RKNN 库..." + cp "$RKNPU_DIR/runtime/RK3588/Linux/aarch64/"*.so /usr/lib/ 2>/dev/null || true + cp -r "$RKNPU_DIR/runtime/RK3588/Linux/librknn_api/include/"* /usr/include/ 2>/dev/null || true fi else - echo -e "${YELLOW}警告: 未找到标准 runtime 目录结构,尝试其他路径...${NC}" - find . -name "*.so" -type f -exec cp {} /usr/lib/ \; 2>/dev/null || true + # 使用项目自带的(仅头文件,库需要系统安装) + echo " 使用项目自带的 RKNPU2 头文件..." + if [ -d "$PROJECT_DIR/third_party/rknpu2/runtime/RK3588/Linux/librknn_api/include" ]; then + cp -r "$PROJECT_DIR/third_party/rknpu2/runtime/RK3588/Linux/librknn_api/include/"* /usr/include/ 2>/dev/null || true + fi + + echo -e "${YELLOW}警告: 未找到预编译库,尝试安装系统版本...${NC}" + # 尝试安装系统版本作为后备 + apt-get install -y librknn-runtime librknn-dev 2>/dev/null || true fi ldconfig