From patchwork Tue Sep 19 06:59:14 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rajiv Ranganath X-Patchwork-Id: 9958305 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 6A86B601E9 for ; Tue, 19 Sep 2017 07:02:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7510C28A67 for ; Tue, 19 Sep 2017 07:02:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6A2E828CF2; Tue, 19 Sep 2017 07:02:20 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 4109B28A67 for ; Tue, 19 Sep 2017 07:02:18 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1duCV6-0005EL-KU; Tue, 19 Sep 2017 06:59:20 +0000 Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1duCV6-0005Dv-AD for xen-devel@lists.xen.org; Tue, 19 Sep 2017 06:59:20 +0000 Received: from [85.158.139.211] by server-16.bemta-5.messagelabs.com id 6B/14-18674-740C0C95; Tue, 19 Sep 2017 06:59:19 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupgleJIrShJLcpLzFFi42Lxqg021XU7cCD S4MsjdYslHxezODB6HN39mymAMYo1My8pvyKBNWPWt7dsBas0K5a3uTUwXlXuYuTiEBKYyCjx 4vIWZhCHRWAfq8SbH9cYQRwJgYOsErO+bQfKcAI5eRL3uzpZIew0iac/ZjBB2BUSqy4cYwSxh QS0JBoXHGSDGPuRUWLL9RPsIAk2AWOJJYces4HYIgLSEtc+XwZq4OBgFpCSOH3QHCQsLOApce nSKrASFgFViddLO8Fm8gq4Sex+ORlqr5xEw/n7YPdwCrhLrD+zgQlir5vEtD+zwVaJAtWsvNz CCtErKHFy5hMWiFWaEut36YOEmQXkJba/ncM8gVF0FpKqWQhVs5BULWBkXsWoXpxaVJZapGui l1SUmZ5RkpuYmaNraGCql5taXJyYnpqTmFSsl5yfu4kRGBMMQLCD8Vaf8yFGSQ4mJVHesE0HI oX4kvJTKjMSizPii0pzUosPMcpwcChJ8PLtB8oJFqWmp1akZeYAoxMmLcHBoyTCW7oPKM1bXJ CYW5yZDpE6xWjJcWzT5T9MHPv23AKSHTfv/mESYsnLz0uVEud9BNIgANKQUZoHNw6WQC4xyko J8zICHSjEU5BalJtZgir/ilGcg1FJmNcC5CqezLwSuK2vgA5iAjooewPYQSWJCCmpBkYux5P/ LZd27VgzwUuquWhVllpUwPPNv+NdlzC2SD18cbdMX4Rt1stgt60BMqoLvwhJ/8gzWLTq1t4P2 488Mp26hnG9Bc/spUpXn/CUM+cubqo9cNnhTJzAw1+i7yovcAcUiCwI3646J3DNSXa9A18zxG q2ZS869nfPI5u/+Wrz2lM/33C9IRCqxFKckWioxVxUnAgAoiJirRsDAAA= X-Env-Sender: rajiv.ranganath@atihita.com X-Msg-Ref: server-14.tower-206.messagelabs.com!1505804357!73352291!1 X-Originating-IP: [74.125.83.53] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.4.45; banners=-,-,- X-VirusChecked: Checked Received: (qmail 20221 invoked from network); 19 Sep 2017 06:59:18 -0000 Received: from mail-pg0-f53.google.com (HELO mail-pg0-f53.google.com) (74.125.83.53) by server-14.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP; 19 Sep 2017 06:59:18 -0000 Received: by mail-pg0-f53.google.com with SMTP id j70so1532451pgc.10 for ; Mon, 18 Sep 2017 23:59:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=atihita-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=MlEUDG9aTjCZ8ib6gFV2yOolArAiJmiOjyySk/BHUf0=; b=wVcXSpcvn0WduYv+isSeZiNlNLWVv2dVHttj8M6Dfn3sUVtDrG0kKBD/cRBfpuaJ9i pqqRJEb5Y52BHmiLSsKMGjLSRV1gmvjcNuoWd6/SJ+NQUb3Wfbhyqv3fd7DCuN0ObEK6 zO8iJrhMwmkyMEoquwP0EA0SmAhGNtnv8WHkSFT4mrsvWllvfNa9qBx44M6nTSCtLEhZ DS8A9Vxy+uOLgg/hRskOaEjqhYOMXngc9jbTSmTFzCNsNBz1xkicJxOZpLFUKoRgTSfy 7vy1LHxGugH+Fz0msVApTW9M60OwxQhLhMy9wam6UL6+7Dwfj0qp9ZBjus6F78opcjxT JmQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=MlEUDG9aTjCZ8ib6gFV2yOolArAiJmiOjyySk/BHUf0=; b=eEqrIVJvL9Iv+uQH2yp1B+KnBQbuksLMDaZVB/Wr7ZLcuMDTAzgsIDDLNRa1C0NgBF XhvJGgjAZKaMY/myxdJRzrbdxGNA5qrv+qy8Zz2NLztIxNgmfEKuIN68EAGTo1kuXV3Z AFiDz/cwSGyGloA24p/nTykOPxuA8h5INUIZsP9fK8E+OGlMWmxhCUJtVMZO+QEUbt+M VpzOZXizyhNIh/RsBoHE4QWRnHCoQqxQ2HHIkspmOvmsKfGlcO68UVMLX7sx1ybDtIh5 cUWhC7zxjCnCn/dgWHkZ4Hgz3A24oUrs5r5eKsdd8F5DjhnaTZwDyJgg3TYsExmb1BL9 Tyaw== X-Gm-Message-State: AHPjjUiUGgEGhw/kdCCH8kdc3WZ9s8DO9JUUNUSzkhXbKd98BMN7Mylh 3VQKsLb5Z0YrSTvQvjw80b9k89QgIqg= X-Google-Smtp-Source: AOwi7QBTK+Mz/Kfp6vYkDvHo/bAK+jo7dSVjJHR0x9o1ZRKvdVuJtQqXdhL9ddufft4GQV8h0cckFQ== X-Received: by 10.98.144.21 with SMTP id a21mr395042pfe.159.1505804356422; Mon, 18 Sep 2017 23:59:16 -0700 (PDT) Received: from localhost ([59.93.108.6]) by smtp.gmail.com with ESMTPSA id k195sm1741373pgc.4.2017.09.18.23.59.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 18 Sep 2017 23:59:15 -0700 (PDT) From: Rajiv Ranganath To: xen-devel@lists.xen.org Date: Tue, 19 Sep 2017 12:29:14 +0530 Message-Id: <20170919065913.1913.92395.stgit@rajivs-macbook-pro.local> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20170919065749.1913.30583.stgit@Rajivs-MacBook-Pro.local> References: <20170919065749.1913.30583.stgit@Rajivs-MacBook-Pro.local> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Cc: sstabellini@kernel.org Subject: [Xen-devel] [stage1-xen PATCH v2 10/11] BUILDING.md: Add Fedora instructions X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Rajiv Ranganath Reviewed-by: Stefano Stabellini --- BUILDING.md | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 91 insertions(+), 5 deletions(-) diff --git a/BUILDING.md b/BUILDING.md index 3ef5311..4775b65 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) + + +## 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 ``` + + +## Fedora + +On Fedora there are two ways to build stage1-xen artifacts. + + * [Container Build](#build_fedora_container_build) + * [Manual Build](#build_fedora_manual_build) + + +### Container Build + +We can build stage1-xen artifacts (Xen, QEMU and rkt) automatically in a docker container as follows – + +``` +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. + + +### 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 – + + * [`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.