Build and Run TinyVMI

Tips

You can directly run a handy bash script in tinyvmi/ directory:

To build and run TinyVMI altogether in a single command:

cd xen-src/stubdom/tinyvmi
sudo bash run.tiny.sh build 

Or to only make TinyVMI without creating VM:

cd xen-src/stubdom/tinyvmi
sudo bash run.tiny.sh make

Or to only run TinyVMI without rebuild:

cd xen-src/stubdom/tinyvmi
sudo bash run.tiny.sh

For more details, see the following steps.

Build TinyVMI

# cd ./stubdom/
# make tinyvmi-stubdom

Grant Xenstore Permission to LibVMI

Command xenstore-chmod can be used to change xenstore permissions. ( xenstore-ls -p to see the current permissions)

Permission of a Xenstore directory/key is defined by format of LD, where L is a letter for the type of permission and D is the corresponding domain ID. In order to get the domain ID of TinyVMI, you can first create the VM and pause it immediately (within 2 seconds as the main function will wait for 2 seconds before start executing its actual workload codes), then get the ID via xl list or xl domid TinyVMI. For example:

# start VM and pause immediately
cd ./stubdom/minios-x86_64-tinyvmi
xl create ../tinyvmi/domain_config & && \
xl pause TinyVMI &&
echo "Domain ID of TinyVMI: $(xl domid 'TinyVMI')"

Then, you could run

# change permission of the directory '/local/domain' recursively
$ xenstore-chmod -r '/local/domain' rN

This will allow TinyVMI to read the entire directory ‘/local/domain’ in Xenstore.

Run TinyVMI

Now you can resume the TinyVMI by running xl unpause TinyVMI.