diff --git a/development/hardware/chromebook.md b/development/hardware/chromebook.md index 64c43eab..c77ae54f 100644 --- a/development/hardware/chromebook.md +++ b/development/hardware/chromebook.md @@ -1,123 +1,281 @@ + +# 在 Chromebook 上安装 Fuchsia + + +## 支持的 Chromebook + +这些 Chromebook 开发者经常使用,应当是稳定支持的。 + +* Google Pixelbook Go(_atlas_) + +### 以前支持的 Chromebook + +这些 Chromebook 受到“尽力而为”的支持,并且不会受到定期测试。 + +* Google Pixelbook(_eve_) + +### 其他 ChromeOS 设备 + +其他基于 x86 的 ChromeOS 设备可能工作,也可能不会工作。基于 ARM 的 ChromeOS 设备无法开箱即用。 + +## 前提条件 + + +请确保您为 Fuchsia 进行了 `chromebook-x64` 构建。 + +1. 完成[下载 Fuchsia 源代码][get-fuchsia-source]指南。 +2. 请在[配置和构建 Fuchsia][build-fuchsia]中设置您的构建配置,以使用如下的 Chromebook 产品: ```posix-terminal fx set workstation_eng.chromebook-x64 --release ``` + +## 更新 ChromeOS + +如果您的 Chromebook 从未启动过,请您最好将其启动,以检查重要的更新,步骤如下: + +1. 正常启动 Chromebook。通常,打开盖子会启动设备。如果没有启动,请使用位于设备左侧、靠近腕托位置的电源按钮。 + +2. 点按“开始使用”(Let's go)按钮。 + +3. 连接到有线或无线网络。 + +4. 接受条款,以进入更新检查步骤。 + +5. 设备应当检查并安装找到的更新。 + + +6. 更新重启之后,点按左下角的“以访客身份浏览”(Browse as Guest)。 + + +7. 通过浏览器用户界面,前往“设置->关于 Chrome OS”(Settings->About Chrome OS)或“帮助->关于 Chrome OS”(Help->About Chrome +OS),确认新安装的版本。 + +## 为您的设备开启开发者模式 + +注意:这将会擦除保存在您 Chromebook 本地的任何状态。 + +1. 关闭 Chromebook 电源。 + +2. 进入恢复模式。同时按住 Esc+Refresh(键盘顶行的第一和第三个按钮)。接着按下电源按钮(设备的左下方)。 + +3. 按下 Ctrl+D,以在禁用 OS 验证的情况下启动。您应当看到“要关闭 OS 验证,请按下 ENTER。”(To turn OS verification OFF, press ENTER) + +4. 当您的设备重启时,您将收到 OS 验证已经关闭的确认信息。再次按下 Ctrl+D 进入开发者模式(Developer Mode)。 + +5. 等待设备自行完成重新配置,可能需要几分钟时间。设备最初可能看起来没有任何反应。请允许设备静置一到两分钟。在此过程的前期,您可能听到两次响亮的“哔”声。该过程在您再次听到两次响亮的“哔”声时完成。 + +6. 当开发者模式转换完成时,设备应当自行重启。现在您可以跳至“从 USB 启动”一节的步骤 #2 了。 + +## 从 USB 启动 + +1. 启动至 ChromeOS。 + +2. 您应当看到显示“OS 验证已关闭”(OS verification is OFF)的画面,在大约 30 秒后,启动会继续。请等待欢迎或登录界面加载。请**忽略**任何用于“启用调试功能”(Enable debugging features)的链接。 + +3. 按下 Ctrl+Alt+Refresh/F3 进入命令行界面。如果该组合键无效,请尝试再次重启 Chromebook。 + +4. 进入“chronos”用户,密码留空。 + +5. 运行 `sudo crossystem dev_boot_usb=1`,启用 USB 启动。 + +6. (**可选**)运行 `sudo crossystem dev_default_boot=usb`,将 USB 启动设为默认。 + +7. 将 USB 驱动器插入 Chromebook。 + +8. 键入 `sudo reboot` 进行重启。 + +9. 在“OS 验证已关闭”画面,按下 Ctrl+U 跳过超时等待并立即从 USB 启动。(要获取其他短路选项,请参阅[提示和技巧](#tips-and-tricks)) + +仅当您想要重新铺设(re-pave)或另行从网络启动设备时,才需要 USB 驱动器进行引导。 + +如果您未将 USB 启动设为默认(步骤 #6),那么在开机时,您将需要在灰色的“警告 OS 未验证”(warning OS-not verified)画面按下 Ctrl+U,以从 USB 启动。 + +如果设备试图从 USB 启动(可能是因为您将其设为了默认,或按下了 Ctrl+U)失败,那么您将听到一次相当响亮的“哔”声。 + +注意,已经观察到启动过程中 ChromeOS 引导加载程序 USB 枚举速度很慢。如果您在从 USB 启动时遇到问题,那么在设备通过引导加载程序前,移除其他 USB 设备可能会有所帮助;另外,也请避免使用 USB 集线器。 + +## 提示和技巧 {#tips-and-tricks} + +默认情况下,ChromeOS 引导加载程序的超时等待时间很长,以便您能够按下按键。要跳过此过程,您可以在警告 OS 无法验证的灰色画面中按下 Ctrl+D 或 Ctrl+U。Ctrl+D 将使设备跳过超时等待,并从其默认源启动。Ctrl+U将跳过超时等待,并从 USB 启动设备。 + +### 配置 Fuchsia 引导源 + +Fuchsia 具有称为 `cros_nvtool` 的 `crossystem` 等价物。您可以运行 `cros_nvtool set dev_boot_default ` 将系统的默认引导源分别修改为 USB 或硬盘。 + +### 返回 ChromeOS + +要返回 ChromeOS,您必须修改 Fuchsia 内核分区的优先级低于两个 ChromeOS 内核分区中的至少一个。 + +1. 如果您未处于虚拟控制台中,请按下 Alt+Esc 进入其中 +1. 按下 Alt+Fullscreen 进入 Fuchsia 中的终端模拟器 +1. 使用 `lsblk` 命令查找含有 KERN-A、KERN-B 和 KERN-C 分区的硬盘。下例中为设备 000,请注意,内核分区的设备路径是其设备本身路径的扩展。 $ lsblk ID SIZE TYPE LABEL FLAGS DEVICE @@ -129,7 +287,10 @@ kernel partitions is an extension of that device. 005 4G cros rootfs ROOT-B /dev/sys/platform/pci/00:1e.4/pci-sdhci/sdhci/sdmmc/block/part-004/block 006 64M cros kernel KERN-C /dev/sys/platform/pci/00:1e.4/pci-sdhci/sdhci/sdmmc/block/part-005/block 007 4G cros rootfs ROOT-C /dev/sys/platform/pci/00:1e.4/pci-sdhci/sdhci/sdmmc/block/part-006/block + +4. 使用 `gpt` 命令查看设备(例,000)的分区表。 $ gpt dump /dev/class/block/000 blocksize=0x200 blocks=488554496 @@ -170,25 +331,40 @@ kernel partitions is an extension of that device. id: 769444A7-6E13-D74D-B583-C3A9CF0DE307 type: 3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC flags: 0x0000000000000000 + +5. 注意,KERN-A 和 KERN-B 通常具有 ChromeOS 内核。Zircon 内核在上例中显示为 KERN-C,或者在某些设置中为 ZIRCON-A。 + + 要进入 ChromeOS,请通过引用**硬盘**上**分区**的索引,来降低 KERN-C(或 ZIRCON-A)的优先级。例如: $ gpt edit_cros 5 -P 0 /dev/class/block/000 + +6. 重启。 + +7. 当 ChromeOS 引导加载程序出现时,请按下空格键重新启用 OS 验证。您的设备将会重启。这一次,消息会显示“您的系统正在进行自我修复。请稍候。”(Your system is repairing itself. Please wait.)该操作将大约需要 5 分钟,之后 Chromebook 将最后重启一次。设备将重启至初始设置界面。 + +要返回 Fuchsia 内核,请重新铺设设备。 [get-fuchsia-source]: /get-started/get_fuchsia_source.md [build-fuchsia]: /get-started/build_fuchsia.md