summaryrefslogtreecommitdiff
path: root/rushmore-linux/rl-build-kernel.sh
diff options
context:
space:
mode:
authorHunter Kvalevog <hunter@kvog.sh>2026-02-15 09:59:38 -0600
committerHunter Kvalevog <hunter@kvog.sh>2026-02-15 09:59:38 -0600
commit0d2dfeca9318e954cbbd1f719b65f8a5c5eacd38 (patch)
tree620bbaaa6a9aea7562abd5859e17b9bd0321d62d /rushmore-linux/rl-build-kernel.sh
parentbe4240d597716b2f4d3e3d0fbadfc8f219787ed1 (diff)
rl: New build system, arm64 support
Diffstat (limited to 'rushmore-linux/rl-build-kernel.sh')
-rwxr-xr-xrushmore-linux/rl-build-kernel.sh51
1 files changed, 51 insertions, 0 deletions
diff --git a/rushmore-linux/rl-build-kernel.sh b/rushmore-linux/rl-build-kernel.sh
new file mode 100755
index 0000000..b7b38ce
--- /dev/null
+++ b/rushmore-linux/rl-build-kernel.sh
@@ -0,0 +1,51 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+DIR="$(cd "$(dirname "$0")" && pwd)"
+
+KERNEL_VER="6.19"
+KERNEL_URL="https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-$KERNEL_VER.tar.xz"
+KERNEL_TAR="linux-$KERNEL_VER.tar.xz"
+KERNEL_SRC="$DIR/linux-$KERNEL_VER"
+KERNEL_OUT="$DIR/out/kernel"
+KERNEL_CFG="$KERNEL_SRC/scripts/config"
+
+mkdir -p "$KERNEL_OUT"
+
+# If no kernel sources are found, grab the release tarball
+if [ ! -d "$KERNEL_SRC" ]; then
+ echo "Kernel sources not found. Downloading a release tarball in 3 seconds..."
+ sleep 3
+ echo "Downloading $KERNEL_URL..."
+ curl -L -o "$DIR/$KERNEL_TAR" "$KERNEL_URL"
+ echo "Extracting - this can take a little bit..."
+ tar -xf "$KERNEL_TAR" -C "$DIR"
+ rm "$DIR/$KERNEL_TAR"
+
+ echo "Generating default kernel config..."
+ make -C "$KERNEL_SRC" O="$KERNEL_OUT" defconfig
+fi
+
+echo "Setting kernel config options..."
+
+kenable() { "$KERNEL_CFG" --file "$KERNEL_OUT/.config" --enable "$1"; }
+
+kenable DRM
+kenable DRM_FBDEV_EMULATION
+kenable DRM_VIRTIO_GPU
+
+kenable FB
+kenable FB_VESA
+
+kenable FRAMEBUFFER_CONSOLE
+
+echo "Resolving config dependencies..."
+make -C "$KERNEL_SRC" O="$KERNEL_OUT" olddefconfig
+
+echo "Building with $(nproc) threads in 3 seconds..."
+sleep 3
+make -C "$KERNEL_SRC" O="$KERNEL_OUT" -j "$(nproc)"
+
+echo "Exporting kernel headers..."
+make -C "$KERNEL_SRC" O="$KERNEL_OUT" -j "$(nproc)" \
+ headers_install INSTALL_HDR_PATH="$DIR/out/sysroot/usr"