meta-virtualization/recipes-core/runx/runx/0001-make-kernel-cross-compilation-tweaks.patch
Bruce Ashfield 4ff05c1bc7 runx: introduce xen OCI container recipe
This is the initial version of the runX OCI wrapper to allow Xen based virtual
machines to be launched and managed as containers via an OCI interface.

In this first version, runx consists of the following components:

  - runX binary/wrapper (/usr/bin/)
  - state control wrappers (/usr/share/runX)
  - runx kernel
  - initrd

Once built and installed these allow the launching of Xen virtual machines
in an OCI compliant manner.

Dependencies of this recipe include:

  - kernel: must be a specific version, currently 4.15. This is done as
            a nested build and not as a multiconfig (by design).
  - static target busybox: used for the initrd
  - initrd: constructed from the kernel + busybox

The configuration of the system to build the dependencies in the right
mode for use in runX is controlled via the DISTRO_FEATURE "vmsep". If
this feature is missing, and runx is bitbaked, an error is thrown.

Installing the "runx" package to a rootfs will install all the required
support components (and dependencies).

Signed-off-by: Bruce Ashfield <bruce.ashfield@xilinx.com>
2020-03-11 12:20:04 -04:00

87 lines
2.8 KiB
Diff

From 7e3498ab7c375bd545de501920acffa77eb24120 Mon Sep 17 00:00:00 2001
From: Bruce Ashfield <bruce.ashfield@xilinx.com>
Date: Mon, 16 Dec 2019 20:42:04 -0800
Subject: [PATCH] make-kernel: cross-compilation tweaks
Signed-off-by: Bruce Ashfield <bruce.ashfield@xilinx.com>
---
kernel/make-kernel | 41 +++++++++++++++++++++++++++++++++--------
1 file changed, 33 insertions(+), 8 deletions(-)
diff --git a/kernel/make-kernel b/kernel/make-kernel
index 33b7150..c684669 100755
--- a/kernel/make-kernel
+++ b/kernel/make-kernel
@@ -13,6 +13,7 @@ fi
kernel_stuffdir=`readlink -f kernel`
kernel_outpath=$kernel_stuffdir/out
+kernel_srcdir=$kernel_stuffdir/src
kernel_builddir=$kernel_stuffdir/build
kernel_out=$kernel_outpath/kernel
@@ -22,28 +23,52 @@ kernel_tarball="$kernel_name".tar.xz
kernel_url=https://www.kernel.org/pub/linux/kernel/v4.x/"$kernel_tarball"
kernel_src_config="$kernel_stuffdir"/cutdown-config.$ARCH
kernel_patchesdir="$kernel_stuffdir"/patches
-kernel_image="$kernel_builddir"/"$kernel_name"/arch/"$ARCH"/boot/"$image"
+kernel_image="$kernel_builddir"/arch/"$ARCH"/boot/"$image"
+echo "#########################"
+echo "kernel build summary:"
+echo " version: $kernel_version"
+echo " url: $kernel_url"
+echo " src dir: $kernel_srcdir"
+echo " out dir: $kernel_builddir"
+echo " artifacts: $kernel_out"
+echo " image: $image"
+echo " build vars: $build_vars"
+echo "#########################"
-rm -rf $kernel_outpath
+if [ ! -e "$kernel_builddir/.config" ];
+then
+ rm -rf $kernel_buildir
+fi
mkdir -p $kernel_outpath
mkdir -p $kernel_builddir
+mkdir -p $kernel_srcdir
if [[ ! -f $kernel_builddir/$kernel_tarball ]]
then
+ echo "fetching the kernel .."
wget -O $kernel_builddir/$kernel_tarball --tries=20 $kernel_url
fi
-if [[ ! -d $kernel_builddir/$kernel_name ]]
+
+if [[ ! -d $kernel_srcdir/$kernel_name ]]
then
- tar --extract --xz --touch --file="$kernel_builddir/$kernel_tarball" --directory="$kernel_builddir"
- cd $kernel_builddir/$kernel_name
+ echo "extracting the kernel ..."
+ echo " tar --extract --xz --touch --file=\"$kernel_builddir/$kernel_tarball\" --directory=\"$kernel_srcdir\""
+ tar --extract --xz --touch --file="$kernel_builddir/$kernel_tarball" --directory="$kernel_srcdir"
+ cd $kernel_srcdir/$kernel_name
for i in $kernel_patchesdir/*
do
patch -p1 < $i
done
- cp $kernel_src_config .config
fi
-cd $kernel_builddir/$kernel_name
-make -j4 $image
+if [[ ! -f $kernel_builddir/.config ]]
+then
+ cp $kernel_src_config $kernel_builddir/.config
+fi
+cd $kernel_srcdir/$kernel_name
+
+echo "building the kernel ..."
+eval make O=$kernel_builddir $build_vars oldconfig
+eval make -j4 O=$kernel_builddir $build_vars $image
cp $kernel_image $kernel_out
--
2.17.1