Chromebook使用SuzyQable CCD免拆机救砖教程
Chromebook使用SuzyQable CCD免拆机救砖教程

Chromebook使用SuzyQable CCD免拆机救砖教程

本文创建和持续完善及优化的初衷是为购买作者设计的SuzyQ-Adapter的朋友提供完善和直观的指导。同时,不设密码免费公开也是想同时方便广大Chromebook同好。然而,本站大量邮件及其他途径的咨询,给作者造成不小的困扰。在此声明:作者无法确定其他CCD线材或是转接板的兼容及稳定性,除使用经本站严格测试的SuzyQ-Adapter外,使用其他CCD器材带来的问题,由于作者精力所限,恕无法解答。Chromebook是个小圈子,本文将持续保持公开方便同好,并欢迎分享及参考引用。祝玩机快乐!

本教程仅适用于带CCD调试功能的 (2017之后的机器大多都支持) Chromebook,Chromebox等ChromeOS设备,同时有如下要求:

  1. 设备带CCD调试功能*;
  2. 非含有企业锁或教育锁的机型,这些机型的CCD往往都被锁定;
  3. SuzyQ-Adapter(首选),或SuzyQable
  4. 写保护解锁:可以是前期CCD flags reset过或者断开电池排线;
  5. 另一台运行Linux的电脑,推荐Ubuntu(2304)

*具体可参考此处,查找自己机型,如果机型对应的WP Method一栏写有CR50字样,则该机器支持CCD功能。

流程:

  1. 准备工作
  2. 处理VPD*
  3. 刷写固件

*如果刷写原机备份的BIOS文件,则此步可跳过

准备工作

如果按照标准的教程开启CCD并解锁了写保护,可以不要拆机(实际上如果按照标准教程,变砖概率很低)。

但是如果很不幸,出于种种未知的原因或是按照非标准的教程操作,并未开启CCD,那么需要拆机,然后断开内部电池排线。断开电池排线千万要注意,有些电池排线端子金属裸露容易接触主板,造成主板烧坏。断开电池排线千万要小心,不要碰到主板其他元器件,同时断开后,将电池排线的端子用胶带包裹绝缘起来。这点千万不可偷懒马虎,不要心存侥幸!如果出于某些奇怪的原因,此时CCD仍未能打开。请按照这里的方法尝试。

注意:无论是救砖还是采用该教程方法强刷机器BIOS,必须保证待刷机器处于完全关机(不能是开机或者睡眠)的状态。

此时,打开另一台运行Linux的电脑(建议Ubuntu 2304,否则可能遇到flashrom问题,点击下载),Ubuntu系统可以是从U盘启动的,但必须物理安装,不能是虚拟机。连接网络,然后打开一个terminal(Ctrl+Alt+T), 注意不要以root身份打开。运行以下命令,切换到home目录

cd;

安装flashrom

sudo apt update
sudo apt install flashrom

连接SuzyQ-Adapter或是SuzyQable, 其C头连接被救砖的电脑的调试口(一般是左边的C口),另一头连接运行Linux的机器。输入以下命令检查线是否正常连接:

ls /dev/ttyUSB*

这条命令应该输出三个项目/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2,如果不是,线的C端上下翻转后重插,或者换一个机身的C口。出现左边的三个输出,则线功能正常且成功连上。

将CCD状态设置为open:

echo "ccd open" | sudo tee -a /dev/ttyUSB0 > /dev/null

拷贝待刷的.rom.bin文件:

如果是备份的原机BIOS文件,则将其直接拷贝到home根目录(Ubuntu中文系统中显示为目录);

如果要刷的是第三方的Full ROM文件,则也将其拷贝到home根目录,或者直接通过下列命令下载

wget https://mrchromebox.tech/files/firmware/full_rom/<filename>

其中,上述代码中的<filename>替换成从这里找到的文件名,如coreboot_edk2-redrix-mrchromebox_20230721.rom。找适合自己机器的文件的方法是根据机器的主板代号,可以从MrChromebox.techchromium.org查找主板代号Board Name。如果没有本机备份文件且不想刷第三方固件,或无法在上述位置找到合适的固件,可通过邮件咨询,个别机型固件提取很麻烦,有偿。

处理VPD

这里需要分情况讨论,如果你有本机原始固件的备份,那么可以跳过这一步,进入刷写流程

如果待刷固件非本机备份,则需要处理VPD。提取VPD有两种方式,机器内安装有正确BIOS固件的可用方式1,否则方式2,但两种方法都需要先安装cbfstool

wget https://mrchromebox.tech/files/util/cbfstool.tar.gz && tar -zxf cbfstool.tar.gz

方式1:通过CCD从机器提取固件并抽取VPD

sudo flashrom -p raiden_debug_spi:target=AP -r badflash.rom
./cbfstool badflash.rom read -r RO_VPD -f vpd.bin

注:上列两行命中的第一行也可以作为备份现有固件使用,其将机器现有固件备份为badflash.rom

方式2:从备份的BIOS文件中提取VPD(先将备份的BIOS文件拷贝到home目录)

./cbfstool <备份的固件> read -r RO_VPD -f vpd.bin

完成提取后将VPD注入待刷固件

./cbfstool <待刷固件> write -r RO_VPD -f vpd.bin

刷写固件

刷写固件如果是原机备份固件,则运行:

sudo flashrom -p raiden_debug_spi:target=AP -i SI_BIOS -w <待刷固件>

刷写固件如果是其他固件,则运行:

sudo flashrom -p raiden_debug_spi:target=AP -w <待刷固件>

以上命令中的<filename>需要根据情况修改为home目录中待刷固件的完整文件名。刷写固件一般后缀为.bin.rom。同时还需要补充说明的是,如果备份固件采用第一个方式不成功,可以尝试第二种方式。之所以分不同的固件刷机方式是因为某些备份的固件是不完整的,尤其是原版脚本在本机备份的固件对于Intel的U来说,本机是没有权限读取自身的ME分区的,备份出来的文件缺少ME分区无法完整刷写,这种情况可以告诉编程器只刷写bios部分,刷写命令中也可添加--ifd。当然如果在非本机操作备份,比如通过SuzyQ-Adapter或烧录夹备份的则完整。

搞定,祝好运。

一些奇奇怪怪的问题

1. EC相关

一些离谱的操作可能会导致机器的AP和EC*出问题,导致flashrom无法正常写入全部固件,在验证阶段出错。可尝试重启AP或者通过EC设置gpio。

在CR50终端(sudo minicom -D /dev/ttyUSB0)输入reboot,但是个别主板无效。

如果无效,尝试通过操作EC。进入EC终端(sudo minicom -D /dev/ttyUSB2),输入:apshutdown,等5秒,输入gpioset s5_en_rails 1

个别机型,比如redrix主板,上述s5_en_rails已经改为en_s5_rails

然后退出minicom,再次尝试刷机。

*EC文档

2. GBB FLAGS

对于某些特殊情况,无法进入Chromebook执行命令,或Chromebook不能完全重置到出厂等,可通过工具重置GBB FLAGS,获取gbb_utility后运行以下代码:

sudo ./gbb_utility --set --flags=0x0 <待修改ROM文件>

如果是开启了开发者模式,但是似乎又没完全开启,比如不能从恢复盘启动等,可以尝试将GBB FLAGS设置到39:

sudo ./gbb_utility --set --flags=0x39 <待修改ROM文件>

如果遇到了提示EC Sync相关的问题,可以尝试将GBB FLAGS设置到200,如需保留开发者环境就设置到239,在下方代码对应位置修改:

sudo ./gbb_utility --set --flags=0x200 <待修改ROM文件>

3. flashrom问题

某些情况下flashrom缺少相应的库或者编程器,可以自行编译flashrom,然后运行自编译的版本:

sudo apt update
sudo apt install -y git build-essential libpci-dev libudev-dev zlib1g-dev libusb-1.0-0-dev pkg-config
git clone --single-branch --branch master https://github.com/flashrom/flashrom.git
cd flashrom
pkg-config --libs libusb-1.0
make CONFIG_NOTHING=yes CONFIG_DUMMY=yes CONFIG_RAIDEN_DEBUG_SPI=yes WARNERROR=no

然后在刷机时指向自编译的flashrom即可,比如上文中在home目录运行刷机命令时将命令中的flashrom替换成./flashrom/flashrom

4. HWID修改

对于一些特殊情况缺少原机备份且无正常HWID,可能影响机器后期跑刷机脚本或者系统更新,可以完成刷机后,在机器上运行命令窗口参考此处更改HWID。或是刷机前通过gbb_utility直接操作待刷机的ROM文件。

5. VPD的直接注入

如果有提取的有效VPD比如提取为vpd.bin,也可将其直接注入机器。

sudo flashrom -p internal -w -i RO_VPD:vpd.bin

6. Minicom开启CCD并常开

Linux安装minicom,根据不同发行版,自行安装,比如Ubuntu即apt instal minicom

在连好SuzyQ-Adapter后运行:

sudo minicom -D /dev/ttyUSB0

进入minicom后,在minicom中运行*(逐行运行,不要一次性四行全部粘贴运行):

*注:个别机型可能会跳出文字要求确认(Press PP button),每跳出一次此提示,都需要短按一次电源键,直到不再提示。有些机型则直接开启。

ccd open
ccd reset factory
ccd testlab enabled
wp disabled atboot