本程式碼研究室系列著重於 Fuchsia 模擬器 (FEMU) 做為目標裝置,這是以原始碼樹狀結構建構及發布,並在開發機器上執行。不過,您也可以為支援的硬體平台 (例如 Intel NUC) 建構 Fuchsia。
本節將說明在實體裝置上使用 Fuchsia 的一些具體細節。
設定
Fuchsia 會根據設定版本時使用的「主機板名稱」定義硬體裝置的支援。包括任何硬體專屬套件,例如驅動程式。回顧先前使用的 fx set
指令:
fx set workbench_eng.x64
在這個範例中,x64
是可以在 FEMU 和 Intel NUC 執行的主面板名稱。如要為 Khadas VIM3 建構相同的產品,您可以修改 set
指令,使用 vim3
面板。
fx set workbench_eng.vim3
現在執行 fx build
會為目標裝置產生映像檔。
啟動
刷新作業系統之前,支援的裝置必須安裝與 Fauchsia 相容的系統啟動載入程式。這項程序稱為「啟動」裝置。許多裝置已透過工廠安裝相容的系統啟動載入程式,其他裝置可能需要製造商專用工具,將系統啟動載入程式更新為相容版本。 如需關於特定裝置的詳細資訊,請參閱裝置說明文件。
閃光燈
將作業系統載入裝置的程序稱為「刷新」。將處於系統啟動載入程式模式的裝置連線至 Workbench 後,即可使用 flash
指令將 Fuchsia 刷新至裝置上。
fx flash
如果裝置已經刷新,可以從 Fuchsia 重新啟動裝置,並進入系統啟動載入程式模式,必要時需要使用 ffx
再次刷新:
ffx target reboot --bootloader
例如
您可以透過透過 USB 或本機 IPv6 網路連線的開發機器,探索 Fuchsia 裝置並進行互動。Fuchsia 可透過多點傳送 DNS (mDNS) 和 Overnet 網格通訊協定,使用 DNS 服務探索 (DNS-SD) 自動探索裝置。
主機工具 (例如 ffx
) 會偵測廣告裝置,並啟用主機目標與實體裝置和 FEMU 的互動。
ffx target list
NAME SERIAL TYPE STATE ADDRS/IP RCS
fuchsia-5254-0063-5e7a <unknown> . Product [fe80::c357:53e7:aedf:ed95%qemu] Y
如果目標裝置未通告探索封包,或是 ffx
無法偵測,您可以使用 add
和 remove
指令手動管理這些目標:
ffx target add device-ip:device-port
ffx target remove device-ip:device-port
在目標清單中追蹤裝置後,ffx
會與目標上的移除控制服務 (RCS) 互動,以便您傳送其他指令。
後續步驟
恭喜!您已成功從來源自訂和建構 Fuchsia,且對於主要系統元件在原始碼樹狀結構中的位置有進一步的瞭解。
在下一個單元中,您將進一步瞭解如何建構 Fuchsia 的軟體基本單元: