KPW2 救砖
原因
心血来潮想刷个安卓双系统,结果进入 fastboot
模式后,电脑无法识别设备,同时发现设备的u-boot
被擦除了,连最基本的 fastboot
模式都进不去。
诊断
设备 | 详情 |
---|---|
电脑系统 | WIN 11 |
Kindle | Kindle Paperwhite (6th Generation) |
固件版本 | 5.12.2.2 |
USB转TTL小板 | FT232RL 1.8V |
长按电源键 10s 左右,黄灯闪烁4次,然后熄灭,屏幕背光始终熄灭。
连接电脑,查看设备管理器,发现设备无法识别,使用 usbipd
命令查看设备信息,输出如下:
1 | BUSID VID:PID DEVICE STATE |
使用 usbipd bind --busid 4-3
和usbipd attach --wsl --busid 4-3
命令将设备绑定到 WSL2,使用 lsusb
命令查看设备信息,输出如下:
1 | Bus 003 Device 039: ID 15a2:0063 Freescale Semiconductor, Inc. |
解决方案
经过一番搜索,发现了一个解决方案:How-to: Booting U-Boot and Linux over USB
使用 mfgtool
或者 imx_usb_loader
工具,通过 USB 将 u-boot
上传到设备的 RAM 中,然后进入 fastboot
模式,刷入新的 u-boot
。
准备工作
-
安装
imx-usb-loader
工具,由于没找到imx-usb-loader
的WIN版本,所以我选择在WSL2中安装使用1
sudo apt install imx-usb-loader
-
下载
u-boot
文件,这里我选择了 Snapshots of Katadelos’s hacks 的u-boot
文件,下载stock_bist
、stock_prod
和usb_fastboot
三个文件。 -
安装电脑端
fastboot
设备驱动,这里我使用了贴吧老哥 lyy000720 分享的驱动和工具。 -
下载最新的固件
操作步骤
-
根据 How-to: Booting U-Boot and Linux over USB
的教程,给KPW2的CR501触点提供3.3V的电压可以触发设备进入usb download
模式,这里我直接使用其上方的JTAG TP508触点,短接它们,具体可以参考这个视频。 -
将Kindle连接到电脑,在保持短接的情况下,长按电源键10s左右,等待黄灯闪烁4次后松开电源键,此时设备进入
usb download
模式,再次使用usbipd attach --wsl --busid 4-3
命令将设备绑定到 WSL2,使用imx_usb
命令将之前下载的uboot_2009-08-lab126_wario_usb_fastboot.bin
文件上传到设备的 RAM 中。1
sudo imx_usb ./uboot_2009-08-lab126_wario_usb_fastboot.bin
返回如下信息:
点击查看命令输出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37config file <.//mx6_usb_work.conf>
parse .//mx6_usb_work.conf
Trying to open device vid=0x15a2 pid=0x0063
Interface 0 claimed
HAB security state: development mode (0x56787856)
== work item
filename ../u-boot.bin
load_size 0 bytes
load_addr 0x00000000
dcd 1
clear_dcd 0
plug 1
jump_mode 3
jump_addr 0x00000000
== end work item
No DCD table
loading binary file(./uboot_2009-08-lab126_wario_usb_fastboot.bin) to 00980000, skip=0, fsize=1a1e4 type=aa
<<<106980, 106980 bytes>>>
succeeded (security 0x56787856, status 0x88888888)
jumping to 0x00980400
do_command err=-1, last_trans=0
do_command err=-1, last_trans=0
do_command err=-1, last_trans=0
do_command err=-1, last_trans=0
do_command err=-1, last_trans=0
config file <.//mx6_usb_work.conf>
parse .//mx6_usb_work.conf
Trying to open device vid=0x15a2 pid=0x0063
Interface 0 claimed
do_command err=-1, last_trans=0
do_command err=-1, last_trans=0
do_command err=-1, last_trans=0
do_command err=-1, last_trans=0
do_command err=-1, last_trans=0
status failed看到
status failed
不要慌,此时发现Kindle的背光已经正常亮起,串口输出如下:点击查看命令输出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41U-Boot 2009.08-lab126 (Oct 25 2021 - 20:27:32)
CPU: Freescale i.MX6 family TO0.0 at 996 MHz
Temperature: 42 C, calibration data 0x5504d95f
mx6sl pll1: 996MHz
mx6sl pll2: 528MHz
mx6sl pll3: 480MHz
mx6sl pll8: 50MHz
ipg clock : 66000000Hz
ipg per clock : 66000000Hz
uart clock : 80000000Hz
cspi clock : 60000000Hz
ahb clock : 132000000Hz
axi clock : 198000000Hz
emi_slow clock: 22000000Hz
ddr clock : 396000000Hz
usdhc1 clock : 198000000Hz
usdhc2 clock : 198000000Hz
usdhc3 clock : 198000000Hz
usdhc4 clock : 198000000Hz
MMC: FSL_ESDHC: 0,FSL_ESDHC: 1,FSL_ESDHC: 2
Board: Pinot WFO
Boot Reason: [ POR ]
Boot Device: NAND
Board Id: XXXXXXXXXXXXXXXX
S/N: XXXXXXXXXXXXXXXX
I2C: ready
DRAM: 256 MB
Using default environment
In: serial
Out: serial
Err: serial
Quick Memory Test 0x80000000, 0xfff0000
POST done in 57 ms
Battery voltage: 4003 mV
Hit any key to stop autoboot: 0
Entering fastboot mode...
USB speed: HIGH
Connected to USB host!此时设备已经进入
fastboot
模式,在设备管理器中可以看到设备已经被识别,可以正常使用fastboot
命令刷入新的u-boot
了。 -
使用
fastboot
命令刷入新的u-boot
文件1
2fastboot flash bist uboot_2009-08-lab126_wario_stock_bist.bin
fastboot flash prod uboot_2009-08-lab126_wario_stock_prod.bin返回如下信息:
1
2
3
4
5
6target reported max download size of 134217728 bytes
sending 'bootloader' (106980 KB)...
OKAY [ 3.364s]
writing 'bootloader'...
OKAY [ 0.000s]
finished. total time: 3.364s重启设备,设备背光正常亮起,进入
fastboot
模式,此时可以正常使用fastboot
命令刷入新的系统了。 -
使用
recovery
模式刷入新的系统
进入串口控制台,长按电源键重启设备,显示倒计时进入recovery
模式时按下Enter
键,进入recovery
模式,选择E
Export Fat32,将设备挂载到电脑,并将下载好的固件上传到设备中,退出Export Fat32
,选择I
Install Update,等待固件刷入完成,重启设备,设备正常开机。
小结
经过一番折腾,终于将KPW2救砖成功了,期间遇到了很多问题,也学到了很多知识,感谢各位大佬的分享,让我能够顺利的解决问题,也希望我的分享能够帮助到有同样问题的朋友。这下安心读书不折腾了。