修改安装脚本
This commit is contained in:
parent
c26909a241
commit
83c99834c7
@ -21,7 +21,7 @@ echo -e "${BLUE}╚════════════════════
|
||||
echo ""
|
||||
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
echo -e "${RED}错误: 请使用 sudo 运行${NC}"
|
||||
echo -e "${RED}错误: 请使用 sudo 运行此脚本${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@ -87,9 +87,14 @@ echo -e "${YELLOW}[2/4] 安装 Rockchip MPP...${NC}"
|
||||
|
||||
cd "$PROJECT_DIR/third_party/mpp"
|
||||
|
||||
# 创建完整的 version.h 文件
|
||||
mkdir -p build/cmake mpp
|
||||
cat > mpp/version.h << 'EOF'
|
||||
# 清理旧的构建
|
||||
rm -rf build
|
||||
|
||||
# 创建 version.in 和 version.h
|
||||
mkdir -p build/cmake
|
||||
|
||||
# version.in 用于 CMake configure_file
|
||||
cat > build/cmake/version.in << 'EOF'
|
||||
#ifndef MPP_VERSION_H
|
||||
#define MPP_VERSION_H
|
||||
|
||||
@ -97,7 +102,6 @@ cat > mpp/version.h << 'EOF'
|
||||
#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"
|
||||
@ -113,6 +117,12 @@ cat > mpp/version.h << 'EOF'
|
||||
#endif
|
||||
EOF
|
||||
|
||||
# version.h 用于直接编译
|
||||
cp build/cmake/version.in mpp/version.h
|
||||
|
||||
# 给 merge_static_lib.sh 添加执行权限
|
||||
chmod +x merge_static_lib.sh 2>/dev/null || true
|
||||
|
||||
# 编译安装
|
||||
mkdir -p build
|
||||
cd build
|
||||
@ -133,29 +143,58 @@ echo -e "${GREEN}✓${NC} MPP 安装完成"
|
||||
# ============================================
|
||||
echo -e "${YELLOW}[3/4] 安装 RKNN Runtime...${NC}"
|
||||
|
||||
# 优先使用下载的 rknpu2-1.5.2.zip
|
||||
if [ -f "/tmp/rknpu2-1.5.2.zip" ]; then
|
||||
echo " 使用下载的 rknpu2-1.5.2.zip"
|
||||
RKNN_INSTALLED=false
|
||||
|
||||
# 优先使用本地上传的 rknpu2 zip(覆盖系统版本)
|
||||
for zip_file in "/tmp/rknpu2-1.5.2.zip" "/tmp/rknpu2-1.6.0.zip" "/tmp/rknpu2_1.6.0_arm64.zip"; do
|
||||
if [ -f "$zip_file" ]; then
|
||||
echo " 发现本地文件: $(basename $zip_file),优先使用"
|
||||
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
|
||||
rm -rf rknpu2-* 2>/dev/null || true
|
||||
unzip -q -o "$zip_file" 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
|
||||
if [ -n "$RKNPU_DIR" ]; then
|
||||
echo " 解压目录: $RKNPU_DIR"
|
||||
if [ -d "$RKNPU_DIR/runtime/RK3588/Linux/aarch64" ]; then
|
||||
echo " 安装 RKNN 库..."
|
||||
cp "$RKNPU_DIR/runtime/RK3588/Linux/aarch64/"*.so /usr/lib/ 2>/dev/null || true
|
||||
fi
|
||||
if [ -d "$RKNPU_DIR/runtime/RK3588/Linux/librknn_api/include" ]; then
|
||||
cp -r "$RKNPU_DIR/runtime/RK3588/Linux/librknn_api/include/"* /usr/include/ 2>/dev/null || true
|
||||
fi
|
||||
else
|
||||
# 使用项目自带的(仅头文件,库需要系统安装)
|
||||
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
|
||||
RKNN_INSTALLED=true
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
echo -e "${YELLOW}警告: 未找到预编译库,尝试安装系统版本...${NC}"
|
||||
# 尝试安装系统版本作为后备
|
||||
apt-get install -y librknn-runtime librknn-dev 2>/dev/null || true
|
||||
# 如果没有本地 zip,检查系统是否已有
|
||||
if [ "$RKNN_INSTALLED" != "true" ]; then
|
||||
if [ -f "/usr/lib/librknnrt.so" ] || [ -f "/usr/lib/aarch64-linux-gnu/librknnrt.so" ]; then
|
||||
echo " 系统已存在 RKNN 库"
|
||||
RKNN_INSTALLED=true
|
||||
fi
|
||||
fi
|
||||
|
||||
# 安装头文件(项目自带)
|
||||
if [ -d "$PROJECT_DIR/third_party/rknpu2/runtime/RK3588/Linux/librknn_api/include" ]; then
|
||||
echo " 安装 RKNN 头文件..."
|
||||
cp -r "$PROJECT_DIR/third_party/rknpu2/runtime/RK3588/Linux/librknn_api/include/"* /usr/include/ 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# 如果库还没安装,尝试系统仓库
|
||||
if [ "$RKNN_INSTALLED" != "true" ]; then
|
||||
echo " 尝试从系统仓库安装..."
|
||||
apt-get install -y librknn-runtime librknn-api 2>/dev/null && {
|
||||
RKNN_INSTALLED=true
|
||||
} || {
|
||||
echo -e "${YELLOW}警告: 无法安装 RKNN 运行时库${NC}"
|
||||
echo " 请手动下载并安装:"
|
||||
echo " https://github.com/rockchip-linux/rknpu2/releases"
|
||||
echo " 或将 rknpu2-1.5.2.zip 上传到 /tmp/ 后重试"
|
||||
}
|
||||
fi
|
||||
|
||||
ldconfig
|
||||
|
||||
0
third_party/mpp/merge_static_lib.sh
vendored
Normal file → Executable file
0
third_party/mpp/merge_static_lib.sh
vendored
Normal file → Executable file
Loading…
Reference in New Issue
Block a user