瑞芯微 RV1126B ADB 调试命令完全指南

瑞芯微 RV1126B 是一款面向 AIoT、智能视觉领域的高性能四核 Cortex-A7 处理器,集成 NPU 加速器,广泛应用于智能摄像头、边缘计算设备等场景。在 RV1126B 开发过程中,ADB(Android Debug Bridge)是最常用的调试工具之一------尽管 RV1126B 通常运行 Linux 系统(如 Buildroot、Yocto),但其完善的 ADB 支持可实现文件传输、Shell 访问、日志抓取等核心功能,大幅提升开发效率。

本文将详细介绍 RV1126B 开发板通过 USB 连接 ADB 的完整流程,以及各类 ADB 命令的使用方法与实战技巧。


一、RV1126B 开发板 ADB 连接

在使用 ADB 命令前,需完成开发板与电脑的连接配置,确保双方能正常通信。

1. 开发板端:验证 ADB 连接

RV1126B 开发板默认开启 ADB,需通过以下步骤启用:

打开电脑终端(CMD 或 PowerShell),执行:

Bash 复制代码
adb devices

若输出类似以下内容,说明连接成功:

Plain 复制代码
List of devices attached
<设备序列号>        device

二、RV1126B 常用 ADB 命令详解

ADB 命令功能丰富,按使用场景可分为基础连接、文件管理、Shell 访问、日志调试、系统控制等类别。以下是 RV1126B 开发中最常用的命令及实战说明。

1. 基础连接命令

(1)查看已连接设备
Bash 复制代码
adb devices
  • 输出说明

    • 第一列:设备序列号(RV1126B 通常为芯片 ID 或自定义字符串)。

    • 第二列:设备状态,device 表示正常连接,offline 表示设备离线,unauthorized 表示未授权(需在开发板上允许 USB 调试)。

(2)重启 ADB 服务

若连接异常,可重启 ADB 服务:

Bash 复制代码
adb kill-server  # 停止 ADB 服务
adb start-server # 启动 ADB 服务
(3)连接多设备时指定目标

若电脑连接了多个 ADB 设备,需用 -s 参数指定 RV1126B 设备:

Bash 复制代码
adb -s <设备序列号> <命令>

例如:

Bash 复制代码
adb -s RV1126B001 shell

2. 文件管理命令

文件传输是 ADB 最常用的功能之一,可方便地将算法模型、配置文件推送到开发板,或从开发板拉取日志、测试数据。

(1)推送文件到开发板(adb push
Bash 复制代码
adb push <本地文件路径> <开发板目标路径>
  • 示例 :将本地 model.rknn 模型文件推送到开发板的 /userdata 目录:

    Bash 复制代码
    adb push D:\models\model.rknn /userdata/
  • 注意 :若开发板路径无写入权限,可先推送到 /tmp 目录,再通过 Shell 移动到目标位置。

(2)从开发板拉取文件(adb pull
Bash 复制代码
adb pull <开发板文件路径> <本地目标路径>
  • 示例 :将开发板的 /userdata/test.log 日志文件拉取到本地桌面:

    Bash 复制代码
    adb pull /userdata/test.log C:\Users\Username\Desktop\
(3)查看开发板文件列表(通过 Shell)

ADB 没有直接的 ls 命令,需结合 Shell 使用:

Bash 复制代码
adb shell ls /userdata/

3. Shell 访问命令

通过 adb shell 可直接进入 RV1126B 的 Linux Shell,执行各类 Linux 命令,是调试系统、运行程序的核心方式。

(1)进入开发板 Shell
Bash 复制代码
adb shell

执行后终端提示符将变为开发板的 Shell 提示符(如 #$),此时可直接运行 Linux 命令:

Bash 复制代码
# 查看 CPU 信息
cat /proc/cpuinfo

# 查看内存使用情况
free -h

# 查看 NPU 状态(RV1126B 特定命令)
cat /sys/class/misc/rknpu/device/status
(2)直接执行单条 Shell 命令

无需进入 Shell,可通过 ADB 直接执行命令并返回结果:

Bash 复制代码
adb shell <命令>
  • 示例:查看开发板 IP 地址:

    Bash 复制代码
    adb shell ifconfig
(3)获取 Root 权限

若开发板支持 Root,可通过以下命令切换到 Root 用户:

Bash 复制代码
adb root
adb remount  # 若需修改系统分区,执行此命令重新挂载为可读写

注意:adb remount 需在 adb root 后执行,且仅对可读写的系统分区有效。


4. 日志调试命令

日志是定位问题的关键,ADB 提供了完善的日志抓取功能,支持查看系统日志、内核日志等。

(1)查看系统日志(adb logcat
Bash 复制代码
adb logcat
  • 常用参数

    • 按日志级别过滤:adb logcat *:E(仅显示 Error 级别日志),级别从低到高为 V(Verbose)、D(Debug)、I(Info)、W(Warning)、E(Error)、F(Fatal)。

    • 按标签过滤:adb logcat MyApp:D *:S(仅显示标签为 MyApp 的 Debug 日志,*:S 表示屏蔽其他日志)。

    • 清空日志:adb logcat -c

    • 保存日志到文件:adb logcat > log.txt

(2)查看内核日志(dmesg

内核日志包含驱动加载、硬件初始化等信息,对调试外设(如摄像头、USB 设备)非常重要:

Bash 复制代码
adb shell dmesg
  • 实时查看内核日志:

    Bash 复制代码
    adb shell dmesg -w
  • 保存内核日志到文件:

    Bash 复制代码
    adb shell dmesg > kernel_log.txt

5. 系统控制命令

(1)重启开发板
Bash 复制代码
adb reboot  # 正常重启
adb reboot recovery  # 重启到 Recovery 模式(若支持)
adb reboot bootloader  # 重启到 Bootloader 模式(用于烧录固件)
(2)查看系统属性

RV1126B 的系统属性包含固件版本、硬件配置等信息:

Bash 复制代码
adb shell getprop  # 查看所有属性
adb shell getprop ro.build.version  # 查看固件版本
(3)挂载/卸载分区

若需修改系统分区,可先重新挂载为可读写:

Bash 复制代码
adb root
adb shell mount -o remount,rw /  # 重新挂载根分区为可读写

6. 网络调试命令

(1)端口转发(adb forward

将电脑的端口转发到开发板,方便访问开发板上的服务(如 Web 界面、SSH):

Bash 复制代码
adb forward tcp:<电脑端口> tcp:<开发板端口>
  • 示例 :将电脑的 8080 端口转发到开发板的 80 端口,访问 http://localhost:8080 即可打开开发板的 Web 服务:

    Bash 复制代码
    adb forward tcp:8080 tcp:80

三、常见问题与解决方案

1. adb devices 找不到设备

  • 排查步骤

    1. 检查 USB 线是否为双公头数据线,且连接到开发板的 OTG 接口。

    2. 确认开发板已开启 ADB 服务(通过串口验证 adbd 进程是否运行)。

    3. 重新安装瑞芯微 ADB 驱动,或在设备管理器中手动更新驱动。

    4. 更换电脑 USB 接口(建议使用 USB 2.0 接口,部分 USB 3.0 接口兼容性不佳)。

2. 设备显示 unauthorized

  • 解决方法:在 RV1126B 开发板的屏幕(或通过串口)上,点击"允许 USB 调试"的授权提示。

3. adb push 提示权限不足

  • 解决方法

    1. 先推送到 /tmp 目录,再通过 Shell 移动到目标位置:

      Bash 复制代码
      adb push file /tmp/
      adb shell mv /tmp/file /userdata/
    2. 若目标路径为系统分区,执行 adb rootadb remount 后再推送。

4. 日志乱码

  • 解决方法 :在执行 adb logcat 前,设置终端编码为 UTF-8:

    • Windows CMD:chcp 65001

    • PowerShell:`[Console]::OutputEncoding = [System.Text.Encoding]::UTF8

相关推荐
小茗的嵌入式学习日记2 小时前
基于IMX6ULL的车载中控系统
linux·c语言·qt
ego.iblacat2 小时前
在 LNMP 平台中部署 Web 应用
android·前端·adb
sc_爬坑之路2 小时前
Linux 部署 Redis:一主一从 + Sentinel 完整实战
linux·redis·sentinel
pupudawang2 小时前
docker 安装 mysql
mysql·adb·docker
tntlbb2 小时前
苍穹外卖Day1:项目数据库连接问题排查与原理分析报告
android·adb
从入门到放弃-咖啡豆2 小时前
Alibaba Cloud Linux 部署.NET 8 环境 项目运行
linux·服务器·.net·.net core
wongHome2 小时前
Ubuntu的Anaconda环境如何安装安装rasterio
linux·ubuntu
骆驼10242 小时前
Linux PAM(Pluggable Authentication Modules)完整指南——从入门原理到进阶机制,再到实战配置
linux·安全·pam
圥忈&&丅佽&&扗虖2 小时前
ubuntu 安装git
linux·git·ubuntu