Khadas VIM3 開發指南

Khadas VIM3 是 ARM64 型單板電腦。您可以在 VIM3 上執行 Fauchsia。本指南說明 Fuchsia contributors如何在 VIM3 上安裝 Fuuchsia 及執行其他常見的開發工作。

如要進一步瞭解 VIM3 支援的功能,請參閱「附錄:功能支援」。

目標對象

本指南假設您熟悉以下內容:

  • 與電子產品和硬體搭配使用
  • 從原始碼和其他 CLI 工作流程建構 Fuchsia。

在 Khadas VIM3 白板上安裝 Fuchsia

如果無法順利完成安裝程序,請參閱疑難排解附錄:支援

必要條件

您必須具備下列所有硬體和軟體:

  • Khadas VIM3 單板電腦。Google 員工應向 Fuchsia Ops 團隊申請登機。

  • 執行 Linux 且有 2 個 USB 連接埠的桌上型電腦或筆記型電腦。這部電腦稱為「主機」

  • 給主機的電源至少 24W。啟用 DVFS 時,VIM3 可繪製這麼多能量。

  • 主機上運作正常的 Fuchsia 開發環境。換句話說,您應能在主機上的原始碼中建構 Fuchsia

  • USB 轉存留時間序列傳輸線

  • 支援資料傳輸和電力傳輸功能的 USB-C 轉 USB-A 傳輸線。USB-C 端適用於 VIM3。另一側則是主辦人。

以下為選用項目:

  • 散熱器。這可讓在 VIM3 上以全速執行 2 個 CPU 核心,但超過 80°C (亦即超過核心數量限制的核心溫度)。

如需相容配件的範例,請參閱「Kadas」商店中的「VIM3 集合」。

建構 Fuchsia

可以

  1. 下載 Fuchsia 原始碼

  2. 設定及建構 Fuchsia

    • 設定版本時,請使用 fx set core.vim3

您將使用 Fuchsia 開發環境建構 VIM3 的 Fuchsia 映像檔,並執行樹狀結構內 CLI 工具,將 Fuchsia 映像檔刷新至 VIM3。

設定硬體

設定 VIM3 與主機通訊:

  1. 使用 USB-C 轉 USB-* 傳輸線將 VIM3 和主機互相連接。VIM3 上的白色 LED 燈應該會開啟。

    這個連線會使用 fastboot 來啟動及刷新 VIM3。

  2. 將序列電線接到 VIM3 的 GPIO:

    • GND 即可固定 17。

    • TX (從 VIM3 輸出) 至圖釘 18。

    • RX (放入 VIM3) 以固定 19。

    • 請勿將序列電線的電源線接上任何 VIM3 GPIO。 VIM3 正透過 USB 傳輸線連接電源。

    請參閱序列偵錯工具的範例圖片,瞭解序列線如何連接至 VIM3。

  3. 將序列纜線的 USB 端連接到主機。

驗證序列連線

確認您可以查看序列記錄:

  1. 開啟 Fuchsia 的序列控制台:

    fx serial
    
  2. 按下 VIM3 上的重設按鈕。重設按鈕是在電路板上印出「R」R的按鈕。如需圖表,請參閱「VIM3/3L 硬體」。序列控制台中會顯示人類可讀的記錄。

如果您的 VIM3 似乎持續重新啟動,請參閱疑難排解:開機一文。

清除 eMMC

您需要先將 VIM3 韌體和軟體達到已知良好狀態,才能安裝 Fuchsia。第一步是清除 eMMC。

  1. 按下 VIM3 上的重設按鈕。

  2. 按下重設按鈕後立即重複按下空格鍵,讓 VIM3 開機。請務必將遊標聚焦在序列主控台上。系統啟動載入程式程序應該會暫停,您的序列主控台應該會顯示 kvim3# 提示。序列主控台現在會讓您存取 U-Boot 殼層

  3. 在 U-Boot 殼層中執行下列指令:

    store init 3
    

    序列控制台記錄應能確認 eMMC 已正確清除。

詳情請參閱清除 eMMC

更新 VIM3 上的 Android 圖像

現在,您需要讓 VIM3 韌體和軟體達到已知的良好狀態:

  1. 點選下列網址,下載已知在後續的 Fuchsia 安裝中順利運作的 Android 映像檔:https://dl.khadas.com/firmware/vim3/android/VIM3_Pie_V211220.7z

  2. 解壓縮壓縮的封存檔案 (VIM3_Pie_V211220.7z)。擷取後,其中應有一個包含 update.img 檔案的 VIM3_Pie_V211220 目錄。

  3. 請按照在 eMMC 中安裝 OS 的指示操作。執行 aml-burn-tool 時,-i 旗標的值應為 update.img 檔案的路徑。您的指令應如下所示:

    aml-burn-tool -b VIM3 -i ~/Downloads/VIM3_Pie_V211220/update.img
    
  4. 若 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

  1. 按下重設按鈕,然後在序列主控台中重複按下空格鍵,即可再次存取 U-Boot shell。當序列主控台顯示 kvim3# 提示時,您就處於 U-Boot 殼層。

  2. 在 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-* 傳輸線,並確認該傳輸線可同時支援資料和傳輸功能。

  3. 在主機中開啟新的終端機視窗,然後執行下列指令:

    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 映像檔」工作流程,因為該檔案速度更快。

  1. 如果您剛剛執行上一節的 ./fastboot reboot 指令,則您的 VIM3 應已處於 fastboot 模式。您可以檢查 fx serial 記錄來確認情況。否則,請按下重設按鈕並重複按下 fx serial 控制台中的 F 鍵,直到再次看到 USB RESETSPEED ENUM

  2. 在主機上的獨立終端機中執行下列指令:

    fx flash
    

你的 VIM3 現在正在經營 Fuchsia!

更新 Fuchsia 圖片

如果您已在 VIM3 上執行 Fuchsia,並想要更新 Fuchsia 映像檔,請完成下列步驟。

  1. 在主機上透過終端機執行下列指令:

    fx serve
    

    請繼續執行這個指令。

  2. 在樹狀 Fuchsia 中變更部分項目,並建構變更。

  3. 開啟新的終端機視窗,然後在 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 會繼續重新啟動。

根本原因:

不明。卡達的 Power Delivery 實作方式似乎存在根本錯誤。Fuchsia 解決問題 122113 中的錯誤。

解決方法 1:

拔除 USB 傳輸線,然後重新插上。視需要重複 2 到 3 次。

解決方法 2:

一律使用 USB-C 轉 USB-A 傳輸線。

疑難排解:硬體不符

問題:

刷新沙發時發生以下錯誤:Hardware mismatch! Trying to flash images built for vim3 but have 0

解決方法:

返回「更新 Android 映像檔」步驟。

附錄:修正磚塊的 VIM3

如果您已將 VIM3 積木,且需要「恢復原廠設定」,請按照下列步驟操作:

  1. 清除 eMMC
  2. 更新 Android 映像檔
  3. 更新系統啟動載入程式
  4. 將 Fuchsia 刷新至 eMMC (僅限一次性)

附錄:支援

附錄:功能支援

Fuchsia 目前支援 VIM3 的以下功能:

  • UART 序列偵錯工具
  • 透過乙太網路和 USB 進行路面處理
  • 儲存空間 (eMMC)
  • HDMI 螢幕和 Framebuffer
  • GPU (Mali) 和 Vulkan 圖形
  • 乙太網路
  • SDIO
  • I2C
  • GPIO
  • 溫度感測器和 DVFS
  • RTC
  • 時鐘
  • 風扇
  • 北美洲
  • 週邊裝置模式的 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

  1. VIM3 不含喇叭和麥克風等音譯器,除了轉換器外,也必須透過 GPIO 標頭新增並整合 DAC/ADC 等外部硬體,才能以這種方式播放及擷取音訊。