The Fuchsia emulator (FEMU) allows you to test Fuchsia components and applications without needing a Fuchsia device.
FEMU is included in Fuchsia source, and it’s downloaded by
jiri as part of
jiri update or
It’s fetched into the Fuchsia directory
You can call FEMU with
fx vdl. Alternatively,
you can call FEMU from the Fuchsia IDK using
FEMU and other emulators
In some instances, such as emulating Zircon, you must use QEMU instead.
FEMU looks and behaves like a Fuchsia device, with the exception that no paving is required.
FEMU features include:
- GUI Support: You can run Fuchsia with the GUI (by default) or without the GUI
- GPU Support: You can run with the host’s GPU (by default) with full Vulkan support, or you can choose software rendering using SwiftShader.
- Remote Development: You can use a remote desktop with FEMU, either with Chrome Remote Desktop or from the command line using fx emu-remote command.
To see full list of supported flags:
fx vdl start --help
To configure these features, see the Set up and start FEMU page.
If you’re using the Fuchsia IDK,
fvdl supports the same flags as
FEMU image and board support
When setting up FEMU using
fx set, FEMU only supports the following boards:
When using the Fuchsia IDK to set up FEMU, you are limited to the following pre-built images:
On Linux, Fuchsia Emulator should generally be run with the
-N flag that provides networking through an
emulated NIC. Instructions for setting up networking for FEMU is in
Setting up the Fuchsia Emulator.
If starting the emulator without
fx vdl start), an available TCP port from the host will be
picked and forwarded to the emulator's SSH port. When the emulator launches successfully, instruction to set
fx tools with the correct SSH port are printed in the terminal output.
Then, you can manually set the SSH device:
fx set-device 127.0.0.1:SSH_PORT
fx is using the correct port:
You should see the SSH address printed next to
Device name. To SSH into the emulator:
If you only want to emulate Zircon, you must use
fx qemu instead. Read
Debugging the Kernel using QEMU to
learn more. This is for kernel developers. Most Fuchsia developers do not need
to use this workflow.
FEMU common usage
Alternatively, you can use the Fuchsia IDK and use pre-built system images.
Then you can use FEMU to do the following: