在 NUC 上安装 Fuchsia

本指南介绍了如何在 Intel NUC(下一代计算单元)设备上安装 Fuchsia。

具体步骤如下:

  1. 前提条件
  2. 构建 Fuchsia
  3. 准备 U 盘
  4. 在 NUC 上启用 EFI 启动
  5. 在 NUC 上安装 Fuchsia
  6. (可选)将 Fuchsia SSH 密钥上传到 NUC

前提条件

在开始在 NUC 设备上安装 Fuchsia 之前,请确保您已完成以下任务:

设置 Fuchsia 开发环境

如需在工作站上设置 Fuchsia 开发环境, 请完成 Fuchsia 入门 指南。

获取部件

本指南需要以下部件:

  • NUC 设备(请参阅示例型号
  • USB 3.0 闪存盘
  • 键盘
  • 鼠标(可选)
  • 带 HDMI 端口的显示器
  • HDMI 线缆
  • 以太网线缆
  • 十字头螺丝刀(带磁性尖端)

构建 Fuchsia

在 NUC 设备上安装 Fuchsia 需要您在工作站上构建 x64 映像并生成 build 制品(其中包括 Fuchsia 安装程序)。

如需构建 Fuchsia 以进行 NUC 安装,请执行以下操作:

  1. 将 build 配置设置为 x64 目标,并添加 recovery-installer 软件包。

    fx set core.x64 --with //build/images/recovery:recovery-installer
  2. 构建 Fuchsia:

    fx build

    构建 Fuchsia 最多可能需要 90 分钟。

准备 U 盘

您需要准备一个运行 Fuchsia 安装程序的可启动 U 盘。 在后面的在 NUC 上安装 Fuchsia部分中, 您将使用此 U 盘将 NUC 启动到 Fuchsia 安装程序中。

如需准备可启动 U 盘,请执行以下操作:

  1. 将 U 盘插入您的工作站

  2. 确定 U 盘的路径:

    fx list-usb-disks

    此命令会输出类似于以下内容:

    $ fx list-usb-disks
    /dev/sda - My Example USB Disk
    
  3. 创建可启动 U 盘:

    fx mkinstaller -v PATH_TO_USB_DRIVE

    PATH_TO_USB_DRIVE 替换为上一步中的 U 盘路径。

    以下示例命令选择了 /dev/sda 路径:

    $ fx mkinstaller -v /dev/sda
    

    完成后,该命令会在最后输出类似于以下内容:

    $ fx mkinstaller -v /dev/sda
    mkinstaller: WARNING: Changing ownership of /dev/sda to alice
    [sudo] password for alice:
    ...
    mkinstaller: INFO:    Writing image fvm.sparse.blk to partition storage-sparse...
    mkinstaller: INFO:      Wrote 835.6M in 35.55s, 23.5M/s
    mkinstaller: INFO: Done.
    mkinstaller: INFO: Ejected USB disk
    
  4. 从工作站拔下 U 盘。

在 NUC 上启用 EFI 启动

更新 NUC 的 BIOS 设置,以便它可以从 U 盘启动。

NUC 设备上有两个版本的 BIOS:Visual BIOS (例如 NUC7)和 Aptio V BIOS (例如 NUC11)。具体步骤略有不同,具体取决于您的系统中包含哪个 BIOS。

Visual BIOS

Visual BIOS

图 1. Visual BIOS 的屏幕截图

如需在 NUC 上启用 EFI(可扩展固件接口)启动,请执行以下操作:

  1. 重启 NUC。
  2. 如需进入 BIOS 设置,请在启动时按 F2
  3. 点击顶部的高级 按钮。
  4. 点击 Boot (启动)标签页。
  5. 点击 Boot Priority (启动优先级)标签页,并确认以下设置:

    • UEFI Boot (UEFI 启动)已选中。
    • Legacy Boot (传统启动)未选中。

    Visual BIOS 启动优先级标签页

  6. 点击 Boot Configuration (启动配置)标签页,并确认以下设置:

    • UEFI Boot (UEFI 启动)窗口中:

      • Boot USB Devices First (先启动 USB 设备)已选中。
      • Boot Network Devices Last (最后启动网络设备)已选中。
      • Unlimited Network Boot Attempts (无限次尝试网络启动)已选中。
    • Boot Devices (启动设备)窗口中:

      • USB 已选中。
      • Network Boot (网络启动)设置为 UEFI PXE & iSCSI

    Visual BIOS 启动配置

  7. 点击 Secure Boot (安全启动)标签页,并确认以下设置:

    • Secure Boot (安全启动)未选中。

    Visual BIOS 安全启动

  8. 如需保存并退出 BIOS,请按 F10 并点击 Yes (是)。

Aptio V BIOS

Aptio V BIOS

图 2. Aptio V BIOS 的屏幕截图

如需在 NUC 上启用 EFI(可扩展固件接口)启动,请执行以下操作:

  1. 重启 NUC。
  2. 如需进入 BIOS 设置,请在启动时按 F2
  3. 点击 Boot (启动)标签页。
  4. 点击 Secure Boot (安全启动),并确认以下设置:

    • Secure Boot (安全启动)设置为 Disabled

    Aptio V BIOS 安全启动

  5. 如需返回,请点击左侧的 < 按钮。

  6. 点击 Boot Priority (启动优先级),并确认以下设置:

    • UEFI Boot (UEFI 启动)已选中。
    • Legacy Boot (传统启动)未选中。

    • Boot USB Devices First (先启动 USB 设备)已选中。

    • Boot Network Devices Last (最后启动网络设备)已选中。

    • Unlimited Boot to Network Attempts (无限次尝试启动到网络)已选中。

    • USB 已选中。

    • Network Boot (网络启动)设置为 UEFI PXE & iSCSI

    Aptio V BIOS 启动优先级

  7. 如需保存并退出 BIOS,请按 F10 并点击 Ok (确定)。

在 NUC 上安装 Fuchsia

使用可启动 U 盘将 NUC 启动到 Fuchsia 安装程序中。然后,它会将 x64 映像(在 构建 Fuchsia 部分中构建)安装到 NUC。

如需在 NUC 上安装 Fuchsia,请执行以下操作:

  1. 将可启动 U 盘插入 NUC。

  2. 重启 NUC。

    NUC 会启动到 Fuchsia 安装程序(粉色背景)。

  3. Enter 键以选择 Install from USB 选项。

  4. 在其他提示中按 Enter 键以继续。

  5. 安装完成后,从 NUC 设备拔下 U 盘。

  6. 重启 NUC 设备。

    NUC 现在已启动到 Fuchsia。

(可选)将 Fuchsia SSH 密钥上传到 NUC

如果您计划将此 NUC 设备 用于 Fuchsia 开发,则需要从宿主机将 Fuchsia 映像刷写到 NUC 设备,这反过来会将 Fuchsia 特定的 SSH 密钥 上传到 NUC。将这些 Fuchsia 特定的 SSH 密钥上传到 NUC 后,您就可以从宿主机在 NUC 上执行基于 ffx的工作流

如需将 Fuchsia SSH 密钥上传到 NUC,请执行以下操作:

  1. 完成附录中 将新 Fuchsia 映像刷写到 NUC 部分 中的步骤。

  2. 如需验证您是否可以从宿主机连接到 NUC,请运行以下命令:

    ffx target show

    此命令会输出类似于以下内容:

    $ ffx target show
    Target:
        Name: "fuchsia-54b2-0389-644b"
        SSH Address: "fe81::55b1:2ff2:fe34:567b%en10:22"
    Board:
        Name: "default-board"
        Revision: "1"
        Instruction set: "x64"
    ...
    

附录

支持的 NUC 型号

如需获得 GPU 支持,请获取 NUC7 (Kaby Lake) 或 NUC8 (Coffee Lake) 或更高代。

以下列表显示了一些示例型号:

将新 Fuchsia 映像刷写到 NUC

NUC 运行 Fuchsia 后,您可以使用 Fuchsia 的刷写机制向 NUC 配置新的 Fuchsia 映像。

如需将 Fuchsia 映像刷写到 NUC,请执行以下操作:

  1. 使用以太网线缆将 NUC 直接连接到工作站。

    (或者,您也可以将 NUC 连接到与工作站位于同一局域网中的路由器或 WiFi 调制解调器。)

  2. 重启 NUC。

  3. 在 Fuchsia 的启动界面上,按 f 键以选择 fastboot 选项。

    NUC 进入 Fastboot 模式后,会在屏幕上输出 Fastboot TCP is ready

  4. 在您的工作站上,发现处于 Fastboot 模式的 NUC:

    ffx target list

    此命令会输出类似于以下内容:

    $ ffx target list
    NAME                      SERIAL       TYPE       STATE       ADDRS/IP                           RCS
    fuchsia-54b2-0389-644b    <unknown>    Unknown    Fastboot    [fe81::55b1:2ff2:fe34:567b%en10]    N
    

    验证设备的状态是否为 Fastboot

  5. 将新 Fuchsia 映像刷写到 NUC:

    fx flash

    如果您之前有多个设备连接到宿主机,则可能需要明确指定 NUC 设备的名称,例如:

    fx flash -s fuchsia-54b2-0389-644b

    完成后,NUC 会重启并开始运行新的 Fuchsia 映像。

远程管理 NUC 设备

如需启用远程管理(包括 KVM),您需要配置 Intel AMT(主动管理技术)。

首先,在 NUC 上配置 Intel ME:

  1. 重启 NUC。
  2. 在启动界面上按 Ctrl+P,进入 Intel ME 设置。
  3. 选择 MEBx Login
  4. 设置新密码,默认密码为 admin

  5. 配置网络:

    1. 选择 Intel(R) AMT Configuration
    2. 取消配置现有网络设置:

      1. 选择 Unconfigure Network Access
      2. 选择 Full Unprovision
      3. Y 进行确认。
    3. 选择 Network Setup (网络设置)> TCP/IP Settings (TCP/IP 设置)> Wired LAN IPV4 Configuration (有线 LAN IPV4 配置)。

    4. DHCP Mode (DHCP 模式)设置为 Disabled (已停用)。

    5. IPV4 Address (IPV4 地址)设置为可通过 EdgeRouter 从宿主机访问的地址。

      在宿主机上,运行 ifconfig 并找到与 EdgeRouter 对应的条目,例如:

      $ ifconfig
      enx00e04c0c13ba: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
              inet 192.168.42.86  netmask 255.255.255.0  broadcast 192.168.42.255
              ...
      

      在这种情况下,您可以尝试使用地址 192.168.42.20

    6. Subnet Mask Address (子网掩码地址)设置为主机到 EdgeRouter 连接的网络掩码,例如 255.255.255.0

    7. Esc,直到返回到 Intel(R) AMT Configuration

    8. 选择 Activate Network Access (激活网络访问权限),然后按 Y 进行确认。

    9. 退出 Intel ME 设置并保存更改。

现在,在宿主机上配置 amtctrl 命令行实用程序:

以下说明假定您已设置一些环境变量:

  • AMT_HOST:您在 Intel ME 设置中配置的 IPv4 地址。
  • AMT_PASSWORD:您为 Intel ME 选择的密码。
  • VNC_PASSWORD:用于通过 VNC 访问 NUC 的密码。
  1. 克隆 amtctrl 代码库:

    git clone https://github.com/sdague/amt
  2. 安装 amtctrl

    cd amt && sudo ./setup.py install
  3. 配置 NUC IP 地址和密码:

    amtctrl set -V $VNC_PASSWORD nuc $AMT_HOST $AMT_PASSWORD
  4. 启用 VNC:

    amtctrl nuc vnc

现在,您可以使用任何 VNC 客户端通过连接到 AMT_HOST 中设置的 IP 地址,从宿主机访问 NUC。系统提示时,输入 VNC_PASSWORD 中设置的密码。

您还可以使用以下终端命令打开、关闭或重启 NUC:

  • 如需打开 NUC:

    amtctrl nuc on
  • 如需关闭 NUC:

    amtctrl nuc off
  • 如需重启 NUC:

    amtctrl nuc reboot