Giter Club home page Giter Club logo

camkes-vm's Introduction

camkes-vm

The CAmkES VMM is actively targeted to run on the C162 platform from Aitech. This is short description of how to build and run this configuration

Build dependencies

GHC and packages MissingH, data-ordlist and split (installable from cabal) For example:

apt-get install ghc
apt-get install cabal-install
cabal update
cabal install MissingH
cabal install data-ordlist
cabal install split

Cabal packages get installed under the current user, so each user that wants to build the VM must run the cabal steps

Python and packages jinja2, ply, pyelftools Can be installed via pip, for example:

apt-get install python-pip
pip install pyelftools
pip install ply
pip install jinja2

If building on a 64bit system ensure 32bit compiler tools are installed, mainly:

apt-get install lib32gcc1

And the correct version of multilib for your gcc, for example:

apt-get install gcc-multilib

Building

To build do

make clean
make c162_twovm_defconfig
make silentoldconfig
make

Then boot images/kernel-ia32-pc99 and images/capdl-loader-experimental-image-ia32-pc99 with the multiboot boot loader of your choice

For testing the C162 was configured to PXEboot (using firmware and instructions apc) pxelinux, which then used the mboot.c32 module to load the seL4 kernel and user image

Configuration

Three Linux's are configured to start. Each uses the same kernel and initrd, but has access to different hardware.

  • vm0 - usb
  • vm1 - com2, com4, canbus and SMBus (I2C)

The to use is chosen by selecting the desired application in

make menuconfig

Currently the two valid choices are

  • VMM for C162 with two guests
  • VMM for Optiplex 9020 machine with one guest

Descriptions in the applications CAmkES files and Makefiles determine the full configuration. This includes how many VMs, what hardware each VM has access to, the name of Linux kernel and initrd to use etc. It also defines any additional components and connections.

Serial

The hardware COM1 is multiplexed to each VM such that output for each guest and VM appears over COM1, and input can be directed at any of the guests. The output of each guest and VM is colour coded.

By default input is sent to vm0, to switch input to a different VM use ~N where N is 0, 1 or 2. The escape character, tilde, is only recognized following a newline.

C++

An example of using C++ in a component can be found in the cxx app, which can be selected by

make simple_cxx_defconfig

There is a separate README for it

camkes-vm's People

Contributors

adriandanis avatar ikuz avatar pingerino avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.