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
2
BUSID   VID:PID    DEVICE          STATE
4-3 15a2:0063 USB 输入设备 Shared

使用 usbipd bind --busid 4-3usbipd 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

准备工作

  1. 安装 imx-usb-loader 工具,由于没找到 imx-usb-loader 的WIN版本,所以我选择在WSL2中安装使用

    1
    sudo apt install imx-usb-loader
  2. 下载 u-boot 文件,这里我选择了 Snapshots of Katadelos’s hacksu-boot 文件,下载 stock_biststock_produsb_fastboot 三个文件。

  3. 安装电脑端 fastboot 设备驱动,这里我使用了贴吧老哥 lyy000720 分享的驱动和工具

  4. 下载最新的固件

操作步骤

  1. 根据 How-to: Booting U-Boot and Linux over USB
    的教程,给KPW2的CR501触点提供3.3V的电压可以触发设备进入usb download模式,这里我直接使用其上方的JTAG TP508触点,短接它们,具体可以参考这个视频

  2. 将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
    37
    config 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
    41
    U-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 了。

  3. 使用 fastboot 命令刷入新的 u-boot 文件

    1
    2
    fastboot 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
    6
    target 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 命令刷入新的系统了。

  4. 使用 recovery 模式刷入新的系统
    进入串口控制台,长按电源键重启设备,显示倒计时进入 recovery 模式时按下 Enter 键,进入 recovery 模式,选择 E Export Fat32,将设备挂载到电脑,并将下载好的固件上传到设备中,退出 Export Fat32,选择 I Install Update,等待固件刷入完成,重启设备,设备正常开机。

小结

经过一番折腾,终于将KPW2救砖成功了,期间遇到了很多问题,也学到了很多知识,感谢各位大佬的分享,让我能够顺利的解决问题,也希望我的分享能够帮助到有同样问题的朋友。这下安心读书不折腾了。