No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



What is Emul8?

Emul8, as the name suggests, is an emulator of various embedded systems. With Emul8 you can develop embedded software entirely in a virtual environment that runs within your PC.

If that still doesn't tell you much, visit the Emul8 website to learn more.

Supported architectures

  • ARM Cortex-A and Cortex-M
  • PowerPC
  • x86 (experimental)


Prerequisites (Mac)

The installation procedure on Mac is fairly straightforward, as you can use an official Mono release.

If not already present, install homebrew and then:

brew install binutils gnu-sed coreutils homebrew/versions/gcc49 dialog

Prerequisites (Linux)

The package names for prerequisites are given for Ubuntu 14.04 (please adjust those w/r to your distribution and version):

sudo apt-key adv --keyserver hkp:// --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
sudo apt-get install git mono-complete automake autoconf libtool g++ realpath \
                     gksu libgtk2.0-dev dialog screen uml-utilities gtk-sharp2


Emul8 requires mono version 5.0 or newer.

If you want to modify or extend the source code of Emul8, it is recommended to install the MonoDevelop IDE.

For a detailed information on the required packages, please consult the System requirements section in the documentation.

Getting the source

The Emul8 source code is available from GitHub:

git clone

No need to init any submodules - this will be done automatically at a later stage.

Bootstrapping Emul8

Since Emul8 can be used for various purposes and not everyone needs all the modules and platforms, a simple bootstrapping system was created to make it easy to select the elements you need.

In order to create a solution file integrating the selected projects (.csproj files), use the Bootstrap tool:


and follow the instructions displayed on the screen. As a result a target directory with an Emul8.sln file will be created, ready to be built.


If you just want to build everything, or for scripting purposes, instead of running in interactive mode, you can generate a solution containing all projects by executing:

./ -a

Building Emul8

After bootstrapping the configuration (i.e., when an Emul8.sln file is created) it is possible to build it using:


Build scripts is configurable with additional flags, most useful of which are presented below:

-v          verbose mode
-d          build in debug configuration
-c          clean instead of building
-p          create deb/rpm/arch packages

Running Emul8

In order to run Emul8 use:

./ [file]

where [file] is an optional argument - path to a script that should be loaded on startup.

Run scripts is configurable with additional flags, most useful of which are presented below:

-d            debug mode (requires prior build in debug configuration)
-e COMMAND    execute command on startup (does not allow the [file] argument)
-p            remove steering codes (e.g., colours) from output
-P PORT       listen on a port for monitor commands instead of opening a window
-h            help & usage


The source of the documentation, available in compiled form on Read The Docs, is located in the doc folder. It is written in Sphinx, which can be installed as follows:

sudo apt-get install python-pip
sudo pip install sphinx

To compile the documentation, use:

make html     # build HTML output


make latexpdf # build PDF output, also requires LaTeX


Emul8 is released under the permissive MIT license. For details, See the LICENSE file.


Contributions can be made using the GitHub pull requests mechanism and are very welcome! For details, see the CONTRIBUTING file.