#!/bin/bash # ============================================================ # MVS 相机 SDK 运行环境配置脚本 # 用途:配置 LD_LIBRARY_PATH 和 USB 内存大小 # 使用:source ./setup_mvs_env.sh # ============================================================ # 获取脚本所在目录 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "${SCRIPT_DIR}/../../.." && pwd)" # MVS SDK 路径 MVS_SDK_PATH="${PROJECT_ROOT}/SDK/Device/MVS/MVS_STD_V3.0.1_251113/MVS-3.0.1_aarch64_20251113" if [ ! -d "${MVS_SDK_PATH}" ]; then echo "错误:MVS SDK 路径不存在: ${MVS_SDK_PATH}" return 1 fi # 设置环境变量 export MVCAM_SDK_PATH="${MVS_SDK_PATH}" export MVCAM_COMMON_RUNENV="${MVS_SDK_PATH}/lib" export MVCAM_GENICAM_CLPROTOCOL="${MVS_SDK_PATH}/lib/CLProtocol" # 添加库路径到 LD_LIBRARY_PATH if [ -z "${LD_LIBRARY_PATH}" ]; then export LD_LIBRARY_PATH="${MVS_SDK_PATH}/lib/aarch64:${MVS_SDK_PATH}/lib/aarch64/ThirdParty" else # 移除旧的 MVS 路径(如果存在) LD_LIBRARY_PATH=$(echo "${LD_LIBRARY_PATH}" | sed "s|${MVS_SDK_PATH}/lib/aarch64:||g") LD_LIBRARY_PATH=$(echo "${LD_LIBRARY_PATH}" | sed "s|${MVS_SDK_PATH}/lib/aarch64/ThirdParty:||g") # 添加新路径到开头 export LD_LIBRARY_PATH="${MVS_SDK_PATH}/lib/aarch64:${MVS_SDK_PATH}/lib/aarch64/ThirdParty:${LD_LIBRARY_PATH}" fi echo "==========================================" echo "MVS SDK 环境配置完成" echo "==========================================" echo "MVCAM_SDK_PATH=${MVCAM_SDK_PATH}" echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}" echo "" # 配置 USB 内存大小(需要 root 权限) if [ $(id -u) -eq 0 ]; then echo "配置 USB 内存大小为 2000 MB..." echo 2000 > /sys/module/usbcore/parameters/usbfs_memory_mb CURRENT_SIZE=$(cat /sys/module/usbcore/parameters/usbfs_memory_mb 2>/dev/null) echo "当前 USB 内存大小: ${CURRENT_SIZE} MB" else echo "警告:非 root 用户,无法配置 USB 内存大小" echo "建议运行:sudo sh -c 'echo 2000 > /sys/module/usbcore/parameters/usbfs_memory_mb'" fi echo "==========================================" echo "现在可以运行 DroneScrewServer" echo "=========================================="