RK平台ADB不识别问题排查

简介

ADB是Android系统的调试工具,一般用USB线连接开发板和PC,可以抓取开发板的调试日志,执行shell指令,传输文件等功能。为了调试方便,RK平台的Linux系统也默认支持ADB,其源码是从Android移植过来的。
本文档主要用于新开的项目中遇到ADB不识别,可以按下面步骤来排查问题。

基本问题排查步骤

RK发布的大部分SDK默认是支持通过ADB连接PC的,如果板子通过USB线连接PC后,PC识别不到ADB设备,需要先确认几个问题:

  1. 硬件连接是否正常?
    板子通过USB线连接PC,进入loader模式或者maskrom模式,是否能正常识别?如果能正常识别说明USB接口的数据线部分硬件连接是正常的。
  2. 板子是否有正常开机?
    可以通过开发板的调试串口看开机log,开机后调试串口能执行shell指令说明系统已经正常开机,如果板子不能正常开机,请先排查系统问题,再来调试USB
  3. 硬件连接是否正确?
    ADB需要连接到开发板的OTG口,即烧录固件的USB口。
  4. PC是否有安装USB驱动和ADB工具?
    PC如果是第一次连接RK开发板,请正确安装RK的USB驱动,Windows PC的USB驱动在SDK中可以找到,Android SDK在RKTools目录下面,Linux SDK在tools目录下面,驱动安装包名字为DriverAssitant_vx.x.zip,Linux PC不需要单独安装USB驱动。Windows PC的ADB工具请上网找安装教程,Linux PC如果是ubuntu系统可以用: sudo apt-get install android-tools-adb安装,请确保能正常执行ADB指令。
  5. 确认ADB连接状态?
    RK的烧录工具可以显示ADB设备的连接状态,但是如果是复合设备(如把板子做成ADB+UVC),由于改了VID/PID,RK的烧录工具无法正确显示ADB设备的连接状态,因此最好是通过PC的设备管理器或者通过执行ADB指令(如:adb devices)来确认ADB连接状态。

如果以上确认没问题,可能是板子配置或者应用软件问题,需要进一步排查。

底层驱动排查

软件配置需要根据板子的硬件设计来适配,因此需要根据硬件原理图来检查USB配置。

  1. 确认USB接口类型。
    常用的USB接口类型有Type-A,Type-C,Micro-USB等,不同的接口类型的配置有差异,这个在SDK提供的文档中都可以找到对应的章节。
  2. 根据USB接口类型找对应的DTS配置。
    以RK3588 Android12为例,RK3588的USB文档是RKDocs/common/usb/Rockchip_RK3588_Developer_Guide_USB_CN.pdf,该文档的《RK3588 USB DTS 配置》章节列举了三种USB接口类型的配置,其中还包括了USB2.0和USB3.0两种类型。
    三种USB接口类型的配置
  3. Type-C芯片的选择。
    如果需要支持全功能的Type-C口,需要配合Type-C芯片,Type-C芯片需要适配驱动,如果驱动没有正常工作也会导致USB连接异常,因此建议选用SDK默认支持的Type-C芯片,在文档的《Type-C 控制器芯片支持列表》章节有列出来,如果选用SDK默认没支持的Type-C芯片,需要自己调试。

Android系统相关问题

  1. 开发者选项的USB调试功能
    在userdebug模式下,需要默认关闭ADB,可以加下面补丁修复:
diff --git a/device.mk b/device.mk
index b666b84..d6047d3 100644
--- a/device.mk
+++ b/device.mk
@@ -904,7 +904,7 @@ endif
### in AOSP-system image (user firmware) ###
ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
-    ro.adb.secure=0
+    ro.adb.secure=1
PRODUCT_COPY_FILES += \
     device/rockchip/common/zmodem/rz:$(TARGET_COPY_OUT_VENDOR)/bin/rz \
     device/rockchip/common/zmodem/sz:$(TARGET_COPY_OUT_VENDOR)/bin/sz
--
2.7.4

Linux系统相关问题

部分buildroot系统默认不支持ADB,在添加ADB过程如果遇到启动ADB报错,可以检查以下几个问题:

  1. 打开环回网络
# ifconfig lo up
# ifconfig 
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
  1. 挂载pts
mkdir -p /dev/pts
mount -vt devpts -o gid=4,mode=620 none /dev/pts

网络ADB相关问题

如果要开启网络ADB,请确认是否有设置端口号,设置端口号的指令(Android):

# setprop service.adb.tcp.port 5555
# stop adbd
# start adbd

ADB Host端

buildroot不支持Host端用ADB,Debian或者ubuntu可以自己用: sudo apt-get install android-tools-adb安装ADB工具来支持Host端用ADB,Android可以通过添加可执行文件来支持Host端的ADB。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/652307.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android 中资源文件夹RES/RAW和ASSETS的使用区别

文章目录 1、res/raw 文件夹1.1、特点1.2、使用方法1.3、示例: 2. assets 文件夹2.1、特点2.2、使用方法2.3、示例: 3、使用场景3.1、res/raw 使用场景3.2、assets 使用场景 4、比较与选择5、文件夹选择的建议6、 示例代码总结6.1、res/raw 示例6.2、ass…

Diffusion Model 和 Stable Diffusion 详解

文章目录 Diffusion Model 基础生成模型DDPM概述向前扩散过程前向扩散的逐步过程前向扩散的整体过程 反向去噪过程网络结构训练和推理过程训练过程推理过程优化目标 详细数学推导数学基础向前扩散过程反向去噪过程 Stable Diffusion组成结构运行流程网络结构变分自编码器 (VAE)…

图形学初识--纹理采样和Wrap方式

文章目录 前言正文1、为什么需要纹理采样?2、什么是纹理采样?3、如何进行纹理采样?(1)假设绘制区域为矩形(2)假设绘制区域为三角形 4、什么是纹理的Wrap方式?5、有哪些纹理的Wrap方式…

Facebook之魅:数字社交的体验

在当今数字化时代,Facebook作为全球最大的社交平台之一,承载着数十亿用户的社交需求和期待。它不仅仅是一个简单的网站或应用程序,更是一个将世界各地的人们连接在一起的社交网络,为用户提供了丰富多彩、无与伦比的数字社交体验。…

云原生|为什么服务网格能够轻松重塑微服务?一文讲清楚!

目录 一、概述 二、 设计 三、服务网格 四、总结 一、概述 容器化技术与容器编排推动了微服务架构应用的演进,于是应用的扩展与微服务的数量日益增加,新的问题随之而来,监控服务的性能变得越来越困难,微服务与微服务之间相互通…

深度学习实战-yolox训练ExDark数据集所遇到的错误合集

跳转深度学习实战-yolox训练ExDark数据集(附全过程代码,超详细教程,无坑!) 一、 训练时出现ap为零 情况1.数据集没导进去 修改exps/example/yolox_voc/yolox_voc_s.py 当然由于image_sets只有一个元素因此修改yolox/data/datasets/voc.py 情况2.iou设置过高 修改yolo…

【全开源】在线题库微信小程序系统源码(ThinkPHP+FastAdmin+UniApp)

打造个性化学习平台 一、引言:在线学习的未来趋势 在数字化时代,线上学习已逐渐成为主流。随着移动互联网的普及,小程序以其轻便、快捷、无需安装的特点,成为用户日常学习的新选择。为了满足广大用户对于在线学习的需求&#xf…

深度学习模型在OCR中的可解释性问题与提升探讨

摘要: 随着深度学习技术在光学字符识别(OCR)领域的广泛应用,人们对深度学习模型的可解释性问题日益关注。本文将探讨OCR中深度学习模型的可解释性概念及其作用,以及如何提高可解释性,使其在实际应用中更可…

SqlServer 2016 2017 2019安装失败-无法找到数据库引擎启动句柄

SqlServer 2016 2017 2019安装失败-无法找到数据库引擎启动句柄 出现以上问题的原因是因为系统账户无法操作数据库引擎服务。需要调整权限。 按照以下步骤解决,成功完成安装,已亲测: 1、如果您已经安装了相同版本的SQL Server,…

Net快速开发-创建和使用项目模板(多个项目(解决方案)打包)

1.从nuget安装模版包 下载安装官方模版 从 NuGet 包源安装 Microsoft.TemplateEngine.Authoring.Templates 模板。 从终端运行 dotnet new install Microsoft.TemplateEngine.Authoring.Templates 命令。2.创建模版 Microsoft.TemplateEngine.Authoring.Templates 包含可用于…

TiDB-从0到1-分布式事务

TiDB从0到1系列 TiDB-从0到1-体系结构TiDB-从0到1-分布式存储TiDB-从0到1-分布式事务TiDB-从0到1-MVCC 一、事务定义 这属于老生常谈了,无论不管是传统事务还是分布式事务都离不开ACID A:原子性C:一致性I:隔离性D:…

智能工厂:ThingsBoard网关在工业物联网中的桥梁作用

自动化及工业物联网 解放生产力的未来之路 在当今高度信息化的时代,工业自动化及工业物联网(IIoT)已成为工业制造领域的核心驱动力。随着人工智能、大数据和云计算等技术的持续发展,自动化及工业物联网正在以前所未有的速度改变…

shell脚本-函数

一、函数 1.函数的定义和格式 函数定义:封装的可重复利用的具有特定功能的代码 先定义函数,再调用函数,注意顺序 函数类似于命令的别名,别名一些简单的小命令 函数是某一个脚本的别名,有些脚本会重复使用 函数格…

音视频开发—音频相关概念:数模转换、PCM数据与WAV文件详解

文章目录 前言1.模拟数字转换(ADC)1.1ADC的关键步骤: 2.数字模拟转换(DAC)2.1DAC 的基本流程包括: 3.PCM数据3.1PCM 数据的关键要素包括: 4.WAV文件4.1 WAV的构成4.2WAV文件的标准块结构4.3WAV的…

浙江大学数据结构MOOC-课后习题-第六讲-图3 六度空间

题目汇总 浙江大学数据结构MOOC-课后习题-拼题A-代码分享-2024 题目描述 心路历程 当我看到慕课上对这题的简介写的是: 不过实现起来还是颇有码量的,有时间就尝试一下。 我甚至在想要不要在距离图书馆闭馆仅2个小时的时候,挑战这道题&#x…

Linux: network: TCP: zero window size/window full 示例

最近遇到一个问题,当前机器的CPU使用率非常高,然后导致其中一个程序处理socket的数据过慢,然后出现下面的zero的示例。 下面是在接收buff用光的时候,发出的 TCP zeroWindows的消息 这种问题就是内存,CPU,网速之间的性能取舍。具体解决的话,需要看具体的需要是什么样的?…

Monocular Model-Based 3D Tracking of Rigid Objects:2005年综述

1 Introduction 在视频序列中跟踪一个物体意味着在物体或摄像机移动时,持续识别其位置。根据物体类型、物体和摄像机的自由度以及目标应用的不同,有多种方法可供选择。二维跟踪通常旨在跟踪物体或物体部分的图像投影,这些物体的三维位移会导…

(十二)统计学基础练习题六(选择题T251-300)

本文整理了统计学基础知识相关的练习题,共50道,适用于想巩固统计学基础或备考的同学。来源:如荷学数据科学题库(技术专项-统计学二)。序号之前的题请看往期文章。 251) 252) 253) 2…

测试驱动编程(4)模拟消除依赖

文章目录 测试驱动编程(4)模拟消除依赖模拟框架Mockito什么要模拟名词解释Mockito常用注解Mockito常用静态方法Mockito测试流程三部曲基础用法可变返回结果验证verfily对象监视spy 示例实战升级版井字游戏需求一需求二需求三 总结 测试驱动编程(4)模拟消除依赖 模拟框架Mockit…

硬盘文件可以直接剪切到另一个盘吗?分享方法与注意事项

在数字化时代,硬盘成为了我们存储和管理文件的重要设备。随着数据量的不断增长,我们有时需要将文件从一个硬盘盘符转移到另一个盘符,以便更好地组织和利用存储空间。硬盘文件剪切操作就是实现这一目标的有效方式之一。本文将详细介绍如何直接…