From: Quirin Gylstorff The solution proposed by the patch[1] is not longer necessary. Remove the patch and rework initramfs-config. [1]: isar-patches/v7-0001-meta-support-Generate-a-custom-initramfs.patch Signed-off-by: Quirin Gylstorff --- ...-support-Generate-a-custom-initramfs.patch | 207 ------------------ kas-cip.yml | 4 - .../initramfs-config/files/postinst | 6 + .../initramfs-config/files/postinst.ext | 3 - .../initramfs-abrootfs-secureboot_0.1.bb | 9 +- 5 files changed, 9 insertions(+), 220 deletions(-) delete mode 100644 isar-patches/v7-0001-meta-support-Generate-a-custom-initramfs.patch create mode 100644 recipes-support/initramfs-config/files/postinst delete mode 100644 recipes-support/initramfs-config/files/postinst.ext diff --git a/isar-patches/v7-0001-meta-support-Generate-a-custom-initramfs.patch b/isar-patches/v7-0001-meta-support-Generate-a-custom-initramfs.patch deleted file mode 100644 index f8fb28e..0000000 --- a/isar-patches/v7-0001-meta-support-Generate-a-custom-initramfs.patch +++ /dev/null @@ -1,207 +0,0 @@ -From 7c85e2e363fd39e60bf5041d02e14e8bd62c1a68 Mon Sep 17 00:00:00 2001 -From: Quirin Gylstorff -Date: Tue, 24 Mar 2020 17:58:08 +0100 -Subject: [PATCH v7 1/3] meta/support: Generate a custom initramfs - -This package sets the Parameters for mkinitramfs/update-intramfs -before it regenerates the initrd.img of debian with a modified version. - -Use cases are the remove unnecessary kernel modules to reduce the -size of the initrd by using the parameters: -``` -INITRAMFS_MODULES = "list" -INITRAMFS_MODULE_LIST += "ext4" -``` - -Set the boot root during the initrd generation by setting `INITRAMFS_ROOT`. - -see also man pages of mkinitramfs and initramfs.conf. - -Signed-off-by: Quirin Gylstorff ---- - .../initramfs-config/initramfs-config_0.1.bb | 6 +++ - .../initramfs-config/files/control.tmpl | 12 +++++ - .../initramfs-config/files/postinst.tmpl | 50 +++++++++++++++++++ - .../initramfs-config/files/postrm.tmpl | 41 +++++++++++++++ - .../initramfs-config/initramfs-config.inc | 32 ++++++++++++ - 5 files changed, 141 insertions(+) - create mode 100644 meta-isar/recipes-support/initramfs-config/initramfs-config_0.1.bb - create mode 100644 meta/recipes-support/initramfs-config/files/control.tmpl - create mode 100644 meta/recipes-support/initramfs-config/files/postinst.tmpl - create mode 100644 meta/recipes-support/initramfs-config/files/postrm.tmpl - create mode 100644 meta/recipes-support/initramfs-config/initramfs-config.inc - -diff --git a/meta-isar/recipes-support/initramfs-config/initramfs-config_0.1.bb b/meta-isar/recipes-support/initramfs-config/initramfs-config_0.1.bb -new file mode 100644 -index 0000000..c951e8a ---- /dev/null -+++ b/meta-isar/recipes-support/initramfs-config/initramfs-config_0.1.bb -@@ -0,0 +1,6 @@ -+# -+# Copyright (C) Siemens AG, 2020 -+# -+# SPDX-License-Identifier: MIT -+ -+require recipes-support/initramfs-config/initramfs-config.inc -diff --git a/meta/recipes-support/initramfs-config/files/control.tmpl b/meta/recipes-support/initramfs-config/files/control.tmpl -new file mode 100644 -index 0000000..66984eb ---- /dev/null -+++ b/meta/recipes-support/initramfs-config/files/control.tmpl -@@ -0,0 +1,12 @@ -+Source: ${PN} -+Section: misc -+Priority: optional -+Standards-Version: 3.9.6 -+Maintainer: isar-users -+Build-Depends: debhelper (>= 9) -+ -+ -+Package: ${PN} -+Architecture: any -+Depends: ${shlibs:Depends}, ${misc:Depends}, initramfs-tools-core, ${DEBIAN_DEPENDS} -+Description: Configuration files for a custom initramfs -diff --git a/meta/recipes-support/initramfs-config/files/postinst.tmpl b/meta/recipes-support/initramfs-config/files/postinst.tmpl -new file mode 100644 -index 0000000..e523906 ---- /dev/null -+++ b/meta/recipes-support/initramfs-config/files/postinst.tmpl -@@ -0,0 +1,50 @@ -+#!/bin/sh -+# postinst script for initramfs-config -+# -+# see: dh_installdeb(1) -+ -+set -e -+ -+case "$1" in -+ configure) -+ INITRAMFS_CONF=/etc/initramfs-tools/initramfs.conf -+ if [ -f ${INITRAMFS_CONF} ]; then -+ sed -i -E 's/(^MODULES=).*/\1${INITRAMFS_MODULES}/' ${INITRAMFS_CONF} -+ sed -i -E 's/(^BUSYBOX=).*/\1${INITRAMFS_BUSYBOX}/' ${INITRAMFS_CONF} -+ sed -i -E 's/(^COMPRESS=).*/\1${INITRAMFS_COMPRESS}/' ${INITRAMFS_CONF} -+ sed -i -E 's/(^KEYMAP=).*/\1${INITRAMFS_KEYMAP}/' ${INITRAMFS_CONF} -+ sed -i -E 's/(^DEVICE=).*/\1${INITRAMFS_NET_DEVICE}/' ${INITRAMFS_CONF} -+ sed -i -E 's/(^NFSROOT=).*/\1${INITRAMFS_NFSROOT}/' ${INITRAMFS_CONF} -+ sed -i -E 's/(^RUNSIZE=).*/\1${INITRAMFS_RUNSIZE}/' ${INITRAMFS_CONF} -+ if grep -Fxq "ROOT=" "${INITRAMFS_CONF}"; then -+ sed -i -E 's/(^ROOT=).*/\1${INITRAMFS_ROOT}/' ${INITRAMFS_CONF} -+ else -+ sed -i -E "\$aROOT=${INITRAMFS_ROOT}" ${INITRAMFS_CONF} -+ fi -+ fi -+ -+ MODULES_LIST_FILE=/etc/initramfs-tools/modules -+ if [ -f ${MODULES_LIST_FILE} ]; then -+ for modname in ${INITRAMFS_MODULE_LIST}; do -+ if ! grep -Fxq "$modname" "${MODULES_LIST_FILE}"; then -+ echo "$modname" >> "${MODULES_LIST_FILE}" -+ fi -+ done -+ fi -+ -+ update-initramfs -v -u -+ -+ ;; -+ abort-upgrade|abort-remove|abort-deconfigure) -+ ;; -+ -+ *) -+ echo "postinst called with unknown argument \`$1'" >&2 -+ exit 1 -+ ;; -+esac -+# dh_installdeb will replace this with shell code automatically -+# generated by other debhelper scripts. -+#DEBHELPER# -+ -+exit 0 -diff --git a/meta/recipes-support/initramfs-config/files/postrm.tmpl b/meta/recipes-support/initramfs-config/files/postrm.tmpl -new file mode 100644 -index 0000000..115d9b6 ---- /dev/null -+++ b/meta/recipes-support/initramfs-config/files/postrm.tmpl -@@ -0,0 +1,41 @@ -+#!/bin/sh -+# postrm script for initramfs-config -+# -+# see: dh_installdeb(1) -+ -+set -e -+ -+case "$1" in -+ purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) -+ # back to the debian defaults -+ INITRAMFS_CONF=/etc/initramfs-tools/initramfs.conf -+ sed -i -E 's/(^MODULES=).*/\1most/' ${INITRAMFS_CONF} -+ sed -i -E 's/(^BUSYBOX=).*/\1auto/' ${INITRAMFS_CONF} -+ sed -i -E 's/(^COMPRESS=).*/\1gzip/' ${INITRAMFS_CONF} -+ sed -i -E 's/(^KEYMAP=).*/\1n/' ${INITRAMFS_CONF} -+ sed -i -E 's/(^DEVICE=).*/\1/' ${INITRAMFS_CONF} -+ sed -i -E 's/(^NFSROOT=).*/\1auto/' ${INITRAMFS_CONF} -+ sed -i -E 's/(^RUNSIZE=).*/\110%/' ${INITRAMFS_CONF} -+ sed -i -E 's/(^ROOT=).*//' ${INITRAMFS_CONF} -+ -+ # remove the added modules -+ MODULES_LIST_FILE=/etc/initramfs-tools/modules -+ for modname in ${INITRAMFS_MODULE_LIST}; do -+ sed -i -E 's/$modname//' -+ done -+ -+ update-initramfs -v -u -+ ;; -+ -+ *) -+ echo "postrm called with unknown argument \`$1'" >&2 -+ exit 1 -+ ;; -+esac -+ -+# dh_installdeb will replace this with shell code automatically -+# generated by other debhelper scripts. -+ -+#DEBHELPER# -+ -+exit 0 -diff --git a/meta/recipes-support/initramfs-config/initramfs-config.inc b/meta/recipes-support/initramfs-config/initramfs-config.inc -new file mode 100644 -index 0000000..16049a9 ---- /dev/null -+++ b/meta/recipes-support/initramfs-config/initramfs-config.inc -@@ -0,0 +1,32 @@ -+# This software is a part of ISAR. -+# Copyright (C) 2020 Siemens AG -+# -+# SPDX-License-Identifier: MIT -+inherit dpkg-raw -+inherit template -+DESCRIPTION = "Recipe to set the initramfs configuration and generate a new ramfs" -+ -+FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/files:" -+ -+SRC_URI = "file://postinst.tmpl \ -+ file://postrm.tmpl \ -+ file://control.tmpl \ -+ " -+ -+INITRAMFS_MODULES ?= "most" -+INITRAMFS_BUSYBOX ?= "auto" -+INITRAMFS_COMPRESS ?= "gzip" -+INITRAMFS_KEYMAP ?= "n" -+INITRAMFS_NET_DEVICE ?= "" -+INITRAMFS_NFSROOT ?= "auto" -+INITRAMFS_RUNSIZE ?= "10%" -+INITRAMFS_ROOT ?= "" -+INITRAMFS_MODULE_LIST ?= "" -+CREATE_NEW_INITRAMFS ?= "n" -+KERNEL_PACKAGE = "${@ ("linux-image-" + d.getVar("KERNEL_NAME", True)) if d.getVar("KERNEL_NAME", True) else ""}" -+DEBIAN_DEPENDS += ", ${KERNEL_PACKAGE}" -+TEMPLATE_FILES = "postinst.tmpl control.tmpl postrm.tmpl" -+TEMPLATE_VARS += "INITRAMFS_MODULES INITRAMFS_BUSYBOX INITRAMFS_COMPRESS \ -+ INITRAMFS_KEYMAP INITRAMFS_NET_DEVICE INITRAMFS_NFSROOT \ -+ INITRAMFS_RUNSIZE INITRAMFS_ROOT INITRAMFS_MODULE_LIST \ -+ CREATE_NEW_INITRAMFS DEBIAN_DEPENDS PN" --- -2.20.1 - diff --git a/kas-cip.yml b/kas-cip.yml index 8fb9004..8522957 100644 --- a/kas-cip.yml +++ b/kas-cip.yml @@ -25,10 +25,6 @@ repos: refspec: 03124cca669f50b682336a0bdf4ede5a4238e144 layers: meta: - patches: - 02-initramfs: - path: isar-patches/v7-0001-meta-support-Generate-a-custom-initramfs.patch - repo: cip-core bblayers_conf_header: standard: | diff --git a/recipes-support/initramfs-config/files/postinst b/recipes-support/initramfs-config/files/postinst new file mode 100644 index 0000000..2d4256d --- /dev/null +++ b/recipes-support/initramfs-config/files/postinst @@ -0,0 +1,6 @@ +#!/bin/sh + +# patch local script +patch -s -p0 /usr/share/initramfs-tools/scripts/local /usr/share/secureboot/secure-boot-debian-local.patch + +update-initramfs -v -u diff --git a/recipes-support/initramfs-config/files/postinst.ext b/recipes-support/initramfs-config/files/postinst.ext deleted file mode 100644 index cdafa74..0000000 --- a/recipes-support/initramfs-config/files/postinst.ext +++ /dev/null @@ -1,3 +0,0 @@ -if [ -d /usr/share/secureboot ]; then - patch -s -p0 /usr/share/initramfs-tools/scripts/local /usr/share/secureboot/secure-boot-debian-local.patch -fi diff --git a/recipes-support/initramfs-config/initramfs-abrootfs-secureboot_0.1.bb b/recipes-support/initramfs-config/initramfs-abrootfs-secureboot_0.1.bb index f84f76f..4b257fa 100644 --- a/recipes-support/initramfs-config/initramfs-abrootfs-secureboot_0.1.bb +++ b/recipes-support/initramfs-config/initramfs-abrootfs-secureboot_0.1.bb @@ -8,24 +8,21 @@ # # SPDX-License-Identifier: MIT -require recipes-support/initramfs-config/initramfs-config.inc + +inherit dpkg-raw DEBIAN_DEPENDS += ", busybox, patch" -SRC_URI += "file://postinst.ext \ +SRC_URI += "file://postinst \ file://initramfs.lsblk.hook \ file://initramfs.image_uuid.hook \ file://secure-boot-debian-local-patch" -INITRAMFS_BUSYBOX = "y" - do_install() { # add patch for local to /usr/share/secure boot TARGET=${D}/usr/share/secureboot install -m 0755 -d ${TARGET} install -m 0644 ${WORKDIR}/secure-boot-debian-local-patch ${TARGET}/secure-boot-debian-local.patch - # patch postinst - sed -i -e '/configure)/r ${WORKDIR}/postinst.ext' ${WORKDIR}/postinst # add hooks for secure boot HOOKS=${D}/etc/initramfs-tools/hooks -- 2.20.1