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)、 是 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 後,你就可以執行以下工作: