FImage

Portable Fuchsia Emulator (FImage)

💡

FImage is provided for the convenience of developers and enthusiasts who don't want to compile Fuchsia. We are in no way affiliated with Google. For more information, see fimage/LICENSE (opens in a new tab).

⚠️

The Windows method is highly unstable and should only be used if you absolutely cannot install or boot into Linux on your device.


TL;DR

To quickly run FImage, use the commands below inside of its folder:

./ffx-linux-x64 platform preflight
./network-config
./fimage-gui 4096

See Explore Fuchsia (opens in a new tab) for tips on what you can do next. When you're done, you can clean up via dm shutdown.

Requirements

  • Linux
    • 8GiB of RAM or more.
    • an Intel processor produced after 2010. (If you have a dedicated GPU)
    • A 4th generation Intel processor. (If you do not have a dedicated GPU) (Ivy Bridge technically works, but has all sorts of visual bugs)
    • Ubuntu 20.04 or equivalent.
    • curl, unzip, git.
    • Up-to-date graphics drivers.

Windows (WSL2) _ Windows 10/11 build that supports WSL2 with WSLG. _ Ubuntu 20.04 WSL2 with WSLG. * 16GiB of RAM or more.

Linux

Fimage Quick Start

First, download the latest Fimage tool at fimage/releases (opens in a new tab). Extract the file fimage-<version>.zip and go into the fimage folder.

Begin by checking your hardware, using the provided ffx tool. FFX Documentation on fuchsia.dev (opens in a new tab)

./ffx-linux-x64 platform preflight

This will print information about the hardware and software. If you are missing any dependencies or lacking hardware, it will let you know. The most common error is related to a lack of a supported GPU, to negate this, FImage uses software rendering by default, which may affect performance. If you have a supported GPU (Intel Ivy Bridge or newer), use the fimage-gui-hostGPU script to run FImage.

After following the instructions generated by the ffx preflight checks, you will need to configure networking, using the command below. This will configure the network interfaces for FEMU.

./network-config

Finally, the emulator is ready to run! Select one of the different launch options and use that to launch the emulator.

The command syntax is the same for each option. For example, to launch an FImage instance with 4GiB of RAM and a GUI, use:

./fimage-gui 4096

The launch options are as follows:

  • fimage-headless - Fuchsia emulator using only the command line
  • fimage-gui - Fuchsia emulator with the FEMU interface and the Ermine user shell
  • fimage-gui-hostGPU - Same as fimage-gui, using hostGPU; if supported

FImage on dahliaOS Linux-based Builds

Fimage can be installed on dahliaOS Linux with:

dap install fimage

Windows (WSL2)

A WIP script is in testing that should allow you to boot Fuchsia in the terminal. Booting Fuchsia with the FImage GUI is possible but highly unstable.

FImage Quick Start

First install WSL2 on Windows by opening Powershell or Windows Terminal and enabling WSL.

wsl --install

After that, reboot your computer, open the terminal of your choice and run the first command to use FImage in CLI mode (recommended) or use the second command to try FImage in GUI mode. If you use the GUI mode, after closing FImage make sure you run the reset command.

CLI command

wget https://raw.githubusercontent.com/dahliaOS/fimage/master/scripts/wsl.sh && sudo chmod +x wsl.sh; sudo ./wsl.sh -cli

GUI command

wget https://raw.githubusercontent.com/dahliaOS/fimage/master/scripts/wsl.sh && sudo chmod +x wsl.sh; sudo ./wsl.sh -gui

Reset command

wget https://raw.githubusercontent.com/dahliaOS/fimage/master/scripts/wsl.sh && sudo chmod +x wsl.sh; sudo ./wsl.sh -reset

Screenshots


Ermine's home screen.


User agent in a simple web browser.

Command-line interface in GNOME-terminal.

Flutter Development with FImage

A guide to Flutter development with FImage can be found here: Setting up FImage for Application Development

Known Issues

  • Performance when drawn with the software GPU is expectedly awful.
  • Mouse input is laggy.
  • Terminal application within Ermine crashes (Fuchsia bug?); negated by pressing enter in the terminal FEMU was launched from.
  • Extreme jank on Ivy Bridge devices using host GPU.