Khadas VIM3 是一款基于 ARM64 的单板计算机。可以运行 VIM3 上的 Fuchsia。本指南介绍了 Fuchsia 贡献者如何安装 在 VIM3 上使用 Fuchsia 以及执行其他常见开发任务。
请参阅附录:功能支持,详细了解 VIM3 有哪些功能 Fuchsia 支持。
受众群体
本指南假定您熟悉以下操作:
- 摆弄电子产品和硬件。
- 通过源代码和其他 CLI 工作流构建 Fuchsia。
在 Khadas VIM3 开发板上安装 Fuchsia
如果您遇到以下情况,请参阅问题排查和附录:支持 无法顺利完成安装过程。
前提条件
您将需要以下所有硬件和软件:
一台 Khadas VIM3 单板计算机。Google 员工应通过 Fuchsia Ops 团队的负责人。
运行 Linux 并具有 2 个 USB 端口的台式机或笔记本电脑 可用。这台计算机称为主机。
为主机提供至少 24W 的电源。VIM3 的耗电量很高 当 DVFS 处于启用状态时。
主机上可正常运行的 Fuchsia 开发环境。换言之, 应该能够在您的主机上基于其源代码构建 Fuchsia。
一根 USB 转 TTL 串行线。
一根既支持数据传输又支持电源传输的 USB-C 转 USB-A 数据线。USB-C 适用于 VIM3另一端用于您的主机。
以下操作是可选的:
- 散热器。这支持在 VIM3 上全速运行 2 个 CPU 核心 但核心不超过 80°C 的临界温度 被节流。
请访问 Khadas 商店的 VIM3 系列,查看兼容的示例 配件。
构建 Fuchsia
如果您还没有 树内 设置环境 您应该立即开始此流程,因为这可能需要一段时间才能完成:
-
- 配置 build 时,请使用
fx set core.vim3
。
- 配置 build 时,请使用
您将使用 Fuchsia 开发环境为 VIM3 并运行树内 CLI 工具,将 Fuchsia 映像刷写到 VIM3 上。
设置硬件
设置 VIM3 以与主机通信:
使用 USB-C 转 USB-* 数据线将 VIM3 和您的主机相互连接。 VIM3 上的白色 LED 指示灯应会亮起。
此连接用于为 VIM3 供电和刷写
fastboot
。将串行电缆连接到 VIM3 的 GPIO 上:
GND 引脚 17。
TX(从 VIM3 输出)到引脚 18。
RX(到 VIM3)改为引脚 19。
请勿将串行线的电源线连接到任何 VIM3 GPIO。 VIM3 正在通过 USB 线获取电源。
如需查看有关串行线方式的示例图片,请参阅串行调试工具 应连接到 VIM3。
将串行电缆的 USB 端连接到主机。
验证串行连接
确保您可以查看串行日志:
打开 Fuchsia 的串行控制台:
fx serial
按下 VIM3 上的重置按钮。重置按钮是带有 印在电路板上旁边的 R。请参阅 VIM3/3L 硬件,了解 图表。在串行控制台中,您应该会看到人类可读的日志。
如果您的 VIM3 似乎不断重新启动,请参阅问题排查:启动循环。
清空 eMMC
在安装 Fuchsia 之前,您需要获取 VIM3 固件和软件 恢复为已知良好的状态第一步是清空 eMMC。
按下 VIM3 上的重置按钮。
按下重置按钮后,开始反复按 空格键。确保光标位于 集中在串行控制台上引导加载程序应该会暂停,而您的 串行控制台应显示
kvim3#
提示。您的串行控制台现已 可让您访问 U-Boot shell。在 U-Boot shell 中运行以下命令:
store init 3
串行控制台日志应验证 eMMC 是否已正确清空。
如需了解详情,请参阅清空 eMMC。
在 VIM3 上更新 Android 映像
现在,您需要使 VIM3 固件和软件达到已知良好状态:
点击以下网址,下载已知能正常运行的 Android 映像 以及后续的 Fuchsia 安装: https://dl.khadas.com/firmware/vim3/android/VIM3_Pie_V211220.7z
解压缩压缩后的归档文件 (
VIM3_Pie_V211220.7z
)。在 您应该有一个VIM3_Pie_V211220
目录,且目录update.img
文件。按照将操作系统安装到 eMMC 中的说明进行操作。运行时
aml-burn-tool
,则-i
标志的值应该是指向update.img
文件。您的命令应如下所示:aml-burn-tool -b VIM3 -i ~/Downloads/VIM3_Pie_V211220/update.img
如果 VIM3 上的白色和红色 LED 指示灯熄灭,蓝色 LED 指示灯亮起, 表示您的 VIM3 处于睡眠模式。尝试将您的 VIM3 重新放回 升级模式,然后再次按重置按钮。
此时,VIM3 上的白色 LED 指示灯应亮起,您应该可以看见登录记录。 串行控制台。
更新引导加载程序
本部分介绍如何刷写经过修改的 Fuchsia 的预构建版本 U-Boot 连接到 VIM3。如果您希望构建 修改了源代码中的 U-Boot: https://third-party-mirror.googlesource.com/u-boot/+/refs/heads/vim3
按“reset”按钮,然后再次访问 U-Boot shell 在串行控制台中反复按空格键。时间 串行控制台会显示
kvim3#
提示符,说明您现在位于 U-Boot shell。在 U-Boot shell 中运行以下命令:
fastboot
您应该会在串行控制台中看到以下日志:
g_dnl_register: g_dnl_driver.name = usb_dnl_fastboot USB RESET SPEED ENUM USB RESET SPEED ENUM
如果您看到第一行 (
g_dnl_register: g_dnl_driver.name = usb_dnl_fastboot
),但不包括行 之后,请尝试使用其他 USB-C 转 USB-* 数据线,并确保 同时支持数据传输和 Power Delivery在您的主机中打开新的终端窗口,然后运行以下命令:
cd ~/fuchsia/prebuilt/third_party/fastboot
./fastboot flashing unlock
./fastboot flashing unlock_critical
./fastboot flash bootloader ~/fuchsia/prebuilt/third_party/firmware/vim3/u-boot.bin.unsigned
./fastboot reboot
将 Fuchsia 刷写到 eMMC(只需一次)
只有在首次将 Fuchsia 刷写到 VIM3 上时,才能使用此工作流。如果您 已在 VIM3 上运行 Fuchsia,请参阅更新 Fuchsia 映像 因为它速度更快
如果您刚刚运行了上一部分中的
./fastboot reboot
命令,则 您的 VIM3 应该已经处于fastboot
模式。您可以查看自己的fx serial
进行确认。否则,请按下重置按钮,然后反复按 F 键,直到您看到USB RESET
。fx serial
SPEED ENUM
。从主机上的单独终端运行以下命令:
fx flash
您的 VIM3 现在可以运行 Fuchsia 了!
更新您的 Fuchsia 图片
如果您已经在 VIM3 上运行 Fuchsia 并希望 更新 Fuchsia 图像。
从主机上的终端运行以下命令:
fx serve
让此命令保持运行。
在树内 Fuchsia 检出中进行一些更改并构建更改。
打开一个新的终端窗口,并对 Fuchsia 映像执行 OTA 更新: VIM3:
fx ota
通过停用 VIM3 的风扇来降低其噪音
如果 VIM3 风扇的嘈杂噪音给您带来了困扰,您可以使用任意 以下工作流之一:
- 将
--args vim3_mcu_fan_default_level=0
添加到您的fx set
调用中。 - 如果您使用的是
~/fuchsia/local/args.gn
,请将vim3_mcu_fan_default_level=0
添加到 永久性本地构建参数。
确保 VIM3 tryjobs 运行
在您的提交消息中添加以下行,以确保 VIM3 tryjobs 运行:
Cq-Include-Trybots: luci.turquoise.global.try:bringup.vim3-debug,core.vim3-debug,core.vim3-vg-debug
问题排查
本部分介绍了常见问题的解决方法。
问题排查:启动循环
问题:
您正在查看 VIM3 串行日志。日志显示,VIM3 不断重新启动。
根本原因:
未知。Khada 的能量传输中似乎存在一个潜在漏洞 实施。Fuchsia 解决了问题 122113 中的 bug。
解决方法 1:
拔下并重新插上 USB 线。如有必要,请重复 2-3 次。
解决方法 2:
始终使用 USB-C 转 USB-A 数据线。
问题排查:硬件不匹配
问题:
刷写紫红色时出现以下错误:Hardware mismatch! Trying to flash images
built for vim3 but have 0
解决方案:
返回到更新 Android 映像步骤。
附录:修复 VIM3 故障
如果您的 VIM3 出现故障并需要“恢复出厂设置”,请按以下步骤操作::
附录:支持
- 对于似乎与 VIM3 硬件或固件相关的问题,请尝试 VIM3 官方文档和 Khadas VIM3 官方论坛。
- 对于似乎与 Fuchsia 相关的问题,请尝试 Fuchsia 邮寄名单和聊天室。
附录:功能支持
Fuchsia 目前支持 VIM3 的以下功能:
- UART 串行调试程序
- 通过以太网和 USB 铺设路面
- 存储 (eMMC)
- HDMI 显示屏和帧缓冲区
- GPU(马里)和 Vulkan 图形
- 以太网
- SDIO
- I2C
- GPIO
- 温度传感器和 DVFS
- RTC
- 时钟
- 风扇
- NNA
- 外围设备模式下的 USB-C
- USB A
- 音频1
以下功能正在开发中,可能不受支持:
- 视频解码器
- SPI
以下功能不受支持,但未来可能会添加 贡献:
- SPI 闪存
- 主机模式下的 USB-C
- 电源管理和 PMIC
- 局域网唤醒
- UART 蓝牙
以下功能不受支持,并且不太可能添加:
- 视频编码(由于使用了非公开固件)
- 可信执行环境 / 安全启动
附录:更新启动启动画面
如需将启动启动画面更新为 Fuchsia 徽标,请运行以下命令
命令:fastboot
~/fuchsia/prebuilt/third_party/fastboot/fastboot flash logo \
~/fuchsia/zircon/kernel/target/arm64/board/vim3/firmware/logo.img
-
VIM3 不包含扬声器和麦克风等换能器, 除换能器外,还包括 DAC/ADC 在内的外部硬件 需要通过 GPIO 标头进行添加和集成, 以这种方式播放和捕获音频。 ↩