小爱音箱L06A TTL刷机教程

背景

最近采购了一款小爱音箱L06A,但是他是卡黄灯、按键无法应状态。

L06A小爱音箱

于是开始研究小爱音箱刷机的方法,找了一大圈没有关于小爱音箱L06A的刷机方法,便开始自己琢磨如何刷机。

小爱音箱,只要有ttl链接点的主板都可以刷机。我自己之前也买了ttl线,因此我这边是有刷机条件的。这里推荐使用xshell工具(因为他支持ymodern传输) ,可以将分区镜像传输到内存再刷到磁盘中。

链接TTL进入uboot

TTL接线图如下,有些L06A主板没有ttl的标识,可以根据我的图示接线

主板ttl接线

我这里使用夹具接线,因此呢不需要焊接对主板无损对接的。

image

链接好TLL上电后,直接就开始了跑马,这个时候键盘按空格键,进入下面这个状态

lx06#

进入uboot 查看分区情况,输入‘mtdpart’ 回车输出分区情况,这里主要看分区的起始位

lx06# mtdpart
0x000000000000-0x000000200000 : "bootloader"
0x000000800000-0x000001000000 : "tpl"
0x000001000000-0x000001600000 : "boot0"
0x000001600000-0x000001c00000 : "boot1"
0x000001c00000-0x000004420000 : "system0"
0x000004420000-0x000006c20000 : "system1"
0x000006c20000-0x000008000000 : "data"

到这一步您距离操作成功还有1个小时

使用binwalk解压原始的bin

文章末尾我这边有原始bin和解压后的文件,下面是解压使用的工具与命令

python3 mico_firmware.py -e mico_all_a9c77_1.62.5.bin -d ./

这里参考了 https://github.com/jialeicui/open-lx01 这个文档上面的解压方式非常好用

解压出来后的目录结构

总用量 35376
-rw-r--r--. 1 root root  5186368 5月  11 21:33 boot.img 【boot】
-rw-r--r--. 1 root root    32823 5月  11 21:33 meson.dtb
-rw-r--r--. 1 root root      513 5月  11 21:33 mico_version
-rw-r--r--. 1 root root 30410274 5月  11 21:33 root.squashfs 【system】
-rw-r--r--. 1 root root    49152 5月  11 21:33 u-boot.bin.usb.bl2
-rw-r--r--. 1 root root   531456 5月  11 21:33 u-boot.bin.usb.tpl

以上是在linux服务器上做的操作,没有linux自己跑虚拟机吧,当然使用我提供的解压包忽略。

开始加载img镜像到L06A内存中

执行’loady’命令,点击鼠标右键 【传输】 选ymodern传输 上传文件

image

这里只是图示,第一步我们刷boot(和uboot有区别的哈),boot分区的位置有两个,统一刷了吧

0x000001000000-0x000001600000 : "boot0"
0x000001600000-0x000001c00000 : "boot1"

使用在线计算 十六进制长度 https://www.jisuanla.com/digital-computation/hex-subtraction-calculator.php

等待大概10多分钟上传完成,后的输出内容。注意 上传内存的起始位:0x01080000

lx06#loady
## Ready for binary (ymodem) download to 0x01080000 at 115200 bps...
CCCCCCCCCxyzModem - CRC mode, 1(SH)/50
65(STX)/0(CAN) packets, 10 retries
## Total Size      = 0x004f2340 = 5186368 Bytes

L06A刷boot0与boot1

刷boot操作,

## 第一步 nand清除磁盘boot0与boot1空间  参数: 分区开始位 写入长度
nand erase 0x000001000000 0x0600000
nand erase 0x000001600000 0x0600000

## 第二步 nand写入内存数据到磁盘起始位 参数: 内存地址 分区开始位 写入长度
nand write 0x01080000 0x000001000000 0x0600000
nand write 0x01080000 0x000001600000 0x0600000

L06A刷system0与system1

刷system,这个是系统分区比较大,按照上面boot重复操作就行了。上传时间较长,耐心等待哦。

nand erase 0x000001c00000 0x02820000
nand erase 0x000004420000 0x02800000

nand write 0x01080000 0x000001c00000 0x02820000
nand write 0x01080000 0x000004420000 0x02800000

格式化数据区

格式化数据区,以防万一,数据区需要格式化了。

nand erase 0x000006c20000 0x013E0000

刷机包的资源:
链接: https://pan.baidu.com/s/1b4vQn3Pu7yGIlRaG5HkDqA
提取码: 关注公众号发送 “我要L06A刷机包” 获取

结束语

注意哈:刷机属于高级技术活,谨慎操作,失败了自己反省,别怪我。

如果您刷机过程遇到问题,提供付费咨询服务,哈哈!!!

来源: 雨林博客(www.yl-blog.com)