diff options
Diffstat (limited to 'packages/linux-kernel/build-kernel.sh')
-rwxr-xr-x | packages/linux-kernel/build-kernel.sh | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/packages/linux-kernel/build-kernel.sh b/packages/linux-kernel/build-kernel.sh deleted file mode 100755 index f9298c28..00000000 --- a/packages/linux-kernel/build-kernel.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/bin/bash -CWD=$(pwd) -KERNEL_SRC=linux - -set -e - -if [ ! -d ${KERNEL_SRC} ]; then - echo "Linux Kernel source directory does not exists, please 'git clone'" - exit 1 -fi - -cd ${KERNEL_SRC} - -if [ -d .git ]; then - echo "I: Clean modified files - reset Git repo" - git reset --hard HEAD - git clean --force -d -x -fi - -echo "I: Copy Kernel config (x86_64_vyos_defconfig) to Kernel Source" -cp -rv ${CWD}/arch/ . - -KERNEL_VERSION=$(make kernelversion) -KERNEL_SUFFIX=-$(awk -F "= " '/kernel_flavor/ {print $2}' ../../../data/defaults.toml | tr -d \") -KERNEL_CONFIG=arch/x86/configs/vyos_defconfig - -# VyOS requires some small Kernel Patches - apply them here -# It's easier to habe them here and make use of the upstream -# repository instead of maintaining a full Kernel Fork. -# Saving time/resources is essential :-) -PATCH_DIR=${CWD}/patches/kernel -for patch in $(ls ${PATCH_DIR}) -do - echo "I: Apply Kernel patch: ${PATCH_DIR}/${patch}" - patch -p1 < ${PATCH_DIR}/${patch} -done - -# Change name of Signing Cert -sed -i -e "s/CN =.*/CN=VyOS build time autogenerated kernel key/" certs/default_x509.genkey - -TRUSTED_KEYS_FILE=trusted_keys.pem -# start with empty key file -echo -n "" > $TRUSTED_KEYS_FILE -CERTS=$(find ../../../data/live-build-config/includes.chroot/var/lib/shim-signed/mok -name "*.pem" -type f) -if [ ! -z "${CERTS}" ]; then - # add known public keys to Kernel certificate chain - for file in $CERTS; do - cat $file >> $TRUSTED_KEYS_FILE - done - # Force Kernel module signing and embed public keys - echo "CONFIG_SYSTEM_TRUSTED_KEYRING" >> $KERNEL_CONFIG - echo "CONFIG_SYSTEM_TRUSTED_KEYS=\"$TRUSTED_KEYS_FILE\"" >> $KERNEL_CONFIG -fi - -echo "I: make vyos_defconfig" -# Select Kernel configuration - currently there is only one -make vyos_defconfig - -echo "I: Generate environment file containing Kernel variable" -EPHEMERAL_KEY="/tmp/ephemeral.key" -EPHEMERAL_PEM="/tmp/ephemeral.pem" -cat << EOF >${CWD}/kernel-vars -#!/bin/sh -export KERNEL_VERSION=${KERNEL_VERSION} -export KERNEL_SUFFIX=${KERNEL_SUFFIX} -export KERNEL_DIR=${CWD}/${KERNEL_SRC} -export EPHEMERAL_KEY=${EPHEMERAL_KEY} -export EPHEMERAL_CERT=${EPHEMERAL_PEM} -EOF - -echo "I: Build Debian Kernel package" -touch .scmversion -make bindeb-pkg BUILD_TOOLS=1 LOCALVERSION=${KERNEL_SUFFIX} KDEB_PKGVERSION=${KERNEL_VERSION}-1 -j $(getconf _NPROCESSORS_ONLN) - -# Back to the old Kernel build-scripts directory -cd $CWD -EPHEMERAL_KERNEL_KEY=$(grep -E "^CONFIG_MODULE_SIG_KEY=" ${KERNEL_SRC}/$KERNEL_CONFIG | awk -F= '{print $2}' | tr -d \") -if test -f "${EPHEMERAL_KEY}"; then - rm -f ${EPHEMERAL_KEY} -fi -if test -f "${EPHEMERAL_PEM}"; then - rm -f ${EPHEMERAL_PEM} -fi -if test -f "${KERNEL_SRC}/${EPHEMERAL_KERNEL_KEY}"; then - openssl rsa -in ${KERNEL_SRC}/${EPHEMERAL_KERNEL_KEY} -out ${EPHEMERAL_KEY} - openssl x509 -in ${KERNEL_SRC}/${EPHEMERAL_KERNEL_KEY} -out ${EPHEMERAL_PEM} -fi |