刷写固件
与普通PC不同的是,受限于其原厂BIOS固件,如Chromebook和Chromebox等Chrome设备无法直接刷机改为其他第三方操作系统。因此,若要将ChromeOS操作系统改为Windows或者Linux等等第三方操作系统,首先需要将机器内部原厂固件刷写为第三方固件,第三方BIOS固件通常由MrChromebox开发并维护。感谢这位大神对ChromeOS社区做出的贡献!
关于Chrome设备刷写固件的教程网上五花八门,绝大多数教程只知其然不知其所以然,不少教程甚至风险很高,很可能起到误导作用。目前较为靠谱的中文教程来源有Chromebook研究院和Hollywoo.de。前者研究院大部分教程较为陈旧,后者Hollywoo.de教程较新,但在结构安排上仍需改进。
英文版教程最为详细,且结构安排合理,易读性强。此处将参考其内容和结构,给出Chrome设备刷写第三方固件的详细操作步骤,并综合多方面经验,力求提供最新、最准确、最可靠和最详细的中文教程。
0.基础知识
首先需要明确的是,不是所有机器都有MrChromebox第三方固件可供刷入,比如ARM处理器的机器暂无可用固件。
同时,需要提前知晓的是Chrome设备均有BIOS固件写保护机制,在未解除写保护时,无法直接进行刷机操作。后文也将详细介绍解除写保护流程。
此外,此教程不适用于有企业锁的机器,企业锁机器表现为机器受特定企业或者学校管控,必须登录特定后缀的企业或者学校邮箱才能使用;或者开启开发者时提示”System Policy”禁用了开发者模式。大多数能正常登录个人账户正常使用原生ChromeOS系统的机器均无企业锁。如有企业锁,Hollywoo.de博客提供了部分机型的解决方案,可前往参考。
这里也提供一个购买建议:不要购买提前刷好第三方系统的Chromebook或Chromebox。第一,毕竟是第三方BIOS,使用过程中多多少少会遇到一些问题,自行刷机是熟悉机器的重要过程;第二,也是最重要的,个别机器可能存在企业锁或者其他限制,个别卖家会通过拆机强刷芯片的方式刷入固件后安装好Windows系统,掩盖机器问题。这种机器无法恢复原系统,或是更新BIOS可能变砖。
1.开启开发者模式
未开启开发者模式的Chrome设备有相当的功能限制,在刷机之前,开启开发者模式是首要的步骤。同时,注意区别的是,开启开发者模式需要按照本文下方方式打开,并不是在系统内开启操作系统的开发者版本。
进入恢复模式
首先需要进入机器的恢复模式即Recovery Mode。请记住这个模式及其进入方式,会高频率使用。
不同形态的设备有不同的进入恢复模式的方式,主要不同的设备形态有:笔记本Chromebook、小主机Chromebox、平板Tablet。其对应进入恢复模式方式如下:
同时按下ESC 刷新↻ 电源键,机器将会直接进入恢复模式。
在少数情况下,有些机器可能上述三键不起作用,尝试同时按ESC 全屏键(四个方角) 电源键尝试,如仍不起作用,那么有理由怀疑机器键盘有问题,或者固件或EC有问题。
Chromebox机身一般都会隐藏Reset键,一般在小孔后方藏着。关机后使用取卡针按住Reset键的同时按一下开机键,有画面输出后松开Reset键即可。
同时按住音量加 音量减及电源键十秒进入恢复模式,同时按下音量加 音量减后,用音量键上下选择关闭系统验证后单击电源键确认。
恢复模式是Chrome设备常用的模式,会在多处使用,再次提醒:记住进入该模式的方式。
开启开发者
在进入恢复模式之后,在此界面即可打开开发者模式。同样的,对于不同形态的设备,其对应的开启方法也必然不同。在进入了上文所述的恢复模式界面内开展对应的操作:
同时按下CTRL D,此时机器将会提示”Turn OS Verification OFF” 或”Enable Developer Mode”,或是根据选择语言的不同,显示对应语言的相应内容。
在此界面按ENTER,系统将会重启。此时系统进入”You are in Developer Mode” 或者 “OS Verification is OFF” ,或是对应的其他语言提示页面,此时再按CTRL D跳过此界面。注意这里千万不要按空格,否则将退出开发者。
然后静等开机即可,保持默认不要开启debug功能。
与前一个标签笔记本 Chromebook相同的步骤,可外接键盘操作。
在恢复模式页面同时按下音量加 音量减后,用音量键上下选择“Confirm Enabling Developer Mode”后单击电源键确认。
机器将重启进入”OS Verification is OFF”页面,此时选择”Developer Options”然后选择”Boot from Internal Disk”即可进入开发者模式。
2.关闭写保护
操作方式
关闭BIOS芯片硬件写保护是刷机前的必要步骤,否则将无法写入固件。
总地来说关闭写保护常用操作方式有三种:拆机移除写保护螺丝、拆机拔除电池排线暂时关闭写保护、不拆机使用CCD (Closed Case Debugging, 合盖调试) 方式永久关闭写保护。
对于2017年之前的Chrome设备,一般也就是对应英特尔6代及之前的处理器的,需要拆机移除写保护螺丝;2017年谷歌引入了CCD,部分机型可以通过拆机断开电池排线关闭写保护,但几乎所有2017年之后的机型都可以直接通过输入命令用CCD的方式永久关闭写保护。
具体怎么选择关闭写保护的方式,一个简单的原则就是,除非机器很老,一律推荐使用CCD的方式永久关闭写保护。2017年之后的机型几乎全部支持CCD( 目前已知戴尔5300和5400不支持 )。原因如下:
- 部分新机仅支持通过CCD关闭写保护;
- 拆机移除电池排线对于某些机型而言风险极高,容易造成主板击穿;
- 拆机移除电池排线仅为临时关闭写保护,后期升级以及恢复需要重复拆机;
- 断电刷机过程中外部供电不稳将造成刷写中断变砖;
- 断电池的刷机方式在近期引入了较多后续出问题的bug,主要表现为”Erase Failed”,原因不明。
CCD调试硬件
支持CCD功能的机器机身有一个Type-C口带有此功能,通过特殊的调试线或者转接板可以激活CCD调试。这个调试硬件可以称为SuzyQ,其作用是连接Chrome设备内部的安全芯片,进行CCD通信,进行更多的开发者操作。永久关闭写保护只是其一个功能之一,此外还能进行直接的BIOS固件刷写、EC刷写以及读取机器运行log等等高阶的开发功能,常见的另一个应用场景便是不拆机救砖。强烈建议Chromebook玩家常备。
这个SuzyQ硬件市面上常见为两种,一种是国外Sparkfun开发的SuzyQable,一种是国内Hollywoo.de开发的SuzyQ-Adapter。前者SuzyQable已经退市,后者SuzyQ-Adapter在淘宝和闲鱼仍有售卖,似乎时常也会有一些折扣不低的开车价。
当然,动手能力强,且有电烙铁等设备的玩家,也可以购买Type-C公头拓展板,准备一根Type-A公头USB线材和对应的电阻,自行焊接一款SuzyQable。电阻和线序对应参考此表格:
| Type-C 公头 | Type-A 公头 |
|---|---|
| A8 (SBU 1) | D+ |
| B8 (SBU 2) | D- |
| A4, A9, B4, B9 (VBUS) | VBUS, 5V |
| A5 (CC1) | 22 kΩ 1% 电阻连 VBUS |
| B5 (CC2) | 45.3 kΩ 1% 电阻连 VBUS |
| A1, A12, B1, B12 (GND) |
GND |
焊接时请注意VBUS电源线的隔离,不要接触到其他脚位。如果您机器比较金贵,建议还是买个做工好的成品,比如上文提到的SuzyQ-Adapter。
CCD永久关闭写保护
这里用本人所使用的SuzyQ-Adapter举例,准备好这个小转接板,以及一根普通C-C数据线,或者A-C线也行。但个别电脑的A口有限制,需要使用C口或者通过C口转接,比如曾碰到过惠普X360的A口就有次限制,因此推荐C-C数据线。
进入VT2开启CCD
- 开机,进入VT2终端窗口:
CTRL+ALT+F2(其中F2一般是↻左边的右箭头,没有右箭头,按↻); - 登录用户输入
chronos(可能要等一会儿才跳出输入的页面),无密码,直接回车。如果提示密码不对,可尝试root登录,密码test0000,然后可按照页面提示设置chronos的密码。如果也不对,重新恢复新系统后再试; - 运行
sudo gsctool -a -o - 上一步命令运行过程中电脑将多次跳出文字要求确认”Press PP button now!”,每跳出一次此提示,都需要短按一次电源键,注意是短按,不是长按。跳出”Another press will be required!”时不要走开,等待机器再跳出”Press PP button now!”时继续短按电源键,如此往复几遍,最后一次按完之后机器将会黑屏自动重启;
- 重启后机器将会自动退出开发者模式,按照之前的教程再次打开开发者;
- 检查CCD状态,进入VT2后运行
sudo gsctool -a -I,输出结果中”CCD Status”将为”Opened”,如为”Locked”说明上述操作有误,从第1步开始再来一遍。
永久关闭写保护
- 开机,进入VT2终端窗口;
- 登录用户输入
chronos - 将SuzyQ-Adapter插入机器具备调试功能的C口,一般在左边,少数在右侧。CCD口不能正反盲插,有方向,一个方向不通,将转接板上下翻转。准备一根普通数据线一头连转接板,另一头连机器的另外一个数据口。如为A口可以用转接器。极少数情况下如果线A头直插机身A口不起作用的话,尝试将线A头通过C to A转接器接机身空余C口;
- 运行
ls /dev/ttyUSB*这条命令应该输出三个项目/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2,如果不是,上下翻转SuzyQ-Adapter后重插,或者换一个机身的C口。出现左边的三个输出,则线功能正常且成功连接; - 运行
sudo bash - 运行以下命令关闭写保护( 此命令运行无输出,请注意输入字符的准确性 ):
echo "wp false" > /dev/ttyUSB0echo "wp false atboot" > /dev/ttyUSB0
- 运行
echo "ccd reset factory" > /dev/ttyUSB0将CCD设置为常开,方便以后有需求时救砖( 此命令运行无输出,请注意输入字符的准确性 ); - 运行
gsctool -a -I,其输出各项应均为Y/Always - 运行
crossystem wpsw_cur,其输出结果在下一行开头,应为0 - 重启。
3.运行刷机脚本
MrChromebox的刷机脚本支持刷入RW_Legacy和Full ROM两种类型的固件,前者RW_Legacy适用场景非常有限,仅适用于双启动某些Linux系统。后者Full ROM为完整的UEFI固件,可以安装Windows、Linux或是MacOS等各种操作系统。这里也仅针对Full ROM提供具体步骤。
按照如下步骤运行刷机脚本,并完成Full ROM的写入,在进行以下步骤前,请确保机器联网。
首先按照前文的前序步骤完成开启开发者并关闭写保护,然后CTRL+ALT+F2进入VT2,注意使用chronos身份登录,不要使用root登录。
然后运行刷机脚本命令,根据你的网络能否科学上网选择不同的脚本(请注意以下的脚本中并无数字,注意区分大写字母O和数字0):
此为MrChromebox原版镜像,运行以下命令:
cd; curl -LO mrchromebox.tech/firmware-util.sh && sudo bash firmware-util.sh
如果如果报证书相关的错误可尝试:
cd; curl -LOk mrchromebox.tech/firmware-util.sh && sudo bash firmware-util.sh
这里是Hollywoo.de提供的镜像,这个镜像是目前所有镜像中维护最好,和官方最同步的镜像:
cd; curl -LO https://hollywoo.de/chrultrabook/scripts/firmware-util.sh && sudo bash firmware-util.sh
同样地,如果报证书相关的错误可尝试:
cd; curl -LOk https://hollywoo.de/chrultrabook/scripts/firmware-util.sh && sudo bash firmware-util.sh
运行后脚本将会自动检测机器型号以及写保护状态等,可以运行的为蓝色,否则为灰色。如果写保护未成功解锁,回到之前的步骤再次尝试解锁。
进入脚本菜单,如果机器是Pixelbook 2017,需要首先选择”Downgrade Touchpad Firmware”选项降级触控板固件,然后再进入脚本刷机。其他机型不涉及该选项。
然后在脚本中选择”Install/Update UEFI (Full ROM) Firmware“选项,一般为输入数字2后回车,然后脚本自动执行,将会有一系列风险提示等:
- 首先是风险提示,警告刷机风险,同意风险则输入
y后回车继续; - 支持CCD的机型,会有额外的提示,提示建议要使用SuzyQ打开相关功能方便后期救砖,同意提示则输入
I ACCEPT后继续; - 提示刷机后将需要安装相应的操作系统( 如Windows )才可正常启动,同意则输入
y继续; - 极个别特殊机型有特殊的提示,根据实际情况选择对应提示选项;
- 原固件备份提醒,强烈建议备份原机固件。按照提示直接回车或输入
Y进入固件备份程序。后续需要准备一个U盘,并根据脚本提示,输入对应的U盘序号,并按提示进行固件备份。完成备份后移除U盘,并妥善保管备份文件,根据提示操作进入下一步;( 这一步中新脚本可能不再询问,而是强制让插入U盘进行备份,否则将退回主菜单) - 接下来脚本将会下载对应固件后进行刷机操作,如下载失败,可能是网络问题,更换网络,如使用手机热点等再尝试。只要脚本未报错,耐心等待即可,可能是几分钟,也有人十几二十分钟;
- 出现绿色提示刷机成功后回车回到主菜单,输入
R重启即可。如果是红色刷机失败的提示,则不要重启机器,重新回到主菜单,恢复之前备份的原机固件。