Boot to Emulation – EaaS as a Local Option (Beta)

Wednesday, October 21st, 2015 | Author:

Complementary to the release of the EaaS Docker containers, we’ve created a self-contained USB live system. The USB live-system boots a computer directly and runs emulated environments on local hardware. Running emulators on local machines (e.g. standard PCs) can be an interesting alternative for reading-room setups or museum displays, where cluster- or cloud-computing options are not suitable. Local execution of emulators allows to connect peripherals, such as joystick, printers, CRT monitors, but also supports an improved user experience for some applications (e.g. games, software based art, etc.) by providing native fullscreen and reduced (input-)latency.

The current live-system offers three different options:
  • A complete self-contained system
  • A self-contained system, which integrates with an existing EaaS setup
  • A boot-to-emulator system, suitable for public displays etc, which directly boots into a preconfigured emulation environment
System requirements
  • at least 2 Gb (4 Gb recommended) of RAM
  • boot option from USB (USB 3.0 recommended)
  • a USB pendrive/stick, at least 8 Gb
  • optional a cable connected network card
The Self-contained EMiL Live-System
First, download the USB image here (http://bw-fla.uni-freiburg.de/usb-demo.img) and write it to an USB pendrive. We recommend to use a fast USB 3.0 stick, with at least 8 GB capacity.

To write the image to the USB drive we recommend Linux and MacOSX users to use „dd“. E.g.

sudo dd if=/home/klaus/usb-demo.img of=/dev/<your usb device>
Windows users my use a tool like the win32 disk image writer (http://sourceforge.net/projects/win32diskimager/) or similar tools.

For a fully self-contained setup, just boot directly from the USB stick. We have preloaded the stick with some simple examples for demo purposes. A short cheat-sheet:
  •         stop an emulator with CRTL-ALT-ESC
  •         toggle between fullscreen and web view CRTL-ALT-F
In the non-fullscreen mode, the user may have options to cite an environment, create a screenshot, change a medium, etc…

Add your own images
If you want to add your own images, you can mount the USB stick on your desktop computer and you’ll see two partitions. The first partition contains a read-only ubuntu based live-distribution, the second partition, called „emil-data“ contains two folders:
  • configs/  contains user-writeable configuration files
  • image-archive/ contains a valid image-archive structure with some examples
You can copy your disk images to the image-archive/images/base folder and create meta-data accordingly. We will write a follow-up article on creating appropriate meta-data.
Currently, the second partition is rather small, but can be resized. Write the USB image to a large pen-drive, delete the second partition and re-creating it. Make sure that you retain the configs and image-archive directory and set the label of the second partition to „emil-data“. Any filesystem supported by Linux should be OK. We’ve chosen the proprietary filesystem exFAT (https://en.wikipedia.org/wiki/ExFAT) to support virtual disk images larger than 4Gb and be compatible with all major desktop operating systems.

Integrate with an EaaS Environment
Furthermore, the USB live-system integrates well with an existing EaaS environment, e.g. for hybrid (local / web) usage or as described in the following example a curation and efficient deployment tool in a reading-room environment.
To maintain your emulated environment centrally, in a first step you need to setup EaaS workflows and image-archive. Ideally you should start using our pre-packaged Docker containers (see also: http://bw-fla.uni-freiburg.de/wordpress/?p=817:
cd image-archive/nbd-export/ 
ln -s ../images/base/doom.raw 
ln -s ../images/base/hatari_tOS206us.img 
ln -s ../images/base/qemu-i386-DOS_6.20_CDROM.raw

Finally run:

./run-full-setup.sh --public-ip-port 192.168.99.100:8080 --docker  eaas/bwfla:demo-august-15 --archive-dir /Users/klaus/Downloads/image-archive

with a valid IP for your machine and archive-dir pointing to your image-archive.

Now you have can use the bwFLA workflows via web browser (e.g. open http://192.168.99.100:8080) but you also have a public image-archive running, serving the exported environments. To use this archive from the USB stick:
  • delete the image-archive folder from the second partition
  • edit configs/remote/WorkflowsConf.xml: set the <archiveGW> value to the IP and port of your docker instance. Make sure that the machine booting from USB has a cable network connection and the network is configured via DHCP. Also make sure that the USB machine is able to reach your Docker instance.


Boot to Emulator
Finally, the USB stick can be used for booting directly into a specific environment. For this simply put a file named “environment-id.txt” into the top-level directory of the second (“emil-data”) partition. The file should contain only the ID of the environment to load. You can find the ID of  an environment in its meta-data.
Note: this version is not tamper-proof. It is not recommended to use it for public displays. If you need a tamper-proof version please contact us.


The next steps ™
  • Improve usability and workflows
  • The current version is static in particular w.r.t. emulator curation. The next version will support centrally maintained, containerized components, in particular emulators. When the system starts it will check for updated software packages and will download new components if required.
  • Update of available workflows
  • Deployment for reading-rooms via PXE
Tags »

Trackback: Trackback-URL | Comments Feed: RSS 2.0
Category: bwFLA Projekt, DP Projekte, R&D

Responses are currently closed, but you can
Trackback the post from your own site.

One Response

  1. […] folk have been exploring two ways of making emulated services available: EaaS using Docker and a boot to emulation route from machine images on bootable USBs, although they don’t seem (yet) to have described […]