首页 > 其他分享 >rk3568用otg口U盘升级

rk3568用otg口U盘升级

时间:2024-10-25 17:35:55浏览次数:1  
标签:U盘 rk3568 otg host static cpp recovery

设备只有一个外露的usb(otg口)出来,平时可切换为host接U盘使用,或者otg可进行adb调试模式。这个口接U盘升级的时候,会升级失败,如果把
dr_mode改成host,就可以正常升级成功:

 但如果dts写死成host模式,开机后就不能切换为otg模式了,不能调试,这样的灵活性不够。dr_mode默认为otg时候,现在基本可以定位到是进入recover模式的时候,不是host状态,识别不到U盘导致升级失败的:

 解决该问题的思路是进入recovery模式时候,在挂载U盘和升级之前,要先切换为host模式。

 recovery.cpp里面的start_recovery函数是入口,在该函数里面实现切换设置。

diff --git a/recovery.cpp b/recovery.cpp
index eda573bc..a7ce5a92 100644
--- a/recovery.cpp
+++ b/recovery.cpp
@@ -75,6 +75,7 @@ static char updatepath[128] = "\0";
 bool bAutoUpdateComplete = false;

 static constexpr const char* CACHE_ROOT = "/cache";
+static const char *OTG_FILE = "/sys/devices/platform/fe8a0000.usb2-phy/otg_mode";

 static bool save_current_log = false;

@@ -1078,6 +1079,13 @@ Device::BuiltinAction start_recovery(Device* device, const std::vector<std::stri
   int arg;
   int option_index;
   int exit_from_factory = 0;
+
+   FILE *fp = fopen(OTG_FILE, "r+");
+   if (fp == NULL) {
+               printf("Can't open %s\n", OTG_FILE);
+  }
+   fputs("host", fp);
+   fclose(fp);
   // Parse everything before the last element (which must be a nullptr). getopt_long(3) expects a
   // null-terminated char* array, but without counting null as an arg (i.e. argv[argc] should be
   // nullptr).

C语言文件操作可参考:https://blog.csdn.net/m0_61213696/article/details/123264172

标签:U盘,rk3568,otg,host,static,cpp,recovery
From: https://www.cnblogs.com/wmc245376374/p/18502980

相关文章

  • 别再只用U盘啦!这款内外网文件交换工具更安全、更高效
    在数字化办公时代,企业内外网文件交换的需求日益增长。然而,这一过程却充满了挑战,包括带宽限制、网络稳定性、数据安全和系统兼容性等问题。传统的文件交换方式,如使用U盘、FTP或网络共享,都存在效率和安全性的局限。一、传统内外网文件交换工具的局限性传统的内外网文件交换工......
  • Linux操作系统如何制作U盘启动盘
    在麒麟系统中有一款U盘启动器软件,它是用于制作系统启动U盘的工具,方便无光驱的电脑安装操作系统,也可以反复使用一个U盘,避免光盘的浪费。下面对该U盘启动器使用方法做详细讲解。1.准备需要安装的系统镜像文件。图12.准备1个空U盘,大小在8GB以上。图23.在开始菜单中打开U......
  • 【原创】RK3588/RK3568/RK3562平台 IgH EthercAT主站编译安装
    目录igh主站编译安装说明一、配置内核自带网卡驱动编译为模块1.内核配置编译内核编译内核模块二、交叉编译EtherCAT主站1.普通linux或preempt-rt1.1配置1.2编译1.3安装到TF卡根目录2.xenomai2.1交叉编译xenomai库2.2配置2.3编译2.4安装到TF卡根目录四、安装目录打......
  • U盘重装Windows10专业版教程
    ·市面上很多重装系统后都会默认植入广告,怎么删也删不掉,今天给大家推荐一款:优启通,安装工具。这个工具完全绿色,没有任何广告,我也最喜欢用的一款工具,下面附上软件网址和教程·安装前需要准备一个空的U盘,因为优启通会自动格式化优盘,如果u盘有东西,需要提前备份。1、安装优启......
  • 还在为U盘数据丢失烦恼?看看这4款恢复软件,哪个更适合你?
    U盘里的数据可能因为各种原因丢,比如不小心删了,或者U盘被格式化了,再或者中了病毒,甚至U盘本身坏了。碰到这些情况,有个厉害又好用的数据恢复软件就特别重要。今天的文章会好好说说现在最火的四款U盘恢复数据软件,帮你挑一个最适合自己的,找回丢掉的数据。1.福昕智能数据恢复一键......
  • U盘数据恢复教程(原始人看了都会的教程)
    一、下载软件步骤1---本地地址:链接:https://pan.baidu.com/s/1ZasTeOc315oFpJ11zkMNQw 步骤2---解压直接是执行程序打开即可 步骤3---恢复数据---数据恢复不能放在恢复盘步骤4---选择一个盘符存储恢复的数据 步骤5---数据恢复成功......
  • 瑞芯微RK3566/RK3568 Android11使用OTA升级固件方法,深圳触觉智能鸿蒙开发板演示,备战第
    本文介绍瑞芯微RK3562/RK3568在Android11系统OTA(U盘/TF卡)升级固件方法,使用的是触觉智能的PurplePiOH鸿蒙开源主板,搭载了瑞芯微RK3566芯片,类树莓派设计,是Laval官方社区主荐的一款鸿蒙开发主板。1、OTA包生成在源码根目录上执行以下命令编译OTA包makeinstallclean#make-j4#......
  • win11 24H2怎么安装_u盘安装win11 24H2详细步骤【支持新旧机型安装】
    10月1日,微软正式发布了Windows1124H2正式版。对于win1124h2新机器安装肯定是可以的,对于旧电脑在硬件配置上可能无法满足Windows1124h2的最低系统要求,如果按官方要求是无法安装win11的。但是如果采用第三方pe方式安装的话,配置不太低的话还是可以安装win11的。因为我们......
  • 闪迪U盘误删的数据该怎么恢复呢?3个方法轻松解决
    闪迪是一家全球知名的美国公司,也是全球最大的闪存数据存储卡产品供应商,其中,闪迪U盘作为其主要产品之一,因其便携性、大容量和高速传输能力而深受用户喜爱。然而,在平时存储重要数据的时候,会因为我们一系列误删等原因,导致原本存储好好地数据出现丢失的问题。那么,闪迪U盘误删的数据......
  • 如何用PyQt5创建多个窗口,同时获取多个U盘内的文件的名称,并分别在对应窗口打印文件名,要
    在PyQt5中,你可以使用QThread创建多个线程来并行处理每个U盘的文件名获取任务。每个线程负责扫描一个U盘的文件,同时在主窗口显示结果。以下是一个示例代码,用来创建多个窗口,同时在每个窗口中显示各自的U盘文件名:每个窗口使用QWidget。使用QThread创建后台线程获取U......