blob: bfc84791016b572f9686d60d050173b7e8f50396 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
#!/bin/bash
. ./stable-commits
BUILD_DIR=`pwd`/src
OUTPUT_DIR=`pwd`/output
NUM_OF_CORES=`grep -c ^processor /proc/cpuinfo`
run_cmd()
{
echo "$*"
$*
if [ $? -ne 0 ]; then
echo "ERROR: $*"
exit 1
fi
}
fetch_kernel()
{
echo "Fetching $1"
if [ "$1" = "kvm" ]; then
KERNEL_COMMIT=${KVM_KERNEL_COMMIT}
KERNEL_GIT_URL=${KVM_GIT_URL}
elif [ "$1" = "tip" ]; then
KERNEL_COMMIT=${TIP_KERNEL_COMMIT}
KERNEL_GIT_URL=${TIP_GIT_URL}
else
echo "** ERROR **"
exit 1
fi
run_cmd "mkdir -p ${BUILD_DIR}/$1"
run_cmd "git clone --single-branch -b ${KERNEL_COMMIT} ${KERNEL_GIT_URL} ${BUILD_DIR}/$1"
}
build_kernel()
{
if [ ! -d $BUILD_DIR/$1 ]; then
fetch_kernel "$1"
fi
cd $BUILD_DIR/$1
cp /boot/config-$(uname -r) .config
sed -ie s/CONFIG_LOCALVERSION.*/CONFIG_LOCALVERSION=\"\"/g .config
./scripts/config --enable CONFIG_AMD_MEM_ENCRYPT
./scripts/config --enable CONFIG_AMD_KVM_SEV
./scripts/config --disable CONFIG_DEBUG_INFO
./scripts/config --module CRYPTO_DEV_CCP_DD
./scripts/config --disable CONFIG_LOCALVERSION_AUTO
yes "" | make olddefconfig
run_cmd "make -j `getconf _NPROCESSORS_ONLN` deb-pkg LOCALVERSION=-$1"
run_cmd "mkdir -p $OUTPUT_DIR/$1"
run_cmd "mv ../linux-*${1}*.deb $OUTPUT_DIR/$1"
}
fetch_ovmf()
{
run_cmd "mkdir -p ${BUILD_DIR}/edk2"
run_cmd "git clone ${EDK2_GIT_URL} ${BUILD_DIR}/edk2"
cd ${BUILD_DIR}/edk2
}
build_ovmf()
{
if [ ! -d $BUILD_DIR/edk2 ]; then
fetch_ovmf
fi
cd $BUILD_DIR/edk2
run_cmd "make -C BaseTools"
. ./edksetup.sh
run_cmd "nice build --cmd-len=64436 \
-DDEBUG_ON_SERIAL_PORT=TRUE \
-n $(getconf _NPROCESSORS_ONLN) \
-a X64 \
-a IA32 \
-t GCC5 \
-p OvmfPkg/OvmfPkgIa32X64.dsc"
run_cmd "mkdir -p $OUTPUT_DIR/qemu-output/share/qemu"
run_cmd "cp Build/Ovmf3264/DEBUG_GCC5/FV/OVMF_CODE.fd $OUTPUT_DIR/qemu-output/share/qemu"
run_cmd "cp Build/Ovmf3264/DEBUG_GCC5/FV/OVMF_VARS.fd $OUTPUT_DIR/qemu-output/"
}
fetch_qemu()
{
run_cmd "mkdir -p ${BUILD_DIR}/qemu"
run_cmd "git clone --single-branch -b ${QEMU_COMMIT} ${QEMU_GIT_URL} ${BUILD_DIR}/qemu"
cd ${BUILD_DIR}/qemu
}
build_qemu()
{
if [ ! -d $BUILD_DIR/qemu ]; then
fetch_qemu
fi
cd $BUILD_DIR/qemu
run_cmd "./configure --target-list=x86_64-softmmu --enable-trace-backend=log\
--prefix=$OUTPUT_DIR/qemu-output"
run_cmd "make -j$(getconf _NPROCESSORS_ONLN)"
run_cmd "make -j$(getconf _NPROCESSORS_ONLN) install"
run_cmd "cp $BUILD_DIR/../launch-qemu.sh $OUTPUT_DIR/qemu-output"
}
dep_install ()
{
# install the build dependencies
run_cmd "sudo apt-get -y install git build-essential zlib1g-dev libglib2.0-dev libpixman-1-dev uuid-dev nasm bison acpica-tools libncurses5-dev libssl-dev fakeroot dpkg-dev bc libelf-dev"
}
dep_install
build_kernel "kvm"
build_qemu
build_ovmf
|