Skip to content

Latest commit

 

History

History
370 lines (327 loc) · 15.6 KB

chromebook.md

File metadata and controls

370 lines (327 loc) · 15.6 KB

在 Chromebook 上安装 Fuchsia

支持的 Chromebook

这些 Chromebook 开发者经常使用,应当是稳定支持的。

  • Google Pixelbook Go(atlas

以前支持的 Chromebook

这些 Chromebook 受到“尽力而为”的支持,并且不会受到定期测试。

  • Google Pixelbook(eve

其他 ChromeOS 设备

其他基于 x86 的 ChromeOS 设备可能工作,也可能不会工作。基于 ARM 的 ChromeOS 设备无法开箱即用。

前提条件

请确保您为 Fuchsia 进行了 chromebook-x64 构建。

  1. 完成下载 Fuchsia 源代码指南。

  2. 请在配置和构建 Fuchsia中设置您的构建配置,以使用如下的 Chromebook 产品:

    fx set workstation_eng.chromebook-x64 --release
    

更新 ChromeOS

如果您的 Chromebook 从未启动过,请您最好将其启动,以检查重要的更新,步骤如下:

  1. 正常启动 Chromebook。通常,打开盖子会启动设备。如果没有启动,请使用位于设备左侧、靠近腕托位置的电源按钮。
  1. 点按“开始使用”(Let's go)按钮。
  1. 连接到有线或无线网络。
  1. 接受条款,以进入更新检查步骤。
  1. 设备应当检查并安装找到的更新。
  1. 更新重启之后,点按左下角的“以访客身份浏览”(Browse as Guest)。
  1. 通过浏览器用户界面,前往“设置->关于 Chrome OS”(Settings->About Chrome OS)或“帮助->关于 Chrome OS”(Help->About Chrome OS),确认新安装的版本。

为您的设备开启开发者模式

注意:这将会擦除保存在您 Chromebook 本地的任何状态。

  1. 关闭 Chromebook 电源。
  1. 进入恢复模式。同时按住 Esc+Refresh(键盘顶行的第一和第三个按钮)。接着按下电源按钮(设备的左下方)。
  1. 按下 Ctrl+D,以在禁用 OS 验证的情况下启动。您应当看到“要关闭 OS 验证,请按下 ENTER。”(To turn OS verification OFF, press ENTER)
  1. 当您的设备重启时,您将收到 OS 验证已经关闭的确认信息。再次按下 Ctrl+D 进入开发者模式(Developer Mode)。
  1. 等待设备自行完成重新配置,可能需要几分钟时间。设备最初可能看起来没有任何反应。请允许设备静置一到两分钟。在此过程的前期,您可能听到两次响亮的“哔”声。该过程在您再次听到两次响亮的“哔”声时完成。
  1. 当开发者模式转换完成时,设备应当自行重启。现在您可以跳至“从 USB 启动”一节的步骤 #2 了。

从 USB 启动

  1. 启动至 ChromeOS。
  1. 您应当看到显示“OS 验证已关闭”(OS verification is OFF)的画面,在大约 30 秒后,启动会继续。请等待欢迎或登录界面加载。请忽略任何用于“启用调试功能”(Enable debugging features)的链接。
  1. 按下 Ctrl+Alt+Refresh/F3 进入命令行界面。如果该组合键无效,请尝试再次重启 Chromebook。
  1. 进入“chronos”用户,密码留空。
  1. 运行 sudo crossystem dev_boot_usb=1,启用 USB 启动。
  1. 可选)运行 sudo crossystem dev_default_boot=usb,将 USB 启动设为默认。
  1. 将 USB 驱动器插入 Chromebook。
  1. 键入 sudo reboot 进行重启。
  1. 在“OS 验证已关闭”画面,按下 Ctrl+U 跳过超时等待并立即从 USB 启动。(要获取其他短路选项,请参阅提示和技巧

仅当您想要重新铺设(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_nvtoolcrossystem 等价物。您可以运行 cros_nvtool set dev_boot_default <usb|disk> 将系统的默认引导源分别修改为 USB 或硬盘。

返回 ChromeOS

要返回 ChromeOS,您必须修改 Fuchsia 内核分区的优先级低于两个 ChromeOS 内核分区中的至少一个。

  1. 如果您未处于虚拟控制台中,请按下 Alt+Esc 进入其中

  2. 按下 Alt+Fullscreen 进入 Fuchsia 中的终端模拟器

  3. 使用 lsblk 命令查找含有 KERN-A、KERN-B 和 KERN-C 分区的硬盘。下例中为设备 000,请注意,内核分区的设备路径是其设备本身路径的扩展。

     $ lsblk
     ID  SIZE TYPE             LABEL                FLAGS  DEVICE
     000 232G                                              /dev/sys/platform/pci/00:1e.4/pci-sdhci/sdhci/sdmmc/block
     001   5G data             STATE                       /dev/sys/platform/pci/00:1e.4/pci-sdhci/sdhci/sdmmc/block/part-000/block
     002  16M cros kernel      KERN-A                      /dev/sys/platform/pci/00:1e.4/pci-sdhci/sdhci/sdmmc/block/part-001/block
     003   4G cros rootfs      ROOT-A                      /dev/sys/platform/pci/00:1e.4/pci-sdhci/sdhci/sdmmc/block/part-002/block
     004  16M cros kernel      KERN-B                      /dev/sys/platform/pci/00:1e.4/pci-sdhci/sdhci/sdmmc/block/part-003/block
     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
    
  1. 使用 gpt 命令查看设备(例,000)的分区表。

     $ gpt dump /dev/class/block/000
     blocksize=0x200 blocks=488554496
     Partition table is valid
     GPT contains usable blocks from 34 to 488554462 (inclusive)
     Paritition 0: STATE
         Start: 478035968, End: 488521727 (10485760 blocks)
         id:   51E8D442-0419-2447-96E5-49CB60CF0B25
         type: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
         flags: 0x0000000000000000
     Paritition 1: KERN-A
         Start: 20480, End: 53247 (32768 blocks)
         id:   054CD627-F23C-5C40-8035-C188FA57DE9C
         type: FE3A2A5D-4F32-41A7-B725-ACCC3285A309
         flags: priority=2 tries=0 successful=1
     Paritition 2: ROOT-A
         Start: 8704000, End: 17092607 (8388608 blocks)
         id:   936E138F-1ACF-E242-9C5B-3667FAA3C10C
         type: 3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC
         flags: 0x0000000000000000
     Paritition 3: KERN-B
         Start: 53248, End: 86015 (32768 blocks)
         id:   A8667891-8209-8648-9D5E-63DC9B8D0CB3
         type: FE3A2A5D-4F32-41A7-B725-ACCC3285A309
         flags: priority=1 tries=0 successful=1
     Paritition 4: ROOT-B
         Start: 315392, End: 8703999 (8388608 blocks)
         id:   8B5D7BB4-590B-E445-B596-1E7AA1BB501F
         type: 3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC
         flags: 0x0000000000000000
     Paritition 5: KERN-C
         Start: 17092608, End: 17223679 (131072 blocks)
         id:   C7D6B203-C18F-BC4D-9160-A09BA8970CE1
         type: FE3A2A5D-4F32-41A7-B725-ACCC3285A309
         flags: priority=3 tries=15 successful=1
     Paritition 6: ROOT-C
         Start: 17223680, End: 25612287 (8388608 blocks)
         id:   769444A7-6E13-D74D-B583-C3A9CF0DE307
         type: 3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC
         flags: 0x0000000000000000
    
  1. 注意,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
  1. 重启。
  1. 当 ChromeOS 引导加载程序出现时,请按下空格键重新启用 OS 验证。您的设备将会重启。这一次,消息会显示“您的系统正在进行自我修复。请稍候。”(Your system is repairing itself. Please wait.)该操作将大约需要 5 分钟,之后 Chromebook 将最后重启一次。设备将重启至初始设置界面。

要返回 Fuchsia 内核,请重新铺设设备。