This is a Yocto/OE layer to build Xen enabled Linux distros.
More information on the Yocto project can be found here: Yocto Project Documentation
This layer depends on:
Users can setup their Yocto environment manually or use the provided Kas scripts to automatically clone and setup the necessary layers.
For Ubuntu hosts, the list of packages is listed in apt-requirements. Python requirements are listed in py-requirements.
To install them do the following:
sudo apt-get install -y $(cat apt-requirements)
pip install -r py-requirements
For more details see the following:
First, edit kas/yoxen-arm64.yml and kas/yoxen-x86_64.yml to point to your custom Xen repos.
To build an image for ARM64:
$ kas build kas/yoxen-arm64.yml
To build an image for x86:
$ kas build kas/yoxen-x86_64.yml
Sometimes Xen and the Xen-tools fail to build due to some the subdirectory qemu-xen-dir being in some way not up to date. If this happens, try the following.
$ touch your-xen-src/qemu-xen-dir
$ kas shell kas/yoxen-arm64.yml -c "bitbake -c cleanall xen-tools"
$ kas build kas/yoxen-arm64.yml
To generate an SDK for ARM:
$ kas shell kas/yoxen-arm64.yml -c "bitbake -c populate_sdk core-image-minimal"
For x86:
$ kas shell kas/yoxen-x86_64.yml -c "bitbake -c populate_sdk xen-image-minimal"
If bitbake fails with permission denied, this is a workaround:
sudo apparmor_parser -R /etc/apparmor.d/unprivileged_userns