[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Build errors

Wah hey! The Debian Xen packages are still slightly buggy, unfortunately.  I find it helpful to do a few things:

- modprobe xen_gntdev (or else qemu-dm spins forever and very bad things happen if you have disks attached)
- guest logging:
  - mkdir /var/log/xen/guest
  - modify /etc/defaults/xend to have: XENCONSOLED_ARGS="--log=all --log-dir=/var/log/xen/guest"
- set toolstack to xl:
  - modify /etc/defaults/xen to set TOOLSTACK=xl

With this, I can see guest consoles in /var/log/xen/guest even if they crash very early on.

Try using 'xen-tools' to use 'xen-create-image' to build a Linux guest VM too, and compile up avsm/mirage-www into a microkernel (see src/Makefile) and get that up and running on your own machine...


On 12 Apr 2012, at 14:32, Sebastian Probst Eide wrote:

Thanks for the patch.
Got my first mirage xen virtual machine up and running! Small step for mankind, slightly larger victory for me :)

~ Sebastian

On 12 Apr 2012, at 14:17, Anil Madhavapeddy wrote:

Ha! This fails for a fun reason.

The master/ branch still has the work-in-progress _javascript_ backend, but it is only activated when js_of_ocaml is installed (and it is not currently installed on my test machines).  In the Node case, we need bindings for the OS.* modules (specifically, Netif for Openflow), and hence the build failure.  In order for Node to work correctly, we need:

- To patch js_of_ocaml to support _javascript_ Buffers as present in Node.js. Raphael had a few patches, but not finished.  This is because _javascript_ strings are immutable, whereas OCaml strings and buffers are mutable (and so wrapped as JS objects).
- Figure out the latest Websocket story (I have avsm/ocaml-socketio on Github which started implementing it).
- Look at how WebStorage works these days (SQL? Key/Value?)

I'm actually working in the slim/ branch of the tree as part of a benchmarking effort at the moment, where I have removed all of the Node code, and several of the higher-level protocols such as HTTP, leaving just the bare-bones network stack up to TCP.  The plan is to use this as a baseline, and add external library support for stuff like DNS, XMPP, HTTP and so forth.  I've got some interesting early benchmark results which I'll send to the list separately later.

For master/, you can edit lib/Makefile to turn off Node (I've just pushed a change to do this to my tree)


On 12 Apr 2012, at 13:53, Sebastian Probst Eide wrote:

I am trying to build mirage on my xen box.

I am on Ubuntu 11.10, kernel 3.something
I have OCaml version 3.12.1 installed from source.

I am using mirage from avsm/mirage

When running my friend make, I get:

cp openflow/openflow.mli std/openflow.mli
/usr/local/bin/ocamldep.opt -pp 'camlp4o.opt -I ../../../syntax/_build str.cmxs pa_mirage.cmxs -cow-no-open -lwt-debug' -modules std/openflow.mli > std/openflow.mli.depends
/usr/local/bin/ocamlc.opt -c -nostdlib -annot -g -pp 'camlp4o.opt -I ../../../syntax/_build str.cmxs pa_mirage.cmxs -cow-no-open -lwt-debug' -I std -o std/openflow.cmi std/openflow.mli
+ /usr/local/bin/ocamlc.opt -c -nostdlib -annot -g -pp 'camlp4o.opt -I ../../../syntax/_build str.cmxs pa_mirage.cmxs -cow-no-open -lwt-debug' -I std -o std/openflow.cmi std/openflow.mli
File "openflow/switch.mli", line 711, characters 23-34:
Error: Unbound module OS.Netif
Command exited with code 2.
make[1]: *** [node] Error 10
make[1]: Leaving directory `/home/xen/code/mirage/lib'
make: *** [all] Error 2

Any ideas?


All the best,


Things I have installed:




Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.