高通RB3(845c)这块板子最近无法正常启动进入Linux了。本文记录一下,尝试恢复的过程。
先从以下链接下载好bootloader release。 http://releases.linaro.org/96boards/dragonboard845c/linaro/rescue/latest/ 我下载的时候,Release的BUILD NUMBER是50。所以得到了以下ZIP文件。解压这个文件,以备后用。
dragonboard-845c-bootloader-ufs-linux-50.zip
这个就不要想了。Dragonboard 845c因为硬件的限制,不支持从SD卡启动。
845c是支持通过USB recovery 或者说 flash 的,本文记录的就是这个方法。这时就需要这个工具了:Linaro QDL flashing tools。
工具取得
$ git clone https://git.linaro.org/landing-teams/working/qualcomm/qdl.git安装依赖
$ sudo apt-get install libxml2-dev libudev-dev进入工具的目录并且make
$ cd qdl/ $ make到此,在qdl这个文件夹中生成了可执行文件qdl。以备后用。
另外,有的Linux系统中的ModemManager会影响RB3与LinuxPC的USB连接,所以我们运行以下命令,以确保关闭掉ModemManager。
$ sudo systemctl stop ModemManager想要RB3进入USB flashing模式,我们有两个方法。
(以上两个过程都在官方操作指南中加入了自己的理解,原指南描述不够详细) 至此,RB3板子就以我们希望的模式与LinuxPC链接好了。
进入最开始我们解压ZIP文件得到的目录。然后运行刚才编译好的qdl,参数如下。
$ cd ./dragonboard-845c-bootloader-ufs-linux-50/ $ sudo <PATH to qdl>/qdl prog_firehose_ddr.elf rawprogram?.xml patch?.xml写入动作开始执行,最后得到以下输出。
... ... Update Backup Header with CRC of Backup Header. LOG: INFO: Calling handler for patch LOG: INFO: Calling handler for setbootablestoragedrive LOG: INFO: Using scheme of value= 1 partition 1 is now bootable LOG: INFO: Calling handler for power LOG: INFO: Will issue reset/power off 100 useconds, if this hangs check if watchdog is enabled LOG: INFO: bsp_target_reset() 0到目前为此,一切顺利。我们可以通过以下操作确认确认flashing成功。
断开RB3板子的电源线,并确认已经拔掉了所以USB线。长按“VOL-“按键。链接电源线。“VOL-“按键不要松开。短按“ON/OFF”按键。蓝色LED点亮5秒后,松开“VOL-“按键。用USB Type-C链接RB3与LinuxPC。这时,在PC输入以下命令,应该看到有一个设备如下,以确认RB3进入fastboot模式。
$ sudo fastboot devices 01234567 fastboot遗憾的是,我输入这个命令后,没有设备被识别出来。 说明我的板子没有恢复到可以进入fastboot模式的状态。如果哪位知道原因,或者有方法解决这个问题,欢迎指点。谢谢。
https://www.96boards.org/documentation/consumer/dragonboard/dragonboard845c/installation/board-recovery.md.html