From 4e66c50835cee66fdff89d8fce4f4e628fb8b427 Mon Sep 17 00:00:00 2001 From: "Lance R. Vick" Date: Wed, 12 Aug 2020 22:25:41 -0700 Subject: [PATCH] Name change and boot-from-usb on Heads --- .../heads/boards/librem13v4/librem13v4.config | 39 ++++++++++++++++++ .../heads/boards/librem15v4/librem15v4.config | 40 +++++++++++++++++++ config/heads/patches/usb-boot.patch | 17 ++++++++ scripts/environment | 1 + scripts/fetch | 35 +++++++++++----- 5 files changed, 122 insertions(+), 10 deletions(-) create mode 100644 config/heads/boards/librem13v4/librem13v4.config create mode 100644 config/heads/boards/librem15v4/librem15v4.config create mode 100644 config/heads/patches/usb-boot.patch diff --git a/config/heads/boards/librem13v4/librem13v4.config b/config/heads/boards/librem13v4/librem13v4.config new file mode 100644 index 0000000..2d28efc --- /dev/null +++ b/config/heads/boards/librem13v4/librem13v4.config @@ -0,0 +1,39 @@ +# Configuration for a librem13v4 +CONFIG_LINUX_CONFIG=config/linux-librem13v2.config +CONFIG_COREBOOT_CONFIG=config/coreboot-librem13v4.config + +export CONFIG_COREBOOT=y +CONFIG_CRYPTSETUP=y +CONFIG_FLASHROM=y +CONFIG_FLASHTOOLS=y +CONFIG_GPG2=y +CONFIG_KEXEC=y +CONFIG_UTIL_LINUX=y +CONFIG_LVM2=y +CONFIG_MBEDTLS=y +CONFIG_PCIUTILS=y +CONFIG_POPT=y +CONFIG_QRENCODE=y +CONFIG_TPMTOTP=y + +#CONFIG_SLANG=y +#CONFIG_NEWT=y +CONFIG_CAIRO=y +CONFIG_FBWHIPTAIL=y +CONFIG_LIBREMKEY=y + +CONFIG_LINUX_USB=y + +export CONFIG_TPM=y +export CONFIG_BOOTSCRIPT=/bin/gui-init +export CONFIG_BOOT_REQ_HASH=n +export CONFIG_BOOT_REQ_ROLLBACK=n +export CONFIG_BOOT_KERNEL_ADD="intel_iommu=on" +export CONFIG_BOOT_KERNEL_REMOVE="" +export CONFIG_BOOT_USB=y +export CONFIG_BOOT_DEV="/dev/sda1" +export CONFIG_BOOT_GUI_MENU_NAME="Librem 13 v4 | AirgapOS Firmware Menu" +export CONFIG_WARNING_BG_COLOR="--background-gradient 0 0 0 150 125 0" +export CONFIG_ERROR_BG_COLOR="--background-gradient 0 0 0 150 0 0" +export CONFIG_FLASHROM_OPTIONS="-p internal" +export CONFIG_AUTO_BOOT_TIMEOUT=5 diff --git a/config/heads/boards/librem15v4/librem15v4.config b/config/heads/boards/librem15v4/librem15v4.config new file mode 100644 index 0000000..c57dd7d --- /dev/null +++ b/config/heads/boards/librem15v4/librem15v4.config @@ -0,0 +1,40 @@ +# Configuration for a librem15v4 + +# The L15v4 Linux config is the same as the L13v2 linux config +CONFIG_LINUX_CONFIG=config/linux-librem13v2.config +CONFIG_COREBOOT_CONFIG=config/coreboot-librem15v4.config + +export CONFIG_COREBOOT=y +CONFIG_CRYPTSETUP=y +CONFIG_FLASHROM=y +CONFIG_FLASHTOOLS=y +CONFIG_GPG2=y +CONFIG_KEXEC=y +CONFIG_UTIL_LINUX=y +CONFIG_LVM2=y +CONFIG_MBEDTLS=y +CONFIG_PCIUTILS=y +CONFIG_POPT=y +CONFIG_QRENCODE=y +CONFIG_TPMTOTP=y + +#CONFIG_SLANG=y +#CONFIG_NEWT=y +CONFIG_CAIRO=y +CONFIG_FBWHIPTAIL=y +CONFIG_LIBREMKEY=y + +CONFIG_LINUX_USB=y + +export CONFIG_TPM=y +export CONFIG_BOOTSCRIPT=/bin/gui-init +export CONFIG_BOOT_REQ_HASH=n +export CONFIG_BOOT_REQ_ROLLBACK=n +export CONFIG_BOOT_KERNEL_ADD="intel_iommu=on" +export CONFIG_BOOT_KERNEL_REMOVE="" +export CONFIG_BOOT_DEV="/dev/sda1" +export CONFIG_BOOT_GUI_MENU_NAME="Librem 15 v4 | AirgapOS Firmware Menu" +export CONFIG_WARNING_BG_COLOR="--background-gradient 0 0 0 150 125 0" +export CONFIG_ERROR_BG_COLOR="--background-gradient 0 0 0 150 0 0" +export CONFIG_FLASHROM_OPTIONS="-p internal" +export CONFIG_AUTO_BOOT_TIMEOUT=5 diff --git a/config/heads/patches/usb-boot.patch b/config/heads/patches/usb-boot.patch new file mode 100644 index 0000000..f93a294 --- /dev/null +++ b/config/heads/patches/usb-boot.patch @@ -0,0 +1,17 @@ +diff --git a/initrd/init b/initrd/init +index bb39dec..975d041 100755 +--- a/initrd/init ++++ b/initrd/init +@@ -48,6 +48,11 @@ if [ ! -e /dev/tpm0 ]; then + export CONFIG_TPM='n' + fi + ++if [ "$CONFIG_BOOT_USB" = "y" ]; then ++ insmod /lib/modules/usb-storage.ko >/dev/null 2>&1 \ ++ || echo "usb_storage: module load failed" ++fi ++ + if [ "$CONFIG_COREBOOT" = "y" ]; then + /bin/cbfs-init + fi + diff --git a/scripts/environment b/scripts/environment index 8fb54ef..f3c41a6 100755 --- a/scripts/environment +++ b/scripts/environment @@ -7,6 +7,7 @@ env_file=${HOME}/config/config.env export BUILD_DIR="${HOME}/build" export BR2_EXTERNAL="${HOME}/config/buildroot" +export HEADS_EXTERNAL="${HOME}/config/heads" export RELEASE_DIR="${HOME}/release" export BUILDROOT_REPO=git://git.busybox.net/buildroot export HEADS_REPO=https://source.puri.sm/coreboot/purism-heads.git diff --git a/scripts/fetch b/scripts/fetch index fe237fd..98850b0 100755 --- a/scripts/fetch +++ b/scripts/fetch @@ -6,9 +6,13 @@ build_dir="${BUILD_DIR?}" buildroot_dir="${build_dir}/buildroot" buildroot_repo="${BUILDROOT_REPO?}" buildroot_ref=${BUILDROOT_REF?} +buildroot_external=${BR2_EXTERNAL?} heads_dir="${build_dir}/heads" heads_repo="${HEADS_REPO?}" heads_ref=${HEADS_REF?} +heads_external=${HEADS_EXTERNAL?} +devices=${DEVICES?} +target=${TARGET?} [[ -f ~/.gitconfig ]] || \ printf "[color]\nui=auto\n[user]\nemail=build@local\nname=Build User" \ @@ -18,18 +22,29 @@ mkdir -p "$build_dir" [ "$(ls -A "${buildroot_dir}")" ] \ || git clone "$buildroot_repo" "$buildroot_dir" +git -C "$buildroot_dir" reset --hard git -C "$buildroot_dir" checkout "$buildroot_ref" -cd "$buildroot_dir" -git reset --hard -for patch in ${BR2_EXTERNAL}/patches/*; do - echo "Applying patch: ${patch}" - patch -p1 --no-backup-if-mismatch < "${patch}" -done -make "airgap_${TARGET}_defconfig" -make source +( + cd $buildroot_dir; + for patch in "${buildroot_external}"/patches/*; do + echo "Applying patch: ${patch}"; + patch -p1 --no-backup-if-mismatch < "${patch}"; + done; + make "airgap_${target}_defconfig"; + make source; +) [ "$(ls -A "${heads_dir}")" ] \ || git clone "$heads_repo" "$heads_dir" +git -C "$buildroot_dir" reset --hard git -C "$heads_dir" checkout "$heads_ref" -[[ "$DEVICES" =~ "librem" ]] \ - && (cd "$heads_dir/blobs/librem_kbl" && ./get_blobs.sh) +( + cd "$heads_dir"; + for patch in "${heads_external}"/patches/*; do + echo "Applying patch: ${patch}" + patch -p1 --no-backup-if-mismatch < "${patch}" + done + rsync -Pav "${heads_external}/boards/" "${heads_dir}/boards/" + [[ "$devices" =~ "librem" ]] \ + && (cd "$heads_dir/blobs/librem_kbl" && ./get_blobs.sh) +)