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

Re: [Xen-devel] [stage1-xen PATCH v1 10/10] BUILDING.md: Add Fedora instructions



On Sun, 27 Aug 2017, Rajiv Ranganath wrote:
> Signed-off-by: Rajiv Ranganath <rajiv.ranganath@xxxxxxxxxxx>

Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>


> ---
>  BUILDING.md |   96 
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
>  1 file changed, 91 insertions(+), 5 deletions(-)
> 
> diff --git a/BUILDING.md b/BUILDING.md
> index 3ef5311..946c799 100644
> --- a/BUILDING.md
> +++ b/BUILDING.md
> @@ -1,7 +1,13 @@
>  # Build
> -stage1-xen requires new Xen and QEMU versions at the time of writing. You 
> are unlikely to find them already packaged with your distro. This document 
> describes how to build and install the latest Xen and QEMU from scratch. In 
> addition, given that CoreOS rkt is also missing from reasonably new distros 
> such as Ubuntu Xenial Xerus, I added instructions on how to build that too. 
> The document includes the dependencies needed for the build based on Ubuntu 
> Xenial Xerus.
> +stage1-xen requires new Xen and QEMU versions at the time of writing. You 
> are unlikely to find them already packaged with your distro. This document 
> describes how to build and install the latest Xen, QEMU and rkt from scratch 
> for Ubuntu Xenial Xerus and Fedora. Differently from documentation for 
> Ubuntu, the documentation for Fedora uses a Docker container for the build. 
> There is also support for building on host on Fedora.
>  
> -## Building Xen
> + * [Ubuntu Xenial Xerus](#build_ubuntu)
> + * [Fedora](#build_fedora)
> +
> +<a name="build_ubuntu"></a>
> +## Ubuntu Xenial Xerus
> +
> +### Building Xen
>  ```
>  apt-get install git build-essential python-dev gettext uuid-dev 
> libncurses5-dev libyajl-dev libaio-dev pkg-config libglib2.0-dev libssl-dev 
> libpixman-1-dev bridge-utils wget libfdt-dev bin86 bcc liblzma-dev iasl 
> libc6-dev-i386
>  
> @@ -17,7 +23,7 @@ reboot
>  Make sure to select Xen at boot, or edit /boot/grub/grub.cfg to make it the 
> default, changing "set default="0" to point to the appropriate entry below 
> (the one booting xen.gz), which could be entry number "4" for example.
>  
>  
> -## Building QEMU
> +### Building QEMU
>  ```
>  apt-get install libglib2.0-dev libpixman-1-dev libcap-dev libattr1-dev
>  
> @@ -54,7 +60,7 @@ make install
>  cp i386-softmmu/qemu-system-i386 /usr/lib/xen/bin/
>  ```
>  
> -## Building CoreOS rkt
> +### Building CoreOS rkt
>  ```
>  apt-get install golang automake libacl1-dev libsystemd-dev
>  ./configure --disable-tpm --with-stage1-flavors=coreos
> @@ -62,7 +68,7 @@ make
>  cp build-rkt-1.26.0+git/target/bin/rkt /usr/sbin
>  ```
>  
> -## Building stage1-xen
> +### Building stage1-xen
>  ```
>  apt-get install busybox-static jq
>  
> @@ -72,3 +78,83 @@ export GOPATH=/path/to/gopath
>  bash build.sh
>  cp stage1-xen.aci /home/username
>  ```
> +
> +<a name="build_fedora"></a>
> +## Fedora
> +
> +On Fedora there are two ways to build stage1-xen artifacts.
> +
> + * [Container Build](#build_fedora_container_build)
> + * [Manual Build](#build_fedora_manual_build)
> +
> +<a name="build_fedora_container_build"></a>
> +### Container Build
> +
> +We can build stage1-xen artifacts (Xen, QEMU and rkt) automatically in a 
> docker container as follows &ndash;
> +
> +```
> +cd stage1-xen
> +
> +docker pull lambdalinuxfedora/stage1-xen-fedora-buildroot
> +
> +docker run --rm \
> +  -v `pwd`:/root/gopath/src/github.com/rkt/stage1-xen \
> +  -v /tmp:/tmp \
> +  -t -i lambdalinuxfedora/stage1-xen-fedora-buildroot \
> +  /sbin/my_init -- /root/bin/run
> +```
> +
> +Once `docker run` completes, the build artifact `stage1-xen-build.tar.gz` is 
> generated in `/tmp` directory. Please see 
> [RUNNING_STAGE1_XEN.md](build/fedora/RUNNING_STAGE1_XEN.md) for details on 
> how to setup Fedora for running stage1-xen.
> +
> +<a name="build_fedora_manual_build"></a>
> +### Manual Build
> +
> +It is also possible to manually build stage1-xen components on a Fedora 
> host. 
> +
> +Please ensure that you have all the dependencies installed. The dependencies 
> for Xen, QEMU, rkt and stage1-xen is documented in 
> [buildroot-Dockerfile](build/fedora/buildroot-Dockerfile). You will also need 
> to install [`binutils`](https://github.com/lambda-linux-fedora/binutils) 
> package that is compiled with `i386pe` support. You can download the 
> pre-built RPMs from 
> [here](https://drive.google.com/open?id=0B_tTbuxmuRzIR05wQ3E1eWVyaGs).
> +
> +Install `binutils` package.
> +
> +```
> +tar xvf binutils-2.26.1-1.1.fc25.tar
> +
> +dnf install -y 
> ./binutils/2.26.1/1.1.fc25/x86_64/binutils-2.26.1-1.1.fc25.x86_64.rpm
> +```
> +
> +You can verify `i386pe` support in `binutils` by doing the following.
> +
> +```
> +[root@localhost]# ld -V
> +GNU ld version 2.26.1-1.1.fc25  Supported emulations:
> +   elf_x86_64
> +   elf32_x86_64
> +   elf_i386
> +   elf_iamcu
> +   i386linux
> +   elf_l1om
> +   elf_k1om
> +   i386pep
> +   i386pe
> +```
> +
> +You should see the lines `i386pep` and `i386pe` in the output.
> +
> +Next you can build Xen, Qemu and rkt using the following scripts &ndash;
> +
> + * [`build/fedora/components/xen`](build/fedora/components/xen)
> + * [`build/fedora/components/qemu`](build/fedora/components/qemu)
> + * [`build/fedora/components/rkt`](build/fedora/components/rkt)
> +
> +Please review the scripts and adjust the paths according to your 
> requirements.
> +
> +Once the dependencies are installed, you can build stage1-xen
> +
> +```
> +git clone https://github.com/rkt/stage1-xen.git
> +cd stage1-xen
> +export GOPATH=/path/to/gopath
> +bash build.sh
> +cp stage1-xen.aci /home/username
> +```
> +
> +Please see [RUNNING_STAGE1_XEN.md](build/fedora/RUNNING_STAGE1_XEN.md) for 
> details on how to run rkt with stage1-xen.
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

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