Fuchsia 模擬器 (FEMU) 是 Fuchsia 的預設模擬器。您可以使用 FEMU 測試 Fuchsia 元件和應用程式,不必使用實體 Fuchsia 裝置。
Fuchsia 原始碼樹狀結構中包含 FEMU。FEMU 會由 jiri 下載 (或更新),做為 jiri update 或 jiri run-hooks 的一部分,並擷取至 Fuchsia 來源樹狀結構的 /prebuilt/third_party/aemu 目錄。
您可以使用 ffx emu 啟動 FEMU。
FEMU、AEMU 和 QEMU
FEMU 是以 Android Emulator (AEMU) 為基礎,而 AEMU 是 QEMU 的分支版本。在某些情況下 (例如偵錯 Zircon 核心),您應改用 QEMU。
由於舊版問題,程式碼和文件可能仍會參照 AEMU。
偵錯 Zircon 核心
如要偵錯 Zircon 核心,請改用 fx qemu。詳情請參閱「使用 QEMU 偵錯 Kernel」。這項功能適用於核心開發人員。大多數 Fuchsia 開發人員不需要使用這個工作流程。
功能
FEMU 的外觀和行為與 Fuchsia 裝置類似,但 FEMU 不需要鋪路或刷機。
FEMU 的功能包括:
- GUI 支援:您可以執行 Fuchsia,預設使用 GUI,也可以不使用 GUI (使用
--headless引數)。 - GPU 支援:您可以透過主機的 GPU (預設) 執行,並完整支援 Vulkan,也可以選擇使用 SwiftShader 進行軟體算繪。
- 遠端開發:您可以透過 Chrome 遠端桌面,使用 FEMU 遠端桌面。
- UEFI/GPT 支援:您可以根據 Fuchsia 的 ABR 方案 (使用
--uefi引數),模擬實體裝置,包括 GPT 分割區配置。
如要查看支援的完整標記清單,請執行下列操作:
ffx emu start --help支援圖片和開發板
使用 fx set 設定 FEMU 時,FEMU 支援下列開發板:
x64qemu-arm64
透過 Fuchsia SDK,FEMU 支援預先建構的映像檔,包括:
core.x64workbench_eng.x64terminal.qemu-arm64
ARM64 支援 (qemu-arm64) 非常有限,不建議使用。
使用 ffx --machine product list --version <SDK_VERSION> 查看 SDK 提供的完整產品清單和對應的轉移資訊清單,並使用 ffx product download <TRANSFER_MANIFEST_URL> 下載這些產品。
網路
--net 標記會指定模擬器的網路模式。--net
需要值來指出要實作哪種網路。
--net 可能的值如下:
tap:附加 Tun/Tap 介面。user:透過 SLiRP 設定對應的通訊埠。none:停用網路。auto:檢查主機系統的功能,並選取tap(如果可用) 或user(如果 Tap 介面無法使用)。預設值為auto。
在 Linux 上,FEMU 通常應使用 --net tap 旗標執行,透過模擬 NIC 提供網路。
--net tap 和 --net user 可讓模擬器在執行 ffx target list 時可供探索。--net none 會停用網路功能,導致模擬器在執行 ffx target list 後無法探索。
如果使用 ffx emu start --net user 啟動模擬器,系統會從主機選取可用的 TCP 通訊埠,並轉送至模擬器的 SSH 通訊埠。
您可以手動設定 SSH 位址,並執行下列指令,使用 fx 工具與模擬器互動:
ffx emu start --net user --port-map PORT-NAME:PORT-NUMBER請替換下列項目:
- PORT-NAME:所選通訊埠名稱。通訊埠名稱範例:
ssh。 - PORT-NUMBER:通訊埠編號。通訊埠號碼範例:
8022。
您可以透過相同方式設定任何已命名的通訊埠。可對應的通訊埠名稱會列在虛擬裝置規格中。
如要確認 fx 工具是否使用正確的通訊埠,請執行下列指令:
ffx target list裝置的 SSH 位址會列在 ADDRS/IP 下方。如果未在位址中指定通訊埠,系統會使用預設的 SSH 通訊埠 (22)。
如要透過 SSH 連線至模擬器,請執行下列指令:
fx shell不支援的 CPU
FEMU 目前無法在下列環境中執行:
- ARM64 處理器,包括 Apple M1 處理器。
- AMD 處理器。
支援圖形加速的硬體
FEMU 目前支援 Linux 上的 Nvidia Quadro,可進行硬體圖形加速 (Nvidia Linux 驅動程式)。如果 GPU 不受支援,FEMU 會改用軟體算繪器。
常見用途
如要啟動 FEMU,請完成「開始使用 Fuchsia」指南。
或者,您也可以使用 Fuchsia SDK 和預建的系統映像檔。
啟動 FEMU 後,即可執行下列工作: