-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathbuild-kernel-mainline.sh
More file actions
executable file
·52 lines (43 loc) · 1.91 KB
/
build-kernel-mainline.sh
File metadata and controls
executable file
·52 lines (43 loc) · 1.91 KB
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
#!/bin/bash
: "${LINUX_DIR:=src/linux}"
: "${VENDOR_DTS:=vendor-dts}"
: "${KEEP_SRC:=no}"
: "${LINUX_OUT:=prebuilt/linux}"
: "${CROSS_COMPILE:=aarch64-linux-gnu-}"
: "${BASE_CONFIG:=configs/minconfig-mainline}"
: "${CONFIGS:=configs/linux}"
: "${LINUX_GIT:=https://github.com/flipperdevices/flipper-linux-kernel.git}"
: "${LINUX_BRANCH:=flipper-devel}"
set -e
if [ -d "$LINUX_DIR" ]; then
if [ x"$KEEP_SRC" = x"update" ]; then
pushd "$LINUX_DIR"
git pull
popd
elif [ x"$KEEP_SRC" = x"no" ]; then
rm -rf "$LINUX_DIR"
fi
fi
[ ! -d "$LINUX_DIR" ] && git clone --depth 1 -b "$LINUX_BRANCH" "$LINUX_GIT" "$LINUX_DIR"
BASE_CONFIG=`realpath "$BASE_CONFIG"`
CONFIGS=`realpath "$CONFIGS"/*`
KVER=`make -C "$LINUX_DIR" -s kernelversion`
magick flipper_linux_boot_logo_clean.ppm -font haxrcorp-4089-cyrillic-altgr.ttf -pointsize 31 -fill '#ff8200' -gravity SouthEast -annotate +0+0 "Flipper Linux Kernel $KVER" -compress none "$LINUX_DIR"/drivers/video/logo/flipper_linux_boot_logo_versioned.ppm
pushd "$LINUX_DIR"
make ARCH=arm64 CROSS_COMPILE="$CROSS_COMPILE" -j$(nproc) clean
./scripts/kconfig/merge_config.sh -m "$BASE_CONFIG" "$CONFIGS"
make ARCH=arm64 CROSS_COMPILE="$CROSS_COMPILE" -j$(nproc) olddefconfig
make ARCH=arm64 DTC_FLAGS="-@" CROSS_COMPILE="$CROSS_COMPILE" -j$(nproc) bindeb-pkg
rm -rf tar-install
make ARCH=arm64 CROSS_COMPILE="$CROSS_COMPILE" -j$(nproc) dir-pkg
pushd tar-install
tar czf ../modules.tar.gz ./lib
popd
popd
mkdir -p "$LINUX_OUT"/linux-mainline-files/dtbs
mv "$LINUX_DIR"/../linux-*.* "$LINUX_OUT"/
mv "$LINUX_DIR"/modules.tar.gz "$LINUX_OUT"/linux-mainline-files/
mv "$LINUX_DIR"/tar-install/boot/vmlinuz-* "$LINUX_OUT"/linux-mainline-files/vmlinuz
mv "$LINUX_DIR"/tar-install/boot/config-* "$LINUX_OUT"/linux-mainline-files/config
mv "$LINUX_DIR"/tar-install/boot/System.map-* "$LINUX_OUT"/linux-mainline-files/System.map
mv "$LINUX_DIR"/tar-install/boot/dtbs/*/rockchip "$LINUX_OUT"/linux-mainline-files/dtbs/