• Stars
    star
    281
  • Rank 147,023 (Top 3 %)
  • Language
    Shell
  • License
    BSD 2-Clause "Sim...
  • Created over 4 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Portable Fuchsia Emulator
title permalink summary
Portable Fuchsia Emulator (FImage)
os/fimage.html
Explanation of the FImage tool, and its usage

Portable Fuchsia Emulator (FImage)

Note

FImage is provided for the convenience of developers and enthusiasts who don't want to compile Fuchsia. We are in no way affiliated Google. For more information, see fimage/LICENSE.
The windows method is highly unstable and should only be used if you cannot install or boot into linux on your device.

TL;DR

  • The FImage emulator can be downloaded here.
  • For more information on the Fuchsia Emulator, see this document.

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 for tips on what you can do next. When you're done, you can clean up via dm shutdown.

Recommended 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. 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

./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

Flutter Development with FImage

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

Windows (wsl2)

A WIP script is in testing thats should enable to atleast 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 running this command.

wsl --install

After that reboot your machine and open up again powershell or windows terminal and running the first command to use fimage in cli mode recommended or the second command to use fimage in gui mode. If you use the gui mode and close fimage make sure you run the reset command afterwards.

cli command

wget https://docs.dahliaos.io/scripts/fimage/windows/wsl2/launch.sh && sudo chmod +x launch.sh; sudo ./launch.sh -cli

gui command

wget https://docs.dahliaos.io/scripts/fimage/windows/wsl2/launch.sh && sudo chmod +x launch.sh; sudo ./launch.sh -gui

reset command

wget https://docs.dahliaos.io/scripts/fimage/windows/wsl2/launch.sh && sudo chmod +x launch.sh; sudo ./launch.sh -reset

Command-line interface in gnome-terminal

Known Issues

  • Flutter development doesn't work yet, due to a bug in the Flutter tool that escapes IPv6 addresses improperly
  • 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

compiling Fuchsia for Fimage

Follow the documented steps from fuchsia.dev and then set the full target with tools, fx set workstation.qemu-x64 --with-base=//bundles:tools

export FUCHSIA_SSH_CONFIG="/Users/nmcain/fuchsia/out/default/ssh-keys/ssh_config"

More Repositories

1

pangolin_desktop

Pangolin Desktop UI shell, designed for dahliaOS, written in Flutter.
Dart
1,890
star
2

releases

dahliaOS ISO releases
400
star
3

documentation

Documentation for dahliaOS
MDX
80
star
4

buildroot

Configure and build dahliaOS
Makefile
63
star
5

utopia

Utopia Window Manager for Pangolin
Dart
61
star
6

files

File manager application
Dart
54
star
7

terminal

Terminal emulator for dahliaOS
C++
45
star
8

jasper

Minimal development shell for Fuchsia builds
C++
44
star
9

zircon-rpi

Zircon for the Raspberry Pi4
C++
44
star
10

zenit_ui

ZenitUI library for Flutter
Dart
42
star
11

website

Official dahliaOS website
TypeScript
42
star
12

dahlia-os-build

Builds FuchsiaOS and dahliaOS without effort
Shell
41
star
13

graft

Tool to manage Virtual Machines and Containers on dahliaOS
Dart
29
star
14

fuchsia

Overlays and releases of Zircon-based releases. Currently extremely experimental.
28
star
15

app_store

Curated marketplace for third-party applications on dahliaOS
Dart
25
star
16

calculator

dahliaOS calculator
Dart
21
star
17

text_editor

Cross-platform rich text editor for dahliaOS
Dart
20
star
18

dap

Experimental Dart-based package manager for dahliaOS
Dart
19
star
19

welcome

Get started with dahliaOS
Dart
15
star
20

brand

dahliaOS brand assets
SVG
14
star
21

web_browser

dahliaOS Web Browser
Dart
13
star
22

backend

Backend of Pangolin Desktop
Dart
10
star
23

settings

dahliaOS Settings application
Dart
10
star
24

media

Media applications
Dart
9
star
25

fuchsia-pine64-pinephone

C++
9
star
26

system_recovery

Behind-the-scenes interface for recovery and developer mode on UEFI based systems
Dart
9
star
27

pangolin_displaymanager

Display manager/Login Screen for dahliaOS
Dart
8
star
28

fuchsia-pi4

C++
8
star
29

clock

dahliaOS built-in clock and alarms application
Dart
8
star
30

wallpapers

Official and community-made wallpapers for dahliaOS
SVG
8
star
31

task_manager

Dart
7
star
32

zircon-msm8917

Zircon for the msm8917 SOC
C++
7
star
33

icons

dahliaOS Icons
SVG
7
star
34

prickle-emulator

An emulator built on QEMU
Makefile
6
star
35

packages

Package repo for the dahliaOS package manager
Shell
6
star
36

system_logs

dahliaOS System Logs Application
Dart
6
star
37

dsettings

A DBus settings daemon built for dahliaOS
Dart
5
star
38

xterm

A fork of https://github.com/TerminalStudio/xterm.dart
Dart
4
star
39

bot

Discord bot for the dahliaOS server - join via https://dahliaos.io/discord
Dart
4
star
40

blog

Blog for dahliaOS
TypeScript
4
star
41

kernel_panic

Kernel Panic UI for Dahlia, and other zircon based operating systems.
CMake
4
star
42

manifest

Manifests to build dahliaOS on top of Fuchsia
3
star
43

dev_options

dahliaOS Developer Options Application
Dart
3
star
44

linux-welcome

GTK+ Welcome application for dahliaOS
Python
3
star
45

web_runtime

Temporary solution to run web applications on dahliaOS Linux
CSS
3
star
46

shared

Shared code module for dahlia apps
Dart
3
star
47

press-kit

Official dahliaOS press kit
2
star
48

zenit_ui_css

ZenitUI library for CSS
CSS
2
star
49

app_template

dahliaOS Flutter application development template
C++
2
star
50

disks

C++
1
star
51

.github

Organization-wide configuration files
1
star
52

flatpak.dart

flatpak library in dart via ffi
Dart
1
star