Fuchsia 模擬器

Fuchsia 模擬器 (FEMU) 是 Fuchsia 的預設模擬器。FEMU 可讓您 ,在沒有 Fuchsia 實體裝置的情況下,測試 Fuchsia 元件和應用程式。

Fuchsia 來源樹中隨附 FEMU。FEMU 是由 下載 (或更新) jirijiri updatejiri run-hooks 的一部分,並擷取至 Fuchsia 來源樹狀結構的 /prebuilt/third_party/aemu 目錄。

您可以使用 ffx emu 啟動 FEMU。

FEMU、AEMU 和 QEMU

FEMU 是依據 Android Emulator (AEMU)、 是 QEMU 的分支,在某些部分 例如對 Zircon 核心偵錯, 應改用 QEMU

由於舊版問題,程式碼中可能會提到 AEMU。 說明文件。

偵錯 Zircon 核心

如要對 Zircon 核心偵錯,請改用 fx qemu。已讀 使用 QEMU 對核心進行偵錯瞭解詳情 內容。這適用於核心開發人員。大部分的 Fuchsia 開發人員都不需要 這個工作流程中

功能

FEMU 的外觀和行為就像 Fuchsia 裝置,唯一差別在於沒有鋪面或閃爍 都必須符合 FEMU 的規定

FEMU 的功能包括:

  • GUI 支援:根據預設,您可以透過 GUI (預設) 執行 Fuchsia,或不使用 呼叫 GUI (使用 --headless 引數)。
  • GPU 支援:您可以在主機的 GPU 上執行 (預設), Vulkan 支援,或 您可以選擇使用 Kubernetes SwiftShader.
  • 遠端開發:您可以透過 Chrome 使用具備 FEMU 的遠端桌面 遠端桌面。

如要查看支援標記的完整清單,請按照下列步驟操作:

ffx emu start --help

圖片和主機板支援

使用 fx set 設定 FEMU 時,FEMU 支援下列 Jamboard:

  • x64
  • qemu-arm64

透過 Fuchsia SDK,FEMU 支援預先建構的映像檔,包括:

  • core.x64
  • workbench_eng.x64
  • terminal.qemu-arm64

ARM64 支援 (qemu-arm64) 功能非常有限,不建議使用。

使用 ffx --machine product list --version <SDK_VERSION> 查看完整的 與相應的移轉資訊清單 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 get-ssh-address

您應該會在 Device name 旁邊看到 SSH 位址。

如要透過 SSH 連線至模擬器,請執行下列指令:

fx shell

不支援的 CPU

FEMU 目前無法在以下平台執行:

  • ARM64 處理器,包括 Apple M1 處理器。
  • AMD 處理器

支援的圖形加速功能硬體

FEMU 目前在 Linux 上支援 Nvidia Quadro 硬體圖形加速功能 (Nvidia Linux 驅動程式)。 FEMU 會針對不支援的 GPU 使用軟體轉譯器備用技術。

常見用法

如要啟動 FEMU,請完成 Fchsia 入門指南指南。

或者,您也可以使用 Fuchsia SDK 並使用預先建立的系統映像檔。

等到可以啟動 FEMU 後,你就可以執行以下工作: