From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 30 Oct 2025 10:45:39 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-wr1-f55.google.com (mail-wr1-f55.google.com [209.85.221.55]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 59U9jdHe005624 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 30 Oct 2025 10:45:39 +0100 Received: by mail-wr1-f55.google.com with SMTP id ffacd0b85a97d-3ef9218daf5sf626022f8f.1 for ; Thu, 30 Oct 2025 02:45:39 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1761817532; cv=pass; d=google.com; s=arc-20240605; b=kCudxA3vVl0KUwQCfVgB2raU2HoxK8tImCc8pk7sM3p3H20cl3x15GKau7wH0CGRV5 /lHn2VFD2yQWD3a/MunHrc/umd4Ifp/l9tjCfhBaFijglNMlgQMrgs47ROlpx8s0B/Jt nAT3e6RAgM43jjjyZ8CjEpDRxD9tkA7b89Z1SGN7tTopRMXoGy+KElEd0cANlgWRVQ2g qReOELhgx7Oi37iyK3Ii/IxrwIZQt47O+IEM9PK75KFQ8djBvfKpjebOxfyk1ULNsvBm H3KyFyTqR7l2cF8puam/2YDn/YSdqukUBOSlZV0cN9MMKZ0CxuP6WIsyPc6czuvUhqW+ lcUg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:feedback-id:mime-version :references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=cGTp2iKM0BStjTcFY1sj9OQeAuLI/8VJpXKnjKTZ2Hg=; fh=8dBqxkwjdXYCwTLsvytFi8byzBTY6jH0/+1b0VsJn4U=; b=A8zV2Sr5XmhLYEUaJlW0ladLC0NdU1/nW6Q1RhwJhLa/a3gBvmdR0UGTUqWOdN9wCs tEP25K1J858uGK8l2U6JAW+/O4xqT03dfILjBd7fxFYKlCT0FQ44yTskHhAkMrVz+b/j JihJOBLPEvVM+gCRlpT52cie4SjG0XeEhT1Q6mYTIJj5QZTJGisnipNSopZyBSFNBWFE kd/grYuOaSmDNHOWqTmPENm9NUOBotw9T1vkw4clIBV0MxK8TUECbmsQOsKqD37X6VZp IdMtBOogNtMPJFqG/UHEI/epwOeevci/vzqw07+BpCN5I4AHmXhHs5LPHwLjcxm2Sztj MSYA==; darn=ilbers.de ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=A976OXhV; spf=pass (google.com: domain of fm-51332-2025103009452857d3418432000207b1-cknloy@rts-flowmailer.siemens.com designates 185.136.65.227 as permitted sender) smtp.mailfrom=fm-51332-2025103009452857d3418432000207b1-CKNLoY@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1761817532; x=1762422332; darn=ilbers.de; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:to:from :from:to:cc:subject:date:message-id:reply-to; bh=cGTp2iKM0BStjTcFY1sj9OQeAuLI/8VJpXKnjKTZ2Hg=; b=prT7DtBoDCnM4tqED+nEJlR2ye5fTwKr/dUUs7i5wRvjyPwCUc5E8g2g0rGRp7OALu cKzCwW3mQOCN01Aq5coAy9SaDd5u+At5MEvu2AzD+OB4laJ0s3n7zTULpmOysUGF/sLY 9PF6PiHCIwL/9rDjnVQf8InEcqCUynOyDDiwTWjq80LsH9v9voU1UDbYTyLI0VTbD2bZ 35okgm2lRbSWOyyn+1R/i/avptn9E7CDeH/4QxFE67sgZe8reDZekqVQloT2yGYF/t1Y waWzVklJE/i73DvQfyL7TS44orb9cFt8myzXPpIwEOgiV+iPD9sPDMNdOj+1Z08cpBEG uiGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761817532; x=1762422332; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:to:from :x-beenthere:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cGTp2iKM0BStjTcFY1sj9OQeAuLI/8VJpXKnjKTZ2Hg=; b=dMJaqnD63jr/4TGaETvLL6d7K4ImTH+W+D0kjns2cPH1wejY0rYn0VwdMExErMBgBj Hbo500WVGTb3WDuSeynUkyhxj6meYi+79vWbIlJQyacxHBjzGoOe6LL8IPMUOYntnAKQ muXn2JS/TBjgWW4LZRCcrF6CDXEC0zk6rVFqaXNQ8Cwrv9LMNWOZ3okDuHj0myer2z9+ cVLl1IZtDPLNQEht+4couoV7cijB+OZZqpMiZpLbt2UVHnRduqi004ZUNGTN81l1MZzw BbI5cWzncDAp2bmhpQMBV24TODYK6CdhtjgWyTI+DryvD/mYUviq6caxXrwE45P1A4z6 0G1g== X-Forwarded-Encrypted: i=2; AJvYcCWw7gO4g/lmT3375XLqHhdLhK7Z92mhXao/AjCsI/zodvsGCZhJjow/7W3wbG/ZCgIf1ooj@ilbers.de X-Gm-Message-State: AOJu0YzJFnQSKQPVYUMzX6BfdQjEDCIrMVwrDmlOihMfAI8jr9VgYkob KVjVRipfCPoKDucPSgC7LrQVd3zbuuxk4xlp7vb0lhiaDu4+gZIqd2e1 X-Google-Smtp-Source: AGHT+IF0rFRCghTCCdqC3UYLypExKexoO1Ps2F407KlUHTxI2VBUCj7eHND4oLjxBf9kKp0K/2AFRQ== X-Received: by 2002:a05:6000:144b:b0:427:914:7468 with SMTP id ffacd0b85a97d-429aef81c0dmr5340990f8f.15.1761817532302; Thu, 30 Oct 2025 02:45:32 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="Ae8XA+buYQZSmx7so3Tz+BMdiklHqSJv3T5WC5FCGYYG+ujSEw==" Received: by 2002:a05:600c:2253:b0:477:1f1e:ec0c with SMTP id 5b1f17b1804b1-477274ce3acls3983875e9.0.-pod-prod-02-eu; Thu, 30 Oct 2025 02:45:29 -0700 (PDT) X-Received: by 2002:a05:600c:8714:b0:46d:5189:3583 with SMTP id 5b1f17b1804b1-4771e1196f0mr51706835e9.0.1761817529135; Thu, 30 Oct 2025 02:45:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1761817529; cv=none; d=google.com; s=arc-20240605; b=V2THxZLcPE/1gBMlBW9OB46A/3N3y6qcEIozhxb46edm+RWgVd6bibCmcz20Shh1N0 Ueo+MD/oqHxYFtkg8C+gX3RwDMjPACdi27zhvvye/apT5YKhA9gQhPuUH34VGTHYEj/p 5g+ZTnnB4toRlTMqxGUc3QhR46pL8hQaeBqZu81oX+WZr0UY3oqG/k78XIMJd0JJd29n ZIVOiKpxSePYAYLku9NtThfOuPJVVzFAxzAhr2fUmzROqgRhxtj1AoBsfAL68B5ihHaX 9Laxb/EvlLGRLKa7VeGPIDx7IZ0JzEHKKYDXBJer9FjY1cJacLCmhr7DAEWFKUI0mYKY NxEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=feedback-id:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:to:from:dkim-signature; bh=Wwzf3F0AD2+83HyYArppX0U1/Kg+hDvaDNp1qH9/fME=; fh=pD9NMAE6punlmxDz2SM7DMFwkWrKOHAvTYxfub7CxRs=; b=iPhvF+2ifJBN2cKlpbdbCosUCY70G++IRKvt1veIsBeS1YwiyaT/cX+l7R99A/pJvg IpvaQEQ2sB3g+/IvZv3T/oDE4PTX7PP9lnsw+mIkFomnw34nCmJ8XOE0O8U9J36+58BT LzUPIkHSEwHAYy/bmO7wxVmmpPEHBntxeGNvSkiZ7Zw1qS2o3bxF/xOmQU+WLuYM8SFh 6K4Ek34XRkgVx+X11HCYb6R6sYJfuY5d/lbN6/plMuysRE+ToxmDMMUzCBfemqrz5K/1 AANFHISgkyrmRTxs/0iYauT3UGpJczC34cRe0/carfbd2d4B+9g2jbHG/4zQVKCbEGl4 cT9w==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=A976OXhV; spf=pass (google.com: domain of fm-51332-2025103009452857d3418432000207b1-cknloy@rts-flowmailer.siemens.com designates 185.136.65.227 as permitted sender) smtp.mailfrom=fm-51332-2025103009452857d3418432000207b1-CKNLoY@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from mta-65-227.siemens.flowmailer.net (mta-65-227.siemens.flowmailer.net. [185.136.65.227]) by gmr-mx.google.com with ESMTPS id 5b1f17b1804b1-477283a4cecsi168665e9.1.2025.10.30.02.45.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Oct 2025 02:45:29 -0700 (PDT) Received-SPF: pass (google.com: domain of fm-51332-2025103009452857d3418432000207b1-cknloy@rts-flowmailer.siemens.com designates 185.136.65.227 as permitted sender) client-ip=185.136.65.227; Received: by mta-65-227.siemens.flowmailer.net with ESMTPSA id 2025103009452857d3418432000207b1 for ; Thu, 30 Oct 2025 10:45:29 +0100 From: "'Quirin Gylstorff' via isar-users" To: isar-users@googlegroups.com, jan.kiszka@siemens.com, felix.moessbauer@siemens.com, cedric.hombourger@siemens.com Subject: [PATCH v5 10/12] Add dracut module helper Date: Thu, 30 Oct 2025 10:44:44 +0100 Message-ID: <20251030094451.1303871-11-Quirin.Gylstorff@siemens.com> In-Reply-To: <20251030094451.1303871-1-Quirin.Gylstorff@siemens.com> References: <20251030094451.1303871-1-Quirin.Gylstorff@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-51332:519-21489:flowmailer X-Original-Sender: quirin.gylstorff@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=A976OXhV; spf=pass (google.com: domain of fm-51332-2025103009452857d3418432000207b1-cknloy@rts-flowmailer.siemens.com designates 185.136.65.227 as permitted sender) smtp.mailfrom=fm-51332-2025103009452857d3418432000207b1-CKNLoY@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Quirin Gylstorff Reply-To: Quirin Gylstorff Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,RCVD_IN_RP_CERTIFIED, RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-TUID: H979YQBhPif+ From: Quirin Gylstorff This adds a helper similar to initramfs-hook to generate a dracut module. Signed-off-by: Quirin Gylstorff --- .../dracut-module/dracut-module.inc | 88 +++++++++++++++++++ .../dracut-module/files/module-setup.sh.tmpl | 42 +++++++++ 2 files changed, 130 insertions(+) create mode 100644 meta/recipes-initramfs/dracut-module/dracut-module.inc create mode 100644 meta/recipes-initramfs/dracut-module/files/module-setup.sh.tmpl diff --git a/meta/recipes-initramfs/dracut-module/dracut-module.inc b/meta/recipes-initramfs/dracut-module/dracut-module.inc new file mode 100644 index 00000000..a5f5ab51 --- /dev/null +++ b/meta/recipes-initramfs/dracut-module/dracut-module.inc @@ -0,0 +1,88 @@ +# +# Copyright (c) Siemens AG, 2025 +# +# Authors: +# Quirin Gylstorff +# +# SPDX-License-Identifier: MIT +# + +inherit dpkg-raw + +FILESPATH:append := ":${FILE_DIRNAME}/files" + +DPKG_ARCH = "all" + +DRACUT_MODULE_SETUP = "module-setup.sh" +SRC_URI += "file://${DRACUT_MODULE_SETUP}.tmpl" + +DRACUT_MODULE_NO ??= "50" +DRACUT_MODULE_NAME ?= "${@ d.getVar('PN')[7:] if d.getVar('PN').startswith('dracut-') else d.getVAR('PN')}" + +DEBIAN_DEPENDS = "dracut-core" +DRACUT_MODULE_PATH = "${D}/usr/lib/dracut/modules.d/${DRACUT_MODULE_NO}${DRACUT_MODULE_NAME}/" + +DRACUT_REQUIRED_BINARIES ??= "" +DRACUT_MODULE_DEPENDENCIES ??= "" +DRACUT_CHECK_CONTENT_FILE_NAME ??= "" +DRACUT_DEPENDS_CONTENT_FILE_NAME ??= "" +DRACUT_CMDLINE_CONTENT_FILE_NAME ??= "" +DRACUT_INSTALL_CONTENT_FILE_NAME ??= "" +DRACUT_INSTALLKERNEL_CONTENT_FILE_NAME ??= "" + +def add_file_if_variable_is_set(d, variable_name, prefix): + variable = d.getVar(variable_name) or '' + if variable: + return f"{prefix}{variable}" + return '' + +def replace_marker_with_file_content(template_file, content_file, marker): + with open(template_file, 'r') as template_fd: + tmpl_content = template_fd.read() + + with open(content_file, 'r') as content_fd: + content = content_fd.read() + + new_tpml_content = tmpl_content.replace(marker, content) + with open(template_file, 'w') as tmpl_fd: + tmpl_fd.write(new_tpml_content) + +SRC_URI += "${@ add_file_if_variable_is_set(d, 'DRACUT_CHECK_CONTENT_FILE_NAME', 'file://')} \ + ${@ add_file_if_variable_is_set(d, 'DRACUT_DEPENDS_CONTENT_FILE_NAME', 'file://')} \ + ${@ add_file_if_variable_is_set(d, 'DRACUT_CMDLINE_CONTENT_FILE_NAME', 'file://')} \ + ${@ add_file_if_variable_is_set(d, 'DRACUT_INSTALL_CONTENT_FILE_NAME', 'file://')} \ + ${@ add_file_if_variable_is_set(d, 'DRACUT_INSTALLKERNEL_CONTENT_FILE_NAME', 'file://')}" + +TEMPLATE_FILES:append = " \ + ${DRACUT_MODULE_SETUP}.tmpl \ + " + +TEMPLATE_VARS:append = " \ + DRACUT_REQUIRED_BINARIES \ + DRACUT_MODULE_DEPENDENCIES \ + " +python do_add_additional_dracut_configuration() { + workdir = os.path.normpath(d.getVar('WORKDIR')) + module_setup = d.getVar('DRACUT_MODULE_SETUP') + module_setup_tpml = f"{module_setup}.tmpl" + content_file_name_to_marker = { + "DRACUT_CHECK_CONTENT_FILE_NAME" : "# ISAR_DRACUT_CHECK", + "DRACUT_DEPENDS_CONTENT_FILE_NAME" : "# ISAR_DRACUT_DEPENDS", + "DRACUT_CMDLINE_CONTENT_FILE_NAME" : "# ISAR_DRACUT_CMDLINE", + "DRACUT_INSTALL_CONTENT_FILE_NAME" : "# ISAR_DRACUT_INSTALL", + "DRACUT_INSTALLKERNEL_CONTENT_FILE_NAME" : "# ISAR_DRACUT_KERNELINSTALL" + } + + for var_name, marker in content_file_name_to_marker.items(): + file_name = d.getVar(var_name) or '' + if file_name: + replace_marker_with_file_content(f"{workdir}/{module_setup_tpml}", + f"{workdir}/{file_name}", marker) +} +addtask add_additional_dracut_configuration before do_transform_template after do_patch + +do_install[cleandirs] += "${DRACUT_MODULE_PATH}" +do_install:append() { + install -m 770 ${WORKDIR}/${DRACUT_MODULE_SETUP} ${DRACUT_MODULE_PATH} + +} diff --git a/meta/recipes-initramfs/dracut-module/files/module-setup.sh.tmpl b/meta/recipes-initramfs/dracut-module/files/module-setup.sh.tmpl new file mode 100644 index 00000000..be0f4c54 --- /dev/null +++ b/meta/recipes-initramfs/dracut-module/files/module-setup.sh.tmpl @@ -0,0 +1,42 @@ +#!/bin/bash + +# called by dracut +check() { + + # If the binary(s) requirements are not fulfilled the module can't be installed. + require_binaries \ + ${DRACUT_REQUIRED_BINARIES} \ + || return 1 + # ISAR_DRACUT_CHECK + return 0 + +} + +# Module dependency requirements. +depends() { + echo "${DRACUT_MODULE_DEPENDENCIES}" + # ISAR_DRACUT_DEPENDS + return 0 + +} +installkernel() { + # ISAR_DRACUT_KERNELINSTALL + return 0 +} + +cmdline() { + # ISAR_DRACUT_CMDLINE + return 0 +} + +install() { + for executable in ${DRACUT_REQUIRED_BINARIES}; do + if exec_path=$(command -v $executable 2>/dev/null); then + inst_binary "$exec_path" + else + echo "(ERROR): Unable to copy $executable" >&2 + exit 1 + fi + done + # ISAR_DRACUT_INSTALL +} -- 2.51.0 -- You received this message because you are subscribed to the Google Groups "isar-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/isar-users/20251030094451.1303871-11-Quirin.Gylstorff%40siemens.com.