-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathkernel_recompile_kabi.sh
executable file
·77 lines (59 loc) · 1.97 KB
/
kernel_recompile_kabi.sh
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
#!/bin/bash
#set -x
pwd
BRANCH=$(git branch | grep \* | cut -d ' ' -f2)
START=$(date +%s)
START_MRPROPER=$(date +%s)
END_MRPROPER=$(date +%s)
echo "[TIMER]{MRPROPER}: $(( $END_MRPROPER - $START_MRPROPER ))s"
ARCH=$(uname -m)
if [ "x86_64" == "${ARCH}" ] || [ "aarch64" == "${ARCH}" ]; then
VERSION=$(uname -r | cut -d '-' -f1)
echo "x86_64 architecture detected, copying config"
cp -v configs/kernel-${VERSION}-${ARCH}.config .config
else
echo "Error: Unsupported architecture"
exit 1
fi
echo "Setting Local Version for build"
sed -i_bak "s/CONFIG_LOCALVERSION=\"\"/CONFIG_LOCALVERSION=\"-${BRANCH}\"/g" .config
grep "CONFIG_LOCALVERSION=" .config
echo "Making olddefconfig"
make olddefconfig
START_BUILD=$(date +%s)
echo "Starting Build"
make -j$(nproc)
if [ $? -ne 0 ]; then
echo "Error: Build failed"
echo "[TIMER]{BUILD} $(( $(date +%s) - $START_BUILD ))s"
exit 1
fi
END_BUILD=$(date +%s)
echo "[TIMER]{BUILD}: $(( $END_BUILD - $START_BUILD ))s"
echo "Checking kABI"
# ../kernel-dist-git/SOURCES/check-kabi -k ../kernel-dist-git/SOURCES/Module.kabi_x86_64 -s Module.symvers || echo "kABI failed"
KABI_CHECK=$(../kernel-dist-git/SOURCES/check-kabi -k ../kernel-dist-git/SOURCES/Module.kabi_${ARCH} -s Module.symvers)
if [ $? -ne 0 ]; then
echo "Error: kABI check failed"
exit 1
fi
echo "kABI check passed"
echo "Making Modules"
START_MODULES=$(date +%s)
#sudo INSTALL_MOD_STRIP=1 make modules
if [ $? -ne 0 ]; then
echo "Error: Modules install failed"
echo "[TIMER]{MODULES} $(( $(date +%s) - $START_MODULES ))s"
exit 1
fi
END_MODULES=$(date +%s)
echo "[TIMER]{MODULES}: $(( $END_MODULES - $START_MODULES ))s"
echo "Making Install"
START_INSTALL=$(date +%s)
END_INSTALL=$(date +%s)
echo "[TIMER]{INSTALL}: $(( $END_INSTALL - $START_INSTALL ))s"
END=$(date +%s)
DIFF=$(( $END - $START ))
echo "[TIMER]{BUILD}: $(( $END_BUILD - $START_BUILD ))s"
echo "[TIMER]{MODULES}: $(( $END_MODULES - $START_MODULES ))s"
echo "[TIMER]{TOTAL} ${DIFF}s"