From 499822a9587d8860048a3562e575f0146affe9c8 Mon Sep 17 00:00:00 2001 From: ykcheungab Date: Thu, 9 Jul 2026 16:24:48 +0800 Subject: [PATCH] added setup script --- README.md | 0 setup/radxa-dq6a-setup.sh | 194 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 194 insertions(+) create mode 100644 README.md create mode 100644 setup/radxa-dq6a-setup.sh diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/setup/radxa-dq6a-setup.sh b/setup/radxa-dq6a-setup.sh new file mode 100644 index 0000000..e1a77ad --- /dev/null +++ b/setup/radxa-dq6a-setup.sh @@ -0,0 +1,194 @@ +#!/bin/bash +# ============================================ +# Dragon Q6A 环境自动配置脚本 +# 适用:Python 3.12 + PyQt5 + Open3D + PyOpenGL + GPU 硬件加速 +# ============================================ + +set -e # 遇到错误立即退出 + +echo "============================================" +echo " Dragon Q6A 环境配置开始" +echo "============================================" + +# ============================================ +# 1. 系统更新 +# ============================================ +echo "" +echo "[1/7] 更新系统..." +sudo rsetup + +# ============================================ +# 2. 安装系统依赖 +# ============================================ +echo "" +echo "[2/7] 安装系统依赖..." +sudo apt install -y \ + build-essential git wget curl \ + python3-pyqt5 pyqt5-dev-tools \ + python3-pyqt5.qtsvg python3-pyqt5.qtwebengine \ + mesa-utils mesa-vulkan-drivers \ + libgl1-mesa-dri libglx-mesa0 \ + libegl1-mesa-dev libgles2-mesa-dev \ + libgbm-dev libdrm-dev libvulkan-dev \ + vulkan-tools libglu1-mesa-dev libx11-xcb-dev \ + python3-venv python3-pip \ + v4l-utils ffmpeg + +# ============================================ +# 3. 验证 GPU +# ============================================ +echo "" +echo "[3/7] 验证 GPU 驱动..." +echo "OpenGL 渲染器信息:" +glxinfo | grep "OpenGL renderer" | head -1 +echo "" +echo "Vulkan 驱动信息:" +vulkaninfo | grep -E "driverName|deviceName" | head -4 || echo "⚠️ 请检查 Vulkan 驱动" + +# ============================================ +# 4. 设置虚拟环境 +# ============================================ +echo "" +echo "[4/7] 设置 Python 虚拟环境..." + +# 定义项目目录 +PROJECT_DIR1="$HOME/orisys_gripper/ctag2f-90d-sdk" +PROJECT_DIR2="$HOME/orisys_gripper/orisys-sdk" + +configure_project() { + local PROJECT_DIR="$1" + if [ -d "$PROJECT_DIR" ]; then + echo " 配置项目: $PROJECT_DIR" + cd "$PROJECT_DIR" + + # 删除旧的虚拟环境(如果存在) + if [ -d ".venv" ]; then + echo " 移除旧的虚拟环境..." + rm -rf .venv + fi + + # 创建新虚拟环境 + echo " 创建虚拟环境..." + python3 -m venv .venv --system-site-packages + + # 激活并安装依赖(使用 . 代替 source) + echo " 安装 Python 依赖..." + . .venv/bin/activate + + # 升级 pip + pip install --upgrade pip + + # 安装 requirements.txt(如果存在) + if [ -f "requirements.txt" ]; then + pip install -r requirements.txt + fi + #pip install pyqtgraph + + # 安装基础包 + #pip install PyOpenGL + #pip install open3d-unofficial-arm + #pip install numpy scipy matplotlib pyyaml + + # 验证安装 + echo " 验证安装..." + python -c "import PyQt5.QtCore; print(' PyQt5 OK')" + python -c "from OpenGL.GL import *; print(' OpenGL OK')" + python -c "import open3d as o3d; print(' Open3D OK: v' + o3d.__version__)" + + # 退出虚拟环境 + deactivate + + cd - > /dev/null + echo " ✅ $PROJECT_DIR 配置完成" + return 0 + else + echo " ⚠️ 目录不存在: $PROJECT_DIR (跳过)" + return 1 + fi +} + +# 配置项目 +configure_project "$PROJECT_DIR1" +configure_project "$PROJECT_DIR2" + +# ============================================ +# 6. 创建启动脚本 +# ============================================ +echo "" +echo "[6/7] 创建启动脚本..." + +cat > ~/run_visualizer.sh << 'EOF' +#!/bin/bash +# Dragon Q6A 可视化程序启动脚本 + +# 查找项目目录 +if [ -d "$HOME/orisys_gripper/ctag2f-90d-sdk" ]; then + PROJECT_DIR="$HOME/orisys_gripper/ctag2f-90d-sdk" +elif [ -d "$HOME/orisys_gripper/orisys-sdk" ]; then + PROJECT_DIR="$HOME/orisys_gripper/orisys-sdk" +else + echo "错误: 找不到项目目录" + exit 1 +fi + +echo "进入项目目录: $PROJECT_DIR" +cd "$PROJECT_DIR" + +# 激活虚拟环境 +if [ -f ".venv/bin/activate" ]; then + . .venv/bin/activate +else + echo "错误: 找不到虚拟环境" + exit 1 +fi + +# 运行程序 +python -m gripper.visualizer "$@" +EOF + +chmod +x ~/run_visualizer.sh +echo "✅ 启动脚本已创建: ~/run_visualizer.sh" + +# ============================================ +# 7. 最终验证 +# ============================================ +echo "" +echo "[7/7] 最终验证..." + +# 查找存在的项目目录 +if [ -d "$PROJECT_DIR1" ]; then + cd "$PROJECT_DIR1" +elif [ -d "$PROJECT_DIR2" ]; then + cd "$PROJECT_DIR2" +else + echo "⚠️ 未找到项目目录,跳过验证" + cd "$HOME" +fi + +if [ -f ".venv/bin/activate" ]; then + . .venv/bin/activate + echo "✅ 虚拟环境激活成功" + + echo "验证 Python 包:" + python -c "import PyQt5.QtCore; print(' ✅ PyQt5: OK')" 2>/dev/null || echo " ❌ PyQt5: 失败" + python -c "from OpenGL.GL import *; print(' ✅ PyOpenGL: OK')" 2>/dev/null || echo " ❌ PyOpenGL: 失败" + python -c "import open3d as o3d; print(' ✅ Open3D: v' + o3d.__version__)" 2>/dev/null || echo " ❌ Open3D: 失败" + + deactivate +fi + +# ============================================ +echo "" +echo "============================================" +echo " Dragon Q6A 环境配置完成!" +echo "============================================" +echo "" +echo "GPU 状态: 硬件加速已启用 (FD643/Turnip)" +echo "" +echo "下一步:" +echo " 1. 重启终端或执行: source ~/.bashrc" +echo " 2. 运行程序: ~/run_visualizer.sh" +echo "" +echo "如果遇到图形问题,可以设置软件渲染模式:" +echo " export LIBGL_ALWAYS_SOFTWARE=1" +echo "============================================"