-
Notifications
You must be signed in to change notification settings - Fork 157
/
Copy pathend_chroot_script
96 lines (78 loc) · 3.06 KB
/
end_chroot_script
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
#!/usr/bin/env bash
# Custom Kernel Build end script
# Custom RaspberryPi Kernel builder
# Written by Guy Sheffer <guysoft at gmail dot com>
# GPL V3
########
set -x
set -e
# Source error handling, leave this in place
source /common.sh
install_cleanup_trap
function copy_and_save(){
if [ "$KERNEL_EXPORT" == "yes" ]; then
copy_and_export "${KERNEL_EXPORT_NAME}" $@
else
cp -v $@
fi
}
function copy_and_save_folder(){
if [ "$KERNEL_EXPORT" == "yes" ]; then
copy_and_export_folder "${KERNEL_EXPORT_NAME}" $@
else
cp -va $@
fi
}
function build_kernel(){
KERNEL_SELECT=$1
pushd /home/pi
pushd linux
if [ "$KERNEL_SELECT" == "kernel7" ]; then
KERNEL="kernel7" make ARCH=arm bcm2709_defconfig
elif [ "$KERNEL_SELECT" == "kernel" ]; then
KERNEL="kernel" make ARCH=arm bcmrpi_defconfig
elif [ "$KERNEL_SELECT" == "kernel7l" ]; then
KERNEL="kernel7l" make ARCH=arm bcm2711_defconfig
fi
echo "${KERNEL_CONFIG_APPEND}" >> .config
# CROSS_COMPILE=arm-linux-gnueabihf-
make -j4 zImage modules dtbs ARCH=arm
mkdir kernel-rt
INSTALL_MOD_PATH=kernel-rt make modules_install
copy_and_save arch/arm/boot/Image /"${BASE_BOOT_MOUNT_PATH}"/${KERNEL_SELECT}.img
# TODO: figure out which dtbo to move
copy_and_save arch/arm/boot/dts/overlays/*.dtb* /"${BASE_BOOT_MOUNT_PATH}"/overlays/
copy_and_save arch/arm/boot/dts/overlays/README /"${BASE_BOOT_MOUNT_PATH}"/overlays/
pushd arch/arm/boot/dts
if [ "$KERNEL" == "kernel7" ]; then
copy_and_save bcm2709-rpi-2-b.dtb bcm2710-rpi-3-b.dtb bcm2710-rpi-cm3.dtb bcm2710-rpi-3-b-plus.dtb /"${BASE_BOOT_MOUNT_PATH}"/
elif [ "$KERNEL" == "kernel" ]; then
copy_and_save bcm2708-rpi-0-w.dtb bcm2708-rpi-b-plus.dtb bcm2708-rpi-b.dtb bcm2708-rpi-cm.dtb bcm2708-rpi-zero.dtb bcm2708-rpi-zero-w.dtb bcm2708-rpi-cm.dtb /"${BASE_BOOT_MOUNT_PATH}"/
elif [ "$KERNEL" == "kernel7l" ]; then
copy_and_save bcm2711-rpi-4-b.dtb /"${BASE_BOOT_MOUNT_PATH}"/
fi
popd
copy_and_save_folder kernel-rt/lib /
rm -rf kernel-rt
popd
popd
}
pushd /home/pi
pushd linux
if [ "$KERNEL_TYPE" == "both" ] || [ "$KERNEL_TYPE" == "all" ] || [ "$KERNEL_TYPE" == "v6" ]; then
build_kernel "kernel"
fi
if [ "$KERNEL_TYPE" == "both" ] || [ "$KERNEL_TYPE" == "all" ] || [ "$KERNEL_TYPE" == "v7" ]; then
build_kernel "kernel7"
fi
if [ "$KERNEL_TYPE" == "all" ] || [ "$KERNEL_TYPE" == "v8" ]; then
build_kernel "kernel7l"
fi
make clean
popd
if [ "$KERNEL_SOURCE_CLEANUP" == "yes" ]; then
rm -rf linux
rm "${KERNEL_COMMIT}.tar.gz"
fi
echo "$KERNEL_COMMIT" > /etc/kernel_commit
popd