From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6808879013169201152 X-Received: by 2002:a1c:750d:: with SMTP id o13mr4730949wmc.54.1600259059854; Wed, 16 Sep 2020 05:24:19 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:230d:: with SMTP id 13ls991523wmo.0.canary-gmail; Wed, 16 Sep 2020 05:24:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzFNvTz2eed18JxE02homz7fHO0/hP3/hl24COU1XJTmaHipJjrngrJOZiopFBHnF95AAfG X-Received: by 2002:a1c:b407:: with SMTP id d7mr4708704wmf.59.1600259058871; Wed, 16 Sep 2020 05:24:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600259058; cv=none; d=google.com; s=arc-20160816; b=bUyUg4oF8WZvnSxVoyiX2EeOzNYVt3jOkhseUzgQNtX2GWsO934Q4x/Vobx+QdXpPS DyIHnn8m/E5hVnr8RKMyt1ziFxKHHgvNLn4w02bypHce4oEhrrI/MWmI3Rly6+20wWu+ zfCzC+t0tD+D/k3pbxvQAW+XdTdyIW9RflULG/gISk0oWfDNO25ZpEvvpQh950bl17hw yb1cAnxRPA6dh1G545Ya7hEr3Lg6hhrAZnpCvm8qL2waWt6y+G5NJgH+8gmaKmRjeSoF OogIjwkF7xpiQIBzet16veYWjBqtJZqz4/J6P1OzKQr7NiA1w0Jt6H5z7T/6TP1L+eC4 bJ6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:date:cc:to:from:subject:message-id; bh=s9g//1ZTZsVBqzpSgEG0sRG7QLCktlIb6cBwEXgqyfQ=; b=xw8J07dbj6HtzzX9Ia/wV/zdf35D+Zo3WyWsCa0/zXv+PDCMMlX3Oid5ub1Vg9cqEH hRdJBGDeCX8As9CJhKc7IgcN1imfnhF4k1onm/YqB+3wiAmYTtxborxJVyEKs6+caSVJ k7jK4DiZgj3rq3BgjriwQTOZeG21yufEOLRqmPYAEv2JBmn1MrDvu2XK9QGE6w1o/5S4 TBh+qAFKp5pAiJVoTAWlXaViQ5QSUDaTEkz5i/46i3MU2/0d0v0m8CjWXdejNX9SSoI9 RR8ewSa/fc5lrIasvgjCfrgLMjJ49kIFTpn3dnvGmTQA1AYQ93HXmzrdH9jPHo3dSlwF oGqw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=neutral (google.com: 212.18.0.10 is neither permitted nor denied by best guess record for domain of hws@denx.de) smtp.mailfrom=hws@denx.de Return-Path: Received: from mail-out.m-online.net (mail-out.m-online.net. [212.18.0.10]) by gmr-mx.google.com with ESMTPS id z62si79578wmb.0.2020.09.16.05.24.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 05:24:18 -0700 (PDT) Received-SPF: neutral (google.com: 212.18.0.10 is neither permitted nor denied by best guess record for domain of hws@denx.de) client-ip=212.18.0.10; Authentication-Results: gmr-mx.google.com; spf=neutral (google.com: 212.18.0.10 is neither permitted nor denied by best guess record for domain of hws@denx.de) smtp.mailfrom=hws@denx.de Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4Brzmf4Mw2z1rwb1; Wed, 16 Sep 2020 14:24:18 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4Brzmf42SQz1qvJd; Wed, 16 Sep 2020 14:24:18 +0200 (CEST) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id 2MmbyWnMSmWx; Wed, 16 Sep 2020 14:24:17 +0200 (CEST) X-Auth-Info: +YBbWgz6UrL+/sa3QsC23yBeEh3o9/leCEZ1SmVYVjQ= Received: from maia (p578adb1c.dip0.t-ipconnect.de [87.138.219.28]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Wed, 16 Sep 2020 14:24:17 +0200 (CEST) Message-ID: <3c3f04a8dd4545e3c7b6812b50924d4fb8ab9aa3.camel@denx.de> Subject: Re: [PATCH v6 1/3] meta/support: Generate a custom initramfs From: Harald Seiler To: isar-users@googlegroups.com, "Q. Gylstorff" Cc: jan.kiszka@siemens.com Date: Wed, 16 Sep 2020 14:24:16 +0200 In-Reply-To: <20200625125646.13365-2-Quirin.Gylstorff@siemens.com> References: <20200625125646.13365-1-Quirin.Gylstorff@siemens.com> <20200625125646.13365-2-Quirin.Gylstorff@siemens.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.36.5 (3.36.5-1.fc32) MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-TUID: KHKWdQnc2hzk Hello, On Thu, 2020-06-25 at 14:56 +0200, Q. Gylstorff wrote: > From: Quirin Gylstorff > > 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 > --- Are there any news on this patch? One thing that just came to my mind: Maybe a mechanism should be added to prevent multiple initramfs-config packages from being installed into the same image? I fear that otherwise it could be easy to accidentally pull in multiple such packages which would interfere with each other ... -- Harald > .../initramfs-config/initramfs-config_0.1.bb | 7 +++ > .../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, 142 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..0eb70d7 > --- /dev/null > +++ b/meta-isar/recipes-support/initramfs-config/initramfs-config_0.1.bb > @@ -0,0 +1,7 @@ > +# > +# 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 >