This document describes how to set up and run the Fuchsia emulator (FEMU), including networking and GPU support setup.
To run FEMU, you must have
Before you can use FEMU, you need to build Fuchsia using fx set
, specifying a qemu board and supported product. This example uses qemu-x64
for the board and workstation
for the product:
Note: More information on supported boards and products is in the Fuchsia emulator overview.
For Fuchsia's ephemeral software to work with FEMU, you need to configure an IPv6 network.
To enable networking in FEMU, run the following commands:
Note: FEMU on Linux does not support external internet access.
Networking for FEMU is set up by default for macOS.
The most common way to run FEMU is with networking enabled, using the following commands.
fx emu -N
Once you run the command, a separate window opens with the title “Fuchsia Emulator”. You can run shell commands in this window, just like you would on a Fuchsia device.
fx vdl start --host-gpu
Note: When you launch FEMU for the first time on your Mac machine after starting up (ex: after a reboot), a window pops up asking if you want to allow the process “aemu” to run on your machine. Click “allow”.
To enable fx tools
(like fx ssh
) on macOS, run the following command:
fx set-device 127.0.0.1:${SSH_PORT} // where ${SSH_PORT} is a line printed in stdout
By default FEMU uses a mouse pointer for input. You can add the argument --pointing-device touch
for touch input instead.
fx emu --pointing-device touch
fx vdl start --pointing-device touch
If you don't need graphics or working under the remote workflow, you can run FEMU in headless mode:
fx emu --headless
fx vdl start --headless
By default, FEMU tries using the host GPU automatically if it is available, and falls back to software rendering using SwiftShader if a host GPU is unavailable.
You can also add the argument --host-gpu
or --software-gpu
to the fx emu
command to force FEMU to use a specific graphics device. The commands and flags are listed below:
FEMU currently supports a limited set of GPUs on macOS and Linux for hardware graphics acceleration. FEMU uses a software renderer fallback for unsupported GPUs.
To exit FEMU, run dm poweroff
in the FEMU terminal.