Khadas VIM3 是採用 ARM64 架構的單板電腦。您可以在 VIM3 上執行 Fuchsia。本指南將向 Fuchsia 貢獻者說明如何在 VIM3 上安裝 Fuchsia,以及執行其他常見的開發工作。
如要進一步瞭解 Fuchsia 支援哪些 VIM3 功能,請參閱「附錄:功能支援」。
目標對象
本指南假設您熟悉以下內容:
- 電子和硬體的修理。
- 從原始碼和其他 CLI 工作流程建構 Fuchsia。
在 Khadas VIM3 主機板上安裝 Fuchsia
如果在安裝過程中遇到任何問題,請參閱「疑難排解」和「附錄:支援服務」。
必要條件
你需要下列所有硬體和軟體:
Khadas VIM3 單板電腦。Google 員工應透過 Fuchsia Ops 團隊申請主機板。
搭載 Linux 且有 2 個 USB 連接埠的桌上型電腦或筆記型電腦。這台電腦稱為「主機」。
主機的電源供應器至少為 24W。啟用 DVFS 時,VIM3 可以消耗這麼多電力。
主機上運作的 Fuchsia 開發環境。換句話說,您應該可以從主機上的原始碼建構 Fuchsia。
支援資料傳輸和電力輸送的 USB-C 轉 USB-A 傳輸線。USB-C 端是用於 VIM3。另一端則是給主機。
以下為選用項目:
- 散熱片。這樣一來,VIM3 就能以全速執行 2 個 CPU 核心,且不會達到 80°C 的臨界溫度,超過這個溫度時,核心就會降速。
如需相容配件的範例,請參閱 Khadas 商店中的 VIM3 系列。
建構 Fuchsia
如果您尚未設定環境,請立即開始這個程序,因為完成可能需要一段時間:
-
- 設定建構時,請使用
fx set core.vim3
。
- 設定建構時,請使用
您將使用 Fuchsia 開發環境為 VIM3 建構 Fuchsia 映像檔,並執行樹狀結構內 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
您必須先將 VIM3 韌體和軟體設為已知可用的狀態,才能安裝 Fuchsia。第一步是清除 eMMC。
按下 VIM3 上的重設按鈕。
按下重設按鈕後,請在 VIM3 開機時重複按下 Space 鍵。請確認游標已聚焦在序列主控台上。引導程式程序應會暫停,序列控制台應會顯示
kvim3#
提示。序列主控台現在可讓您存取 U-Boot 殼層。在 U-Boot 殼層中執行下列指令:
store init 3
序列控制台記錄應可驗證 eMMC 是否已正確清除。
詳情請參閱「清除 eMMC」。
更新 VIM3 上的 Android 映像檔
接下來,請將 VIM3 韌體和軟體設為已知可用的狀態:
按一下下列網址,即可下載已知可與後續 Fuchsia 安裝作業搭配使用的 Android 映像檔:https://dl.khadas.com/firmware/vim3/android/VIM3_Pie_V211220.7z
解壓縮壓縮封存檔案 (
VIM3_Pie_V211220.7z
)。解壓縮後,您應該會看到VIM3_Pie_V211220
目錄,其中包含update.img
檔案。請按照「在 eMMC 中安裝 OS」中的操作說明進行操作。執行
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 應會亮起,且在按下 VIM3 上的重設按鈕後,您應該會在序列控制台中看到記錄。
更新系統啟動載入程式
本節說明如何將預先建構的 Fuchsia 修改版 U-Boot 刷入 VIM3。如果您偏好從原始碼建構經過修改的 U-Boot,請參閱以下連結:https://third-party-mirror.googlesource.com/u-boot/+/refs/heads/vim3
按下重設按鈕,然後在序列主控台中重複按下 Space 鍵,即可再次存取 U-Boot 殼層。當序列主控台顯示
kvim3#
提示時,表示您已進入 U-Boot 殼層。在 U-Boot 殼層中執行下列指令:
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-* 傳輸線,並確認該傳輸線同時支援資料和電力傳輸。在主機上開啟新的終端機視窗,然後執行下列指令:
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
記錄來確認。否則請按下重設按鈕,然後在fx serial
主控台中重複按 F 鍵,直到再次看到USB RESET
和SPEED ENUM
。在主機的其他終端機中執行下列指令:
fx flash
VIM3 現已搭載 Fuchsia!
更新 Fuchsia 映像檔
如果 VIM3 上已執行 Fuchsia,且您想更新 Fuchsia 映像檔,請完成下列步驟。
在主機的終端機中執行下列指令:
fx serve
讓這項指令繼續執行。
在樹狀結構中的 Fuchsia 檢查點中進行一些變更,並建構變更。
開啟新的終端機視窗,然後在 VIM3 上執行 Fuchsia 映像檔的 OTA 更新:
fx ota
停用 VIM3 風扇以降低噪音
如果 VIM3 風扇的噪音太大,你可以透過下列任一工作流程將其關閉:
- 將
--args vim3_mcu_fan_default_level=0
新增至fx set
叫用作業。 - 如果您使用持續性本機建構引數,請將
vim3_mcu_fan_default_level=0
新增至~/fuchsia/local/args.gn
。
確保 VIM3 試用工作執行
在提交訊息中加入下列行,確保 VIM3 試做工作會執行:
Cq-Include-Trybots: luci.turquoise.global.try:bringup.vim3-debug,core.vim3-debug,core.vim3-vg-debug
疑難排解
本節將說明常見問題的解決方法。
疑難排解:啟動循環
問題:
您正在查看 VIM3 序列記錄。記錄顯示 VIM3 會持續重新啟動。
根本原因:
不明。Khada 的電源供應實作項目似乎有潛在錯誤。Fuchsia 已解決 問題 122113 中的錯誤。
解決方法 1:
拔除 USB 傳輸線,然後重新插入。視需要重複 2 至 3 次。
解決方法 2:
請務必使用 USB-C 對 USB-A 傳輸線。
疑難排解:硬體不相容
問題:
刷新 Fuchsia 時發生此錯誤: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 (Mali) 和 Vulkan 圖形
- 乙太網路
- SDIO
- I2C
- GPIO
- 溫度感應器和 DVFS
- RTC
- 時鐘
- 風扇
- NNA
- 周邊模式的 USB-C
- USB-A
- 音訊1
以下功能仍在開發中,可能不支援:
- 影片解碼器
- SPI
以下功能不受支援,但日後可能會透過貢獻內容加入:
- SPI 快閃記憶體
- 主機模式的 USB-C
- 電源管理和 PMIC
- 網路喚醒
- UART BT
系統不支援下列功能,且不太可能新增:
- 影片編碼 (因為使用非公開韌體)
- 受信任的執行環境 / 安全開機
附錄:更新啟動畫面
如要將啟動畫面更新為 Fuchsia 標誌,請在 VIM3 處於 fastboot
模式時,從主機終端機執行下列指令:
~/fuchsia/prebuilt/third_party/fastboot/fastboot flash logo \
~/fuchsia/zircon/kernel/target/arm64/board/vim3/firmware/logo.img
-
VIM3 不包含揚聲器和麥克風等轉換器,除了轉換器之外,還需要透過 GPIO 標頭新增和整合 DAC/ADC 等外部硬體,才能以這種方式播放及擷取音訊。 ↩