Fuchsia 模擬器

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

FEMU 位於 Fuchsia 源樹中,由 jiri 會在 jiri updatejiri run-hooks 中下載 (或更新) FEMU,並將 FEMU 擷取至 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 (預設) 或不使用 GUI (使用 --headless 引數) 執行 Fuchsia。
  • GPU 支援:您可以使用主機的 GPU (預設) 搭配完整 Vulkan 支援執行,也可以使用 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> 查看 SDK 中可用產品的完整清單和對應的移轉資訊清單,並使用 ffx product download <TRANSFER_MANIFEST_URL> 下載這些產品。

網路

--net 標記會指定模擬器的網路模式。--net 需要一個值來表示要實作的網路種類。

以下是 --net 可能的值:

  • tap:附加 Tun/Tap 介面。
  • user:透過 SLiRP 設定對應的通訊埠。
  • none:停用網路。
  • auto:檢查主機系統的功能,如果可用,請選取 tap;如果無法使用輕觸介面,則選取 userauto 為預設值。

在 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 目前在 macOS 和 Linux 上支援有限的 GPU,以執行硬體圖形加速功能。FEMU 會針對不支援的 GPU 使用軟體轉譯器備用方案。

作業系統 GPU 製造商 OS / 驅動程式版本
Linux 妮維迪亞.奎德羅 (Nvidia Quadro) Nvidia Linux 驅動程式 440.100 以上版本
macOS Intel HD 圖形 macOS 10.15 以上版本
macOS AMD Radeon Pro macOS 10.15 以上版本

常見用法

如要啟動 FEMU,請完成開始使用 Fuchsia 指南。

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

當您啟動 FEMU 後,即可執行下列工作: