diff options
Diffstat (limited to 'fuel-plugin/build_kvm.sh')
-rwxr-xr-x | fuel-plugin/build_kvm.sh | 171 |
1 files changed, 54 insertions, 117 deletions
diff --git a/fuel-plugin/build_kvm.sh b/fuel-plugin/build_kvm.sh index 0ea75a0e4..9984f3bab 100755 --- a/fuel-plugin/build_kvm.sh +++ b/fuel-plugin/build_kvm.sh @@ -1,133 +1,70 @@ #!/bin/bash -KVM_COMMIT="0e68cb048bb8aadb14675f5d4286d8ab2fc35449" +SRC=/ +CONFIG="arch/x86/configs/opnfv.config" +VERSION="1.0.OPNFV" OVS_COMMIT="4ff6642f3c1dd8949c2f42b3310ee2523ee970a6" -KEEP=no quirks() { - - # - # Apply out of tree patches - # - for i in $SRC/kvmfornfv/patches/$1/*.patch - do - if [ -f "$i" ] - then - echo "Applying: $i" - patch -p1 <$i - fi - done +# +# Apply out of tree patches +# +for i in $SRC/kvmfornfv/patches/$1/*.patch +do + if [ -f "$i" ] + then + echo "Applying: $i" + patch -p1 <$i + fi +done } -for i -do - case $i in +apt-get update +apt-get install -y git fakeroot build-essential ncurses-dev xz-utils kernel-package bc autoconf automake libtool python python-pip - -k) KEEP=yes - shift - ;; +cd $SRC - -c) KVM_COMMIT=$2 - shift;shift - ;; +# Get the Open VSwitch sources +rm -rf ovs +git clone https://github.com/openvswitch/ovs.git +cd ovs; git checkout $OVS_COMMIT - -o) OVS_COMMIT=$2 - shift;shift - ;; +cd $SRC/kvmfornfv/ +quirks kernel - esac -done +cd kernel -SRC=${1:-/root} -CONFIG=${2:-arch/x86/configs/opnfv.config} -VERSION=${3:-1.0.OPNFV} - -# Check for necessary build tools -if ! type git >/dev/null 2>/dev/null -then - echo "Build tools missing, run the command - -apt-get install git fakeroot build-essential ncurses-dev xz-utils kernel-package automake - -as root and try again" - exit 1 -fi - -# Make sure the source dir exists -if [ ! -d $SRC ] -then - echo "$SRC: no such directory" - exit 1 -fi - -( - cd $SRC - - # Get the Open VSwitch sources - if [ ! -d ovs ] - then - git clone https://github.com/openvswitch/ovs.git - fi - - # Get the KVM for NFV kernel sources - if [ ! -d kvmfornfv ] - then - git clone https://gerrit.opnfv.org/gerrit/kvmfornfv - fi - cd kvmfornfv - git pull - if [ x$KVM_COMMIT != x ] - then - git checkout $KVM_COMMIT - else - git reset --hard - fi - cd kernel - - # Workaround build bug on Ubuntu 14.04 - cat <<EOF > arch/x86/boot/install.sh +# Workaround build bug on Ubuntu 14.04 +cat <<EOF > arch/x86/boot/install.sh #!/bin/sh cp -a -- "\$2" "\$4/vmlinuz-\$1" EOF - quirks kernel - - # Configure the kernel - cp $CONFIG .config - - make oldconfig </dev/null - - # Build the kernel debs - if [ $KEEP = no ] - then - make-kpkg clean - fi - fakeroot make-kpkg --initrd --revision=$VERSION kernel_image kernel_headers - git checkout arch/x86/boot/install.sh - git checkout fs/xfs/xfs_super.c - - # Build OVS kernel modules - cd ../../ovs - if [ x$OVS_COMMIT != x ] - then - git checkout $OVS_COMMIT - else - git reset --hard - fi - - quirks ovs - - ./boot.sh - ./configure --with-linux=$SRC/kvmfornfv/kernel - make - - # Add OVS kernel modules to kernel deb - dpkg-deb -x $SRC/kvmfornfv/linux-image*.deb ovs.$$ - dpkg-deb --control $SRC/kvmfornfv/linux-image*.deb ovs.$$/DEBIAN - cp datapath/linux/*.ko ovs.$$/lib/modules/*/kernel/net/openvswitch - depmod -b ovs.$$ -a `ls ovs.$$/lib/modules` - dpkg-deb -b ovs.$$ $SRC/kvmfornfv/linux-image*.deb - rm -rf ovs.$$ -) - -mv $SRC/kvmfornfv/*.deb . +# Configure the kernel +cp $CONFIG .config + +make oldconfig </dev/null + +# Build the kernel debs +make-kpkg clean + +fakeroot make-kpkg --initrd --revision=$VERSION kernel_image kernel_headers + +# Build OVS kernel modules +cd ../../ovs + +quirks ovs +pip install six + +./boot.sh +./configure --with-linux=$SRC/kvmfornfv/kernel +make + +# Add OVS kernel modules to kernel deb +dpkg-deb -x $SRC/kvmfornfv/linux-image*.deb ovs.$$ +dpkg-deb --control $SRC/kvmfornfv/linux-image*.deb ovs.$$/DEBIAN +cp datapath/linux/*.ko ovs.$$/lib/modules/*/kernel/net/openvswitch +depmod -b ovs.$$ -a `ls ovs.$$/lib/modules` +dpkg-deb -b ovs.$$ $SRC/kvmfornfv/linux-image*.deb +rm -rf ovs.$$ + |