R3300L按reset键无法进入USB Burning模式的问题分析
最开始并没有注意到这个问题, 因为从设备拿到手, 用USB Burning Tool刷入潜龙版的安卓4.4.2, 再到运行EmuELEC, Armbian, 再到给Kernel 5.3的Armbian编译RTL8189FTV的驱动, 都还算顺利. 因为Kernel 5.3也差不多搞定了, 开始打安卓的主意, 想看看能不能跑7.x版本的安卓. 固件包下了几个, 要开始刷的时候出了状况, 发现按着reset键再也无法进入USB Burning Mode了.
几经调查, 试了另外两台一样已经刷过的R3300L, 百度上查类似的案例, 发现其他人也存在这种情况. 而且网友们提供的处理方法(4R19接地)完全无效.
于是开始研究UBOOT
这个设备跑过的系统不外乎潜龙的安卓4.4.2, 以及各种版本的EmuELEC, 各种版本的Armbian, 通过查资料, 发现Linux下面的fw_printenv和fw_setenv命令可以查看及修改UBOOT下的配置. EmuELEC下可以直接运行, 但是在高版本的Armbian下, 仅有可执行文件, 缺/etc/fw_env.config, 于是又查资料找到了对应S905L的config.
通过分析UBOOT的配置, 可以确认EmuELEC和Armbian都会对UBOOT配置进行修改, 但是它们的修改只是在bootcmd里加东西, 加上从sdcard和usb启动的方法, 不应该会影响到组合键.
于是将其中一台焊上了TTL线座, 翻出来以前买的PL2303的USB串口线. 连的过程也是各种摸石头过河. 首先是TX和RX的连线, 尝试几次后确定是PL2303的TX和RX分别接盒子的RX, TX. 然后是VCC线, 每次一连接, 盒子就上电启动了, 根本没法主动观察启动过程, 于是把VCC和GND拔掉, 这下不会自己启动了, 但是启动后看到的全是方块状乱码, 最终是VCC不连, 只连GND, 才算又不自己启动, 又能显示正常.
观察UBOOT的启动日志发现, 按不按reset键, 连不连HDMI, 启动日志基本完全一样.
其中一行"Hit any key to stop autoboot: 0"给我造成了很大困惑, 因为不管怎么敲Enter键, 都不会进入UBOOT命令行, 我怀疑是因为这个0, 导致无法停下来. 查阅资料, 发现有个配置项bootdelay, 于是从0改成了5, 发现根本不起作用, UBOOT还是一路狂飙不停下来, 又查资料, 发现还有用Ctrl+C的, 再试依然无效. 再查资料, 发现还有用空格键的, 这个起作用了, 只要拍空格键, 就能进入UBOOT
继续查资料, 发现还有个配置项叫 upgrade_key , 这个值是 "if gpio input GPIOH_6; then echo detect upgrade key; sleep 3; run update;fi;" 在日志中有这么一行"gpio: pin GPIOH_6 (gpio 55) value is 1", 凭借着曾经做过一些电路的经验感觉这个不对. 如果reset键输入是GPIOH_6, 那么在按下的时候肯定处于接地状态, 不可能是高电平, 所以这行日志对应的就是upgrade_key当中 gpio input GPIOH_6 这行执行的结果, 并没有检测到reset键按下的状态, 所以可以说是GPIOH_6这个写错了.
要找正确的gpio pin该怎么办呢? 又查资料, 发现 gpio status -a 这个命令可以显示所有的gpio状态, 这就好办了, 在reset键未按下和按下两个状态下, 分别执行一下这个命令, 把输出的结果对比一下就出来了, 得到的正确pin是GPIOAO_2, 在按下前是GPIOAO_2: input: 1 [ ], 在按下之后变成了 GPIOAO_2: input: 0 [ ]
再通过fw_setenv将正确的值设上
fw_setenv upgrade_key "if gpio input GPIOAO_2; then echo detect upgrade key; sleep 3; run update;fi;"
.按住reset重启, 就可以观察到usb burn的状态了.
解决这个问题断断续续花了我大概三天时间, 从周五到周日, 可能对于对于专业选手很简单, 但对于我很多是新事物, 要慢慢摸索.
R3300L按reset键无法进入USB Burning模式的问题分析相关推荐
- 计算机主机面板上的reset,按一下主机箱面板上的复位键(reset键)三`windows的基本操作.doc...
按一下主机箱面板上的复位键(reset键)三`windows的基本操作 第1讲 Windows98基础 一.认识电脑:主机.显示器.键盘.鼠标器.音箱(耳机).打印机等. 二.计算机的开机.关机 1. ...
- 计算机主机面板上的reset,一但中了IE窗口炸弹马上按下主机面板上的Reset键,重起计算机是对的吗...
一但中了IE窗口炸弹马上按下主机面板上的Reset键,重起计算机这句话是错的.IE炸弹是指有一段代码的执行会陷入无穷的循环,最终导致资源耗尽,影响计算机的使用. 在一些恶意网页中,埋伏了IE窗口炸弹. ...
- 修改GL-iNet路由器的reset键功能
默认情况下短按reset键将会重启设备,这个功能并不常用,所以把它改成短按打开关闭wifi,方法如下: 1. 首先备份/etc/rc.button/reset mv reset reset.bak 复 ...
- 电脑开关坏了,用Reset键代替开关机键盘
电脑故障现象:同学的电脑最近突然出现了不能开机的故障,而且"非常彻底":按下机箱上的电源开关之后,整台电脑毫无反应!甚至听不到风扇转动,简直就像停电了一样! 故障分析:在排除了电源 ...
- 计算机组装中RESET,专家解惑:有些品牌机为何没Reset键
不知道大家注意到没有,一些品牌机上没有设置"RESET"按键,也就是复位键,像IBM,HP,DELL,联想等,但是有些品牌机也有设置,这个复位键在DIY机器上是很常见的.为什么有些 ...
- linux文件删除 能恢复出厂设置密码,OpenWrt固件通过reset键恢复出厂设置步骤
OpenWrt固件通过reset键恢复出厂设置步骤 ?更新时间:2014-06-15 ?来源:本站小编 ?浏览:2295次 OpenWrt 可以说是Linux的发行版,OpenWrt的包管理提供了一个 ...
- USB驱动及其源码分析
一.USB理论部分 1.USB概述 USB1.0版本速度1.5Mbps(低速USB). USB1.1版本速度12Mbps(全速USB). USB2.0版本速度480Mbps(高速USB).USB3.0 ...
- 850 USB 烧录模式
/************************************************************************** 850 USB 烧录模式* 说明:* 本文是为了 ...
- html5 usb调试,USB调试怎么打开 USB调试模式打不开怎么刷机
2016-04-25 16:58:28 USB调试怎么打开 USB调试模式打不开怎么刷机 标签:USB调试,刷机,recovery模式,卡刷 [ROM之家]在手机很多应用使用时需要打开USB调试,比如 ...
最新文章
- CDIE-2021春季课程内容设计 | 火场逆行
- [vue-cli]vue-cli3插件有写过吗?怎么写一个代码生成插件?
- mysql set类型 查询,MYSQL SET字段类型怎么查询
- java修改ldap用户密码_LDAP 用户更改自己的密码
- 27. 考研与工作怎么选择
- matlab 离散点求导_Matlab的离散点曲线导数曲率数值模拟方法
- NanoHTTPD接收post数据
- 我对硬盘MBR、DBR、BPB、FAT和FDT的理解
- Excel如何批量生成条形码?
- 惠普触控板使用指南_惠普笔记本触摸鼠标怎么设置
- Win7 + VirtualBox 安装 MacOS X 10.9 Mavericks 操作步骤
- cannot lock ref问题的解决
- jQuery实现相册功能
- python 声音基频f0_ASR中常用的语音特征之FBank和MFCC(原理 + Python实现)
- 培训班出来的程序员现在怎么样了
- js如何判断保留两位小数
- 顺丰速运扩大全球业务范围,正式进军新西兰市场
- 咦,我和名画撞脸了!
- 分治法之图解最大子序列和
- 鸿蒙os目前支持了哪些硬件,大佬终于把鸿蒙OS讲明白了,收藏了!