Skip to content

RMinte-AI/rm01ShellFlasher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RM-01 设备刷机脚本

📝 概述

RM-01设备完整刷机自动化脚本,提供一站式刷机解决方案。支持ESP32S3固件刷写、AGX引导镜像安装、TF卡初始化和CFE卡管理等全流程操作。

🎯 主要功能

  • ESP32S3管理: robOS v1.1.0固件刷写 + 32项参数初始化
  • AGX刷机: Recovery模式引导镜像安装
  • TF卡初始化: 自动格式化和robOS系统文件部署
  • CFE卡管理: 分区初始化和运行镜像刷写
  • 硬件控制: CH343 GPIO硬件复位功能
  • 智能检测: 自动环境检查和设备状态监控

🛠 系统要求

硬件要求

  • 串口设备: CH343 USB转串口 (/dev/ttyCH343USB0)
  • 存储设备: TF卡 (/dev/mmcblk1) + CFE卡读卡器 (/dev/sda)
  • 目标设备: RM-01 (ESP32S3 + AGX Orin)

软件依赖

  • 操作系统: Ubuntu 22.04 LTS (推荐)
  • 核心工具: NVIDIA JetPack 6.2/6.2.1 SDK
  • Python环境: esptool.py v4.7.0+
  • 系统工具: git, wget, unzip, lsblk, lsusb

环境变量 (可选)

export L4T_DIR="/home/rm01/nvidia/nvidia_sdk/JetPack_6.2.1_Linux_JETSON_AGX_ORIN_TARGETS/Linux_for_Tegra/"

🚀 快速开始

1. 权限配置

# 添加串口访问权限
sudo usermod -a -G dialout $USER
# 重新登录生效

# 或临时授权
sudo chmod 666 /dev/ttyCH343USB0

2. 启动脚本

cd /home/rm01/rm01ShellFlasher
./rm01-flasher.sh

📋 功能菜单

主菜单选项

======================================
        RM-01 设备刷机脚本           
            版本 1.0                
======================================

请选择要执行的操作:

1. TF卡初始化 (格式化/复制文件)
2. ESP32S3刷写+初始化 (robOS固件+参数配置)
3. 仅初始化ESP32S3参数 (不刷机)
4. 仅刷写AGX (引导镜像)
5. CFE卡初始化 (分区/格式化)
6. 仅刷写CFE卡 (运行镜像)
7. 下载/更新robOS固件
8. 检查环境和设备状态
9. 查看日志文件
0. 退出

🔧 详细功能说明

1️⃣ TF卡初始化

  • 功能: 格式化TF卡并部署robOS系统文件
  • 设备: /dev/mmcblk1 (TF卡插槽)
  • 操作: 创建分区表 → 格式化为ext4 → 从GitHub下载robOS sdcard内容
  • 用途: 为RM-01设备准备系统启动卡

2️⃣ ESP32S3刷写+初始化

  • 固件: robOS v1.1.0 (自动下载)
  • 硬件复位: CH343 GPIO控制 (RTS/DTR信号)
  • 刷写参数: 460800波特率,Flash完全擦除
  • 参数配置: 32项系统参数,115200波特率,500ms间隔
  • 超时控制: 命令响应3秒超时机制

3️⃣ ESP32S3参数初始化

  • 功能: 仅配置ESP32S3参数,不刷机
  • 波特率: 115200 (参数通信专用)
  • 参数数量: 32项配置命令
  • 验证机制: 回显确认每条命令执行状态

4️⃣ AGX引导镜像刷写

  • 触发方式: 串口发送 agx recovery 命令
  • 设备检测: NVIDIA APX设备自动识别
  • 刷写工具: L4T flash.sh + rm01-orin配置
  • 目标分区: nvme0n1p1

5️⃣ CFE卡初始化

  • 功能: 创建CFE卡分区结构
  • 设备: /dev/sda (CFE卡读卡器)
  • 分区方案: 自动创建标准分区表
  • 格式化: ext4文件系统

6️⃣ CFE卡运行镜像刷写

  • 工具: L4T l4t_initrd_flash.sh
  • 配置: rm01-orin.conf
  • 存储: 完整运行时镜像
  • 标签: rm01rootfs

7️⃣ robOS固件管理

  • 版本: robOS v1.1.0
  • 来源: GitHub Releases自动下载
  • 格式: ZIP压缩包自动解压
  • 位置: ./firmware/ 目录

8️⃣ 系统诊断

  • 环境检查: L4T工具链完整性验证
  • 设备状态: 串口、存储设备连接检测
  • 依赖验证: esptool.py、CH343驱动状态
  • 系统信息: 硬件平台和软件版本显示

9️⃣ 日志管理

  • 实时日志: 时间戳 + 操作记录
  • 文件位置: ./logs/rm01-flasher-YYYYMMDD_HHMMSS.log
  • 内容: 详细命令输出、错误信息、状态变更

⚡ 技术特性

硬件控制

  • ESP32S3复位: CH343硬件GPIO控制(RTS/DTR信号)
  • 波特率切换: 刷机460800 ↔ 参数115200自动切换
  • 超时保护: 串口通信3秒超时,防止死锁

智能检测

  • 设备自动识别: USB设备、存储分区动态检测
  • 环境依赖验证: 工具链、权限、路径完整性检查
  • 错误恢复: 操作失败自动回滚和状态恢复

用户体验

  • 彩色输出: 状态分类颜色标识
  • 进度提示: 实时操作反馈
  • 交互确认: 危险操作二次确认机制

🛠 故障排除

常见问题

问题类型 症状 解决方案
串口权限 Permission denied sudo usermod -a -G dialout $USER
工具缺失 esptool.py: command not found sudo apt install python3-esptool
设备未识别 TF卡/CFE卡未检测 检查USB连接,使用lsblk确认
APX模式 AGX刷机失败 确认Recovery模式,检查USB驱动
L4T路径 L4T directory not found 验证JetPack安装,设置L4T_DIR

调试技巧

# 1. 检查设备连接
lsblk                    # 存储设备
lsusb                    # USB设备
ls -la /dev/tty*         # 串口设备

# 2. 手动测试串口
sudo screen /dev/ttyCH343USB0 115200

# 3. 检查L4T环境
ls -la $L4T_DIR/flash.sh
ls -la $L4T_DIR/tools/kernel_flash/

# 4. 查看实时日志
tail -f ./logs/rm01-flasher-*.log

⚠️ 安全须知

数据安全

  • ⚠️ TF卡/CFE卡刷写会完全擦除所有数据
  • 🔒 刷写前请备份重要文件
  • ✅ 确认设备型号和分区路径正确

操作安全

  • 🔌 刷写过程中保持USB连接稳定
  • ⏰ 不要中断长时间运行的刷写操作
  • 🔄 失败后可重新尝试,脚本支持增量恢复

硬件保护

  • 🌡️ 确保设备散热良好
  • ⚡ 使用稳定的电源供应
  • 🔧 避免在刷写时操作硬件连接

📞 技术支持

自助诊断

  1. 使用菜单选项8检查系统状态
  2. 查看日志文件定位具体错误
  3. 验证硬件连接和设备识别

联系支持

  • 📧 提供完整的日志文件
  • 🖥️ 说明硬件配置和软件版本
  • 📝 详细描述操作步骤和错误现象

📄 版本信息

项目 版本/信息
脚本版本 v1.0
robOS固件 v1.1.0
JetPack支持 6.2/6.2.1
更新日期 2025年10月12日
兼容平台 AGX Orin + ESP32S3

🎯 专用工具: 本脚本专为RM-01设备设计,请勿用于其他硬件平台。

🔗 开源项目: 基于robOS开源项目 - thomas-hiddenpeak/robOS

About

RM-01 Device Shell Flashing Tool - Complete automation script for ESP32S3, AGX Orin, and storage management

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages