Skip to content

Latest commit

 

History

History
186 lines (170 loc) · 11.8 KB

pixelbook.md

File metadata and controls

186 lines (170 loc) · 11.8 KB

在 Pixelbook 上安装 Fuchsia 的准备工作

更新 ChromeOS

如果你的 Pixelbook 从来没有被启动过, 那么最好的方式就是正常启动检查所有关键的更新,方法如下:

  1. 正常启动 Pixelbook, 通常翻开盖子就会给 Pixelbook 供电 如果没有启动, 电源键就在设备的左侧,靠近腕托前面。
  1. 点击 “Let's go” 按钮。
  1. 连接到有线或无线网络。
  1. 接受条款以继续进行更新检查步骤。
  1. 设备应该会检查更新,并安装所有更新。
  1. 安装所有更新后重启设备,点击左下角的 “Browse as Guest(以访客身份访问)”。
  1. 在 ChromeOS 的主界面,点击 “Settings->About Chrome OS(设置->关于 Chrome OS)” 或 “Help->About Chrome OS(帮助->关于 Chrom OS)” 确定版本>=62

设置开发者模式

***注意: 这个操作会清除本地所有的设置***
  1. 关闭 Pixelbook 的电源。
  1. 进入 Recovery 模式。 按住 Esc+Refresh (键盘上第一行的第一个和第三个按钮) 然后再按电源键 (设备左侧的按钮)。
  1. 首先按 Ctrl+D 关闭系统验证。你会看到 “To turn OS verification OFF, press ENTER(关闭系统验证,请按 ENTER )”。回车确认选择。
  1. 如果 Pixelbook 重启,可以确定系统验证已经被关闭。再次按 Ctrl+D 进入开发者模式。
  1. 等待设备自己配置,这将会花费几分钟时间。最初设备好像什么都没有做。静置设备一两分钟。配置开始会听到两声哔哔声。当适配完成会发出两声更加响亮的哔哔声。
  1. 开发者模式配置完成,设备会重起。可以进入第二步“从 USB 启动”。

从 USB 启动

  1. 进入 ChromeOS。
  1. 你会看到屏幕显示 "OS verification is OFF(系统验证已经关闭)"然后大约 30 秒会继续加载系统。等欢迎界面或者登陆页面加载。 忽略 所有的 “Enable debugging features(启用调试功能)” 的链接。
  1. 按 Ctrl+Alt+Refresh/F3 打开命令行窗口。 如果按下组合键没有效果,重启一次之后再尝试。
  1. 输入 'chronos' 作为用户名,密码为空。
  1. 通过运行 sudo crossystem dev_boot_usb=1 启动 USB。
  1. (可选) 运行 sudo crossystem dev_default_boot=usb 设置默认 USB 启动。
  1. 插入 USB 驱动器。
  1. 运行 sudo reboot 重启设备。
  1. 在 “OS verification is OFF(系统验证已经关闭)” 页面,按 Ctrl+U 可以立即进入 USB 启动。 ( 提示 & 技巧 查看其他简单操作)

只有你想重新安装或网络启动设备时才需要 USB 驱动器。如果你没有设置 USB 默认启动(第 6 步), 你需要在设备开启电源后,在界面显示 “warning OS-not verified(警告系统没有验证)” 时按 Ctrl+U。如果设备默认 USB 启动或者你按了 Ctrl+U ,那么设备会尝试从 USB 启动,如果启动失败,设备会发出很大得哔哔声。注意,ChromeOS 引导程序在引导期间的 USB 总线枚举过程被观察到很慢。如果你 USB 启动遇到困难,你可以尝试移除其他所有的 USB 驱动设备并且不使用 USB 集线器连接 USB 驱动器,直到通过引导程序。

提示 & 技巧

一般情况下,ChromeOS 引导加载程序有很长的超时时间允许您按下按钮。 再灰色的界面上按快捷键 Ctrl+D 或 CTRL+U 可以跳过系统不会被验证的警告。Ctrl+D 可以跳过等待时间然后从默认资源启动。Ctrl+U 可以跳过等待时间然后从 USB 启动。

设置启动 ChromeOS

安装 Fuchsia 后要启动 Chromeos,必须将 Fuchsia 内核分区的优先级修改为低于两个 Chromeos 内核分区中的一个。

  1. 按 Alt+Esc 打开虚拟控制台
  1. 使用 lsblk 命令找到包含 KERN-A, KERN-B 和 KERN-C 的磁盘分区。下面是设备 000 的示例,注意,内核分区的路径是该设备的扩展。

     $ lsblk
     ID  SIZE TYPE             LABEL                FLAGS  DEVICE
     000 232G                                              /dev/sys/pci/00:1e.4/pci-sdhci/sdhci/sdmmc/block
     001   5G data             STATE                       /dev/sys/pci/00:1e.4/pci-sdhci/sdhci/sdmmc/block/part-000/block
     002  16M cros kernel      KERN-A                      /dev/sys/pci/00:1e.4/pci-sdhci/sdhci/sdmmc/block/part-001/block
     003   4G cros rootfs      ROOT-A                      /dev/sys/pci/00:1e.4/pci-sdhci/sdhci/sdmmc/block/part-002/block
     004  16M cros kernel      KERN-B                      /dev/sys/pci/00:1e.4/pci-sdhci/sdhci/sdmmc/block/part-003/block
     005   4G cros rootfs      ROOT-B                      /dev/sys/pci/00:1e.4/pci-sdhci/sdhci/sdmmc/block/part-004/block
     006  64M cros kernel      KERN-C                      /dev/sys/pci/00:1e.4/pci-sdhci/sdhci/sdmmc/block/part-005/block
     007   4G cros rootfs      ROOT-C                      /dev/sys/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-C 含有 Zircon 内核。KERN-A 和 KERN-B 代表 ChromeOS 内核。设置启动进入 ChromeOS 我们需要通过引用具有该分区的磁盘上的分区索引来降低 KERN-C 的优先级。

     $ gpt edit_cros 5 -P 0 /dev/class/block/000
    
  1. 重启

启动进入 Fuchsia 内核,只需要重设设备的分区索引。