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.0UP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions: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。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「浏览器」跨站请求伪造CSRF攻击的原理以及防范措施

前言 HTTP 是一个无状态的协议,比如需要账号密码登录的网站这个场景,为了避免每次都需要重复输入,有一种方案就是Cookie,具体使用不做赘述,但是这样带来了一些安全问题。跨站请求伪造(CSRF)攻击…

Java日志体系概述

一. 日志体系分类 1.1 功能分类 1.2 jar包分类 二. 以log4j2为例 2.1 slf4j-api的初始化动态绑定过程 一. 日志体系分类 1.1 功能分类 门面类 slf4j:Simple Logging Facade for Java,为java提供的简单日志Facade具体实现类 logbacklog4j1log4j2jul&…

Windows下切换不同版本的CUDA

在环境变量处将需要使用的CUDA版本的如图所框选的环境变量移到其他版本环境变量的前方即可 PS:改环境变量后重启命令行再查看版本~

Three.js是基于原生WebGL封装的三维引擎

Three.js: 基于原生WebGL封装的三维引擎 引言 随着互联网技术的发展,Web前端技术不断进步,用户对于网页交互体验的要求也越来越高。艾斯视觉前端开发:三维技术作为提升用户体验的重要手段之一,正在逐渐成为前端开发中的热门技术…

pdf只要其中一页 pdf只要第一页怎么办 pdf只要前几页怎么弄

在现代办公环境中,PDF文件已经成为我们日常工作中不可或缺的一部分。然而,有时我们可能只需要PDF文件中的某一页,而不是整个文件。这时,我们该如何操作才能只获取所需的那一页呢?本文将详细操作方法,帮助大…

Spark中的累加器与广播变量及blockmanager图解

一、累加器 1、累加器的引入 案例:没读取一条文件中的数据,count1,并打印在Drive端(控制台) import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.rdd.RDDobject Demo20Accumulator {def ma…

应用弹窗优先级

背景 由于活动业务越来越多,积累的弹窗越来越多和杂乱,出现如下弹窗交互问题: 弹窗无限重叠,影响操作 弹出顺序无优先级,重要弹窗被隐藏 原因相信大家都一样,产品是一次次迭代的,也可能是不同人开发的,两个毫不相关的业务,弹窗时机也没有任何关联,重不重叠我怎么控制…

有效运营企业内部社区的板块有哪些?

随着企业内部沟通和协作的重要性日益凸显,建立一个高效运营的企业内部社区成为越来越多企业的首要任务。针对不同的需求和目标,将企业内部社区分为多个板块,可以更好地促进员工之间的沟通、协作和共享知识。下面介绍如何从分多个板块创建的角…

SQL注入攻击是什么?如何预防?

一、SQL注入攻击是什么? SQL注入攻击是一种利用Web应用程序中的安全漏洞,将恶意的SQL代码插入到数据库查询中的攻击方式。攻击者通过在Web应用程序的输入字段中插入恶意的SQL代码,然后在后台的数据库服务器上解析执行这些代码,从而…

定个小目标之每天刷LeetCode热题(3)

这是一道简单题&#xff0c;我这里就只讲两种解法 第一种是数组加双指针&#xff0c;先遍历链表将值存到数组里&#xff0c;然后分别从数组两端进行一一比较判断是否满足回文&#xff0c;代码实现 class Solution {public boolean isPalindrome(ListNode head) {List<Inte…

给想玩AIGC的小白:教你从0搭一个图文视频生成网站(附插件源码)

Stable Diffusion的发布是AI图像生成发展过程中的一个里程碑&#xff0c;相当于给大众提供了一个可用的高性能模型&#xff0c;让「AI 文本图片生成」变成普通人也能玩转的技术。最近一些网友将网上的真人图片不断喂给模型&#xff0c;让其自主学习&#xff0c;训练出来的效果已…

工业工程师日子越来越受不了?IE们都在做什么?

有一位工业工程师&#xff08;IE&#xff09;毕业在一家工厂工作&#xff0c;入职一年了&#xff0c;本科读的是工业工程&#xff0c;他说理想很美好现实很骨感&#xff0c;以为做和本科一样的职业就能够大展宏图&#xff0c;结果上司天天让他盯生产线&#xff0c;在厂房一站就…

基于jeecgboot-vue3的Flowable增加表单功能(三)

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 接上一节 10、新建表单&#xff0c;打开VForm3编辑页面 /*** 新增事件*/function handleAdd() {designer.open true;nextTick(() > {reset();vfDesignerRef.value.clearDesigner();}…

m1系列芯片aarch64架构使用docker-compose安装nacos

之前看到 DockerHub 上发布了 m1 芯片 aarch64 架构的 nacos 镜像, 所以就尝试的安装了下, 亲测可用: 一. docker-compose.yml 编写 请确保自己的 mysql 服务已经启动了, 并且允许远程连接 volumes 挂载目录需要换成自己的目录 二. 容器运行和网络组 2.1 查看容器运行情况 …

【ai】livekit服务本地开发模式及example app信令交互详细流程

文档要安装git lfs 下载当前最新版本1.6.1 windows版本&#xff1a;启动dev模式 服务器启动 (.venv) PS D:\XTRANS\pythonProject\LIVEKIT> cd .\livekit_release\ (.venv) PS D:\XTRANS\pythonProject\LIVEKIT\livekit_release> lsDirectory: D:\XTRANS\pythonProject\L…

css-表头筛选的特定样式

背景 饿了么的表头筛选样式比较简单&#xff0c;如图1&#xff0c;产品觉得不够醒目&#xff08;觉得用户可能不知道这是筛选&#xff0c;我表示不理解&#xff09; 要求改进筛选的样式&#xff0c;达到图2的效果&#xff0c;主要是状态列&#xff0c;既希望这列的宽度固定&a…

[UE5]安卓调用外置摄像头拍照(之显示画面)

目录 部分参考文献&#xff08;有些有用的我没标&#xff0c;没放上来&#xff09; 要点 总蓝图 结果 部分参考文献&#xff08;有些有用的我没标&#xff0c;没放上来&#xff09; 【UE】获取USB摄像头画面_虚幻捕获硬件摄像头-CSDN博客 UE4安卓调用摄像头拍照确保打…

高边坡监测常用的主要仪器设备

随着人类的发展&#xff0c;近几年由于人类生活生产的破坏&#xff0c;地球环境不断恶化。鉴于这一现象&#xff0c;监测行业也随之应运而生。常见的监测类型有&#xff1a;边坡监测&#xff0c;地灾监测&#xff0c;水库监测&#xff0c;大坝监测&#xff0c;矿山监测&#xf…

重生之 SpringBoot3 入门保姆级学习(01、Hello,SpringBoot3)

重生之 SpringBoot3 入门保姆级学习&#xff08;01、Hello&#xff0c;SpringBoot3&#xff09;&#xff09; 1、快速体验1.1 创建项目1.2 导入 SpringBoot3 依赖1.3 导入 SpringBoot3 Web 依赖1.4 代码编写1.5 浏览器测试 1、快速体验 场景&#xff1a;浏览器发送 /hello 请求…

Balabolka-一款完全免费的电子书朗读及文本转语音软件

下载地址&#xff1a;Balabolka Balabolka能够进行简单的文本转语音任务&#xff0c;支持各种语言包&#xff0c;该软件可以读取剪贴板的内容&#xff0c; 可以查看AZW&#xff0c;CHM&#xff0c;DjVu&#xff0c;DOC&#xff0c;EPUB&#xff0c;FB2&#xff0c;LIT&#xff…