Research-Stack/4-Infrastructure/nano-kernel/build.sh

23 lines
658 B
Bash

#!/bin/bash
set -e
BUILD="$(cd "$(dirname "$0")" && pwd)/build"
INITRAMFS="$BUILD/initramfs"
mkdir -p "$INITRAMFS"
# Build minimal kernel
echo "[*] Building kernel..."
cp nano-kernel.config /usr/src/linux/.config 2>/dev/null || true
cd /usr/src/linux && make oldconfig && make -j$(nproc) bzImage
cp arch/x86/boot/bzImage "$BUILD/"
# Build initramfs
echo "[*] Building initramfs..."
cp init "$INITRAMFS/"
chmod +x "$INITRAMFS/init"
gcc -static -o "$INITRAMFS/bin/socket-server" socket-server.c
# Create cpio archive
cd "$INITRAMFS"
find . | cpio -H newc -o | gzip -9 > "$BUILD/initramfs.cpio.gz"
echo "[*] Done: $BUILD/bzImage + $BUILD/initramfs.cpio.gz"