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, 24 Sep 2026 09:24:04 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-pf1-f183.google.com (mail-pf1-f183.google.com [209.85.210.183]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 68O7O2g8018980 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 24 Sep 2026 09:24:03 +0200 Received: by mail-pf1-f183.google.com with SMTP id d2e1a72fcca58-8696b921ac0sf1358036b3a.3 for ; Thu, 24 Sep 2026 00:24:03 -0700 (PDT) ARC-Seal: i=3; a=rsa-sha256; t=1790234636; cv=pass; d=google.com; s=arc-20260327; b=bmajESqHgywR5B0KKfcCZ7N16MOea5/TkDKdZWaiZuY0BvJol2ZC3g0nnd5KRhz3bJ bceYvW2kSG09P7RjAIlIFfYIN0KiIYc1AMcQItya0IWpt1BRn90eJyEt1mEcngkiGK/c SUaN/KaMddsF32XCfEBFPGmIjSnW72rkAgoHcpieqSLhxNbQBnsRlhJRVMhMWcRn0B0q +cZsHan+Tv0CPzbr4ON6RFgGV1d+vdNRygUv9JkL3RsAKf8sNgxR9UYTwwfJINpYOQKJ zWsnGmbwIMA2k1xl+DD5mc+CwuEGvKLRpLPuvTU1gSjnhNjCsJVoCifeYcZXqulSOyzQ Mefw== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=ubB0+glu8b6mzbLDiLBy/tfQZOSh+SOjHQo75mIWWzI=; fh=DIC7320mJyn55IfGNqcwBWOyD4IFrl/YzYHl7oPbW5g=; b=UnDbeOssfrimOvKwAqyktjJZZ0XRgUnmF0gKAMbNJ1Uv0v/+4uqG3BVIpUS9Zsfm8K 3XRuFVggYVsKDqrKC+ERAWj5DXifHJ5WjftNZTyeZF7v2vSomU7SlZTuGKCAXJWDEA8A Zep5TbS7tsh2nmVCPC3iYGNldaL4LM4qYgmPJUOLipaafydU0FWdKFgtrTXXxRBrf3d9 H/pSSr30rgeA2iLz++uhVqqEXIuP3VBjVUViuGdEzw7917q6IfczKhabPjNxn/yVPTzv V5cg1ET6lbppe2D0vF/ubiveZwG6JbpNXGFmyhqYkvl4bzwu2cS0I11l7m0EcwGMiMxH 2KdA==; darn=ilbers.de ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=eB1pyjzi; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c200::1 as permitted sender) smtp.mailfrom=felix.moessbauer@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=20251104; t=1790234636; x=1790839436; 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:mime-version :content-type:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=ubB0+glu8b6mzbLDiLBy/tfQZOSh+SOjHQo75mIWWzI=; b=PZInRm4GkxOO31MqNvLWsE4RmbQHOk71ZAvbnw0M1YmiIkMIWyMB30hng9nTWRpRII PsR/W1T3r888QYNKAlivNyb8znWfRfeNCwJb6QeudTp+547II7myknfwnxBNQMaZ4/Va Bwmo2Y0DxNEgUXdiOm8t7EjoVCm7RIjigQ3LCqPWtu7llMwB/4tiejsshLxguKMSNmEC FUGuSql/vyCJzfAtrlNopWnpdMxGw4uP0amfpwIotWSyZcysEblrMVp7ARNuphdt8T2/ VY1ViO+pwGZAW3YwZEQPpgOrfG+pLIpY2zyBMngqwcJyLfHDyQoxe1PPXUJB9q0uJ2Fn MDGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790234636; x=1790839436; 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:mime-version :content-type:references:in-reply-to:message-id:date:subject:cc:to :from:x-beenthere:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=ubB0+glu8b6mzbLDiLBy/tfQZOSh+SOjHQo75mIWWzI=; b=nX6Y/vzXvgFG8h627yIfm06/i8xh6HuJ78Hh8CGRqwAgegY/Dcaa9rAQ+ENsoNq4Wl 88VLrocXKhBfnC23IMB9A/d4vUkrjWZ4J+cA/X17IECqbg0Mj9ei8ku5hLDQUIIMPT4d uc2PyvehS3fokf07qKZFs0bPV52NQLF9j6PRSFRzJAo0D0cxAKi50afIvseKVGHc7e7q ixL7o5v5LbRfAPQFGXlR0x+HS6X9ulfJyq2zghyWcgQBs0K2lloMSzgWgJJAUHDo9/hH kpp4TlZ5up+ojhbNB2bijMf5JwUXMlE1se56yWin30t6AaOpzus+MT8LUeeyK0oARFmD 3/Vw== X-Forwarded-Encrypted: i=3; AKwUvBwWqpM7P2BonZ37raa4MvB1U1vwalYWnwwyRucdQf8z2xauqLIDmdIabajFEG0jGDbTBMQf@ilbers.de X-Gm-Message-State: AFuF++leF6S7i0RTTvdDfc6BKuDYvhL0bqMsmTRLf5QfWmLj0eSvmeMJ 4ehDwRS6ZFNPlwBMBt1NEkufP+CrEjhvhSV0sVGRquoJhsWaadySNoLC X-Received: by 2002:a17:90b:3d4c:b0:3a0:9640:8028 with SMTP id 98e67ed59e1d1-3a098fc393emr1307321a91.59.1790234635822; Thu, 24 Sep 2026 00:23:55 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLdfhNFk6JFpjK9GNttf1l0bCcWrG4uUsXQuoRbfDrlSj1w==" Received: by 2002:a17:90b:2242:b0:39e:5338:8a96 with SMTP id 98e67ed59e1d1-3a02680cefals8780130a91.0.-pod-prod-05-us; Thu, 24 Sep 2026 00:23:54 -0700 (PDT) X-Received: by 2002:a17:90b:39a8:b0:39b:3109:10ce with SMTP id 98e67ed59e1d1-3a098cd46bdmr1290707a91.16.1790234634325; Thu, 24 Sep 2026 00:23:54 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1790234634; cv=pass; d=google.com; s=arc-20260327; b=rflnCufMveU2TIBf/XpTBzaMdnfvfogye6DJjcARrx1zMfr/8LCxeIpel/4mB9YDWo DNc24lcuv43012Y54azz2LUbklf7wISlLABONZh4Ii9Wleg/FFTX89iaL1Yob4fb2QVl TgdsTD5Q3cP4bU8noe7qmHV8fT+5Iu50gzJhJARg2qpKQ1i09YuYaVzTo2QV9Twu//0g LmPETIFZICxqdimhMJBpMHDDQvYcqoyMW+Z/D418sFoDLSS5bQ1i2QBdMeHS89FKLfH3 eeVllDk0wQ8yBY7p6mOf6iFs2CJjbElRsPFaVi9K5xvc+xPjPrppYjnNotmiSNyYlVpa QFAQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=Cjb/GBSmq6C+oDLPs1pVQ3uVi66oK4U5tn+W3QSt16g=; fh=FYARRfYWSZi+xaBGHs/WkhcniURPXOu7KAfLF/5BK1Q=; b=fhyHgo5RmuY/3QAyxL32mIdczcr5pEEQZKlNF5lKZDceql77eNxeWyAOp1CUyw88KZ xYaPsbmeteAORar6C4BZSvSZ4N00B3wQmSQfM+OS04wRi/wuFCnFGyDTKRl5zNzyniRn 5FT5zWjK3oEfplplcza8YEbdhCjWIgYP4BvlQNb6Iu9UPDcYdJP8fOrZSFeSIb2hpv8C Kpyge0nlp//+HXTR/QyN/jYgL323iuhJY0DdoBi/cm1q54qHTddYq+JFCq10NIwS14Le 62vDQKLqKtql112BryBsMSDPkFxCJuUrWMTmgWWBAm7WqsCux5U9s0D/CGolvjbgJ23I BikQ==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=eB1pyjzi; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c200::1 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazlp170100001.outbound.protection.outlook.com. [2a01:111:f403:c200::1]) by gmr-mx.google.com with ESMTPS id 98e67ed59e1d1-3a07fa6cef1si95994a91.1.2026.09.24.00.23.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Sep 2026 00:23:54 -0700 (PDT) Received-SPF: pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c200::1 as permitted sender) client-ip=2a01:111:f403:c200::1; ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YK3yFfUkcEA6i800FpZsBrKkSIBqegU1dfwHSbz2xp0uxGVFTiwjT3mqXedgehGwYNEdSziZpEqdCZPsAg44Q5CvUedSBIgp2u1ovXtMObDfsoLZdere/OLpWedi0rrqIJpAYVwS/jeko0b7EWdFM92RxE5bPIjCVPtnH03elrcm3MyJu2vECshaqsNDxWlEIII/JxT8Fy0qFEvDTE3ypueqvg30Xr/Bq/TVhRprnc9kc4IDXAy1xBuXSRuYEMh/4ZYYDpcoF3HP4NUV7d9AX/wS6nQyRT5Tf3QzMDwUI/olThRgjwoClljQ9OjyM4ZaVpqF9UDY9zTsIlc4tDxyaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Cjb/GBSmq6C+oDLPs1pVQ3uVi66oK4U5tn+W3QSt16g=; b=uH1QBIyR5+H4kuIqUVsf6G9nV1/O1EB7Z7KfesUHicR2qIyrbMpRWciY6uj9vxMqEWQISTQGHpV+oDCQKQTTUp0lyUWKdEHjO+bW8vDAD65p592yex9g2grruXDJEcIpidc8uwBwWP1YIwNnTGCVcDldHmZghTHsxinowrHyXF388PwqvpJ328UdOe8ke/c8swqyDtYeUoECrSa1VHD+ebv02GZsZo/GPYuTEwaw2b/wRUvxXCtVbOcf5I2nAqSTHk9RziaFJ7YFt3roHRMRlTvPGDeWPBZUAoGW/TY/mJg0Dg82QFBb20o9jEoDVAjZwy0PIpuhxXlo+5b1Z8jpeg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com; dkim=pass header.d=siemens.com; arc=none Received: from AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:17e::10) by AS5PR10MB8146.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:673::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.18; Thu, 24 Sep 2026 07:23:51 +0000 Received: from AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM ([fe80::c54c:ccd8:ebbf:477c]) by AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM ([fe80::c54c:ccd8:ebbf:477c%3]) with mapi id 15.21.0451.014; Thu, 24 Sep 2026 07:23:51 +0000 From: "'Felix Moessbauer' via isar-users" To: isar-users@googlegroups.com Cc: quirin.gylstorff@siemens.com, jan.kiszka@siemens.com, Felix Moessbauer Subject: [PATCH v2 7/8] dracut: add support for cross initrd generation Date: Thu, 24 Sep 2026 09:23:39 +0200 Message-ID: <20260924072340.4038396-8-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260924072340.4038396-1-felix.moessbauer@siemens.com> References: <20260924072340.4038396-1-felix.moessbauer@siemens.com> Content-Type: text/plain; charset="UTF-8" X-ClientProxiedBy: ZR0P278CA0003.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:16::13) To AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:17e::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM7PR10MB3956:EE_|AS5PR10MB8146:EE_ X-MS-Office365-Filtering-Correlation-Id: 70dc0b8c-4667-4f8d-c55b-08df1a0cc883 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|10070799003|366016|1800799024|376014|11063799006|56012099006|3023799007|22082099003|55112099003|18002099003|10067099003|6133799003; X-Microsoft-Antispam-Message-Info: umGbyhaHzyMYcC/yiGWStXln9el4vhOPfF/ZhJcKuEk9AmqKo3RYfFFNSa5j/Jugp5QeMlZKbrnYutNlu0IJ9kXv1BLW7+up049BbTU0RgCSABOb5TG5/OV2KV/QAUHZOVKfAzeTo27HoTEv+SvEu0C90i7lGpNoxIQR1N6Mt8ZLPyYdoxVdIGW12F3WN7yEhOpat3Z0Ou4e7ARcPUeWnDiaAHUkEgTaOm25Sa0kIi+vXoS19ohsjrBV18GlGh5AaS1uSb7pK5jQ5P214KrPSbyOTJXvaTNH/Fv21O7zC/DPOhIaJKTXI/GnBKzqe8FzgXIpx0+aYbtA3Ome0iXKCYdYWHOhN9cocHZ2MsEQGjzomxUexaWRSMqVMGkjondtTGmcWDo5Um8rws2V3Wutg1LZMys5qnBROCVV4Ww80DFAoa9VurYr7szuqADkR8KCg+dvvbcKQW0BkJ8GNghijxrdyDrtSq6sQJWTsjVenuz08L2j1VhVRPrNmMnzwjmpuMxFfh3Xfoq6gu9Rb8aSL6url2kkfH87CWWhZlK9BadgRp00SsqYL8KsVJHXcZXSwvCGeeZcQyzJJfENXXeCTk7kxpGTm9k4su9J3kB8WeFKNxwS++KV4QMq4buw1mZHljOCOR8CZhij+2QE9n1WRIXG0kqG3tg47/PMCGr8+8M= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(10070799003)(366016)(1800799024)(376014)(11063799006)(56012099006)(3023799007)(22082099003)(55112099003)(18002099003)(10067099003)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?cmsP0SCrrGmGVJHEJ0+1d6bYrmYgqpqAJ4QxFvFyY0joE5NITou+QixfOVTb?= =?us-ascii?Q?FsszjG0XBKSdoeQWBZA1D4f8SF781rk0q37IwoEgnMeW0whKZNpvqVf9p8V+?= =?us-ascii?Q?qKK67+PdcnhepyT/gqiT5MMBNTKKtOdNMYRGlqxEwLDTEUld7KvDvEkvtqF0?= =?us-ascii?Q?IIK6JrjINAh5y8AiDIJdZl0FW7D2Xmc/Qk6JBvipRu4vzEbncfgUSupJZqax?= =?us-ascii?Q?n2QuQymjNIzhj+8FW9R3G0Vx6Gba2pkIyyaGQTVMmxawzNBWsUit8z09hxhk?= =?us-ascii?Q?hab+mPl1ZwWF88wCPqPt5NrVfsJtFBqpTEHcI9YVYnIgn5T/AVVNaHjUY0Md?= =?us-ascii?Q?i4yBLNDqt+1H1u9ULGu5BnqgjMSR9WidCwYDPWeHZulU565yOYx+UA8Z0Gwj?= =?us-ascii?Q?CFRz3iD9r16RRXpE5lgKI795xGqnTl8F//pjZ9/YJfJQsvmEYazi4ta34Ir0?= =?us-ascii?Q?97BWasCi7YVmohrvZ2AM+9GzXgjsWo+n/jblbEicMq161wHuKyB3oBRaz2G+?= =?us-ascii?Q?/wIyojEJUw7qpTAObMzuPZLBwS2jvhlh3Xl/CpbGv6eMXTj4uQZOfXo4itRF?= =?us-ascii?Q?tiKzC6+X4JEsHSffXnFlEY8UrxVYlUWvspKOVRtJcgbs7MZdS1ZPGGxKoyI1?= =?us-ascii?Q?aMyIbBHo99ScigtS6IVmvCPOwcGawZiQ45qvJrvfea18tMn0vctfLi3E14rW?= =?us-ascii?Q?6Muc6+u6RRvaTzlq163MqKJXj+cgUeAcGEBDm18M59bSe7ogWA2T2HITBw/z?= =?us-ascii?Q?rUSr16j9xKJdcCobVL2NXm2ud6vsYiZtiDigii8YmpFjoCyrklB0+5Z9VY48?= =?us-ascii?Q?4s/lIhvk5BDwQfQRp9JqOwnrJVhwRllK8tt/OgZU4g2qg6SDpuck4voAn8aG?= =?us-ascii?Q?tRPs4rsSpPNZMKtOVqdjbUMfcv0kbAF/rbZhG+eWt0q0EINleJ3uDwPlJeFN?= =?us-ascii?Q?HwAzJse3Nc9pwk/MEAJVa6uHH6A5CKuRD3dzUNOzql4FGIZzk4y18ZdNXXFb?= =?us-ascii?Q?4qGxcoZ2o4PT/E6+ikb5+ca06hDlglv+sy3bfSMc/iiKqdJMQsQpb5ccu3ul?= =?us-ascii?Q?1DRBzY6ysFmJyVR6J5aPc0B2xPu6a0si9gvlnNz8uDd37Ir+7RJj1kFhQgpb?= =?us-ascii?Q?8DSx94zM8YlgWGLLL04hd+Zj1YbQnDqNSp/ju0RFiTRI5rgbxMF35sVeAKxK?= =?us-ascii?Q?ys5IvTNjT0Dath/8uFa5u8wAjRbbxkYrVdDQ1HkRwx0Qq2w0uSZGT08unGSP?= =?us-ascii?Q?MRSMsjmtD62jvDwnUcyReeBMB+nrpCuBeoqoORztvJLb+zoQD9gyjNf4rMng?= =?us-ascii?Q?jRoanQVoZvE2n5pU9zzOp2mGMe1D3pYjvTVRfESUwBu5CWwHl6kVArp3YvFt?= =?us-ascii?Q?YEejsz9lDbTgasMnDv30DAMr5qzdlMpKpvkY/OUJOBmPSvaawx6E2hN6DdiN?= =?us-ascii?Q?alRunPeSsF5gN/AbR5N3Ny86Man9QDkZuSg3D20bFSFL2bVU4tuDeyexeKkv?= =?us-ascii?Q?Umkf5GwssKOo6QJ1j2KjgDinhV8e8c7fR33SjHR2ehqQkZzkVEi4jWSSMM1T?= =?us-ascii?Q?hf/Y/V26IMoOwvXcY+qv2lLp3thknirRnq0O2KEmvmokEkjAjJTTA3JJZUTK?= =?us-ascii?Q?nhb3s85GxJMcrG9lrlybMdJf5cBBniwmlf1txvofz2LL/NIF0yjHqUVgMJry?= =?us-ascii?Q?OG/splxNVB3hHr5hW3IBM6ityCuHLYGyE95yXsoH5I/HOvtvF+hupEoI3Bm7?= =?us-ascii?Q?Pe80pO3pdYteM5hIK5Ptoi/fIEq5RK8SoZMPOdsq+tkPEsu/YJ0ppOknDTBP?= X-MS-Exchange-AntiSpam-MessageData-1: KJf9t8Rq1IpWYypZNpJd40lygR/3Kcwe594= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 70dc0b8c-4667-4f8d-c55b-08df1a0cc883 X-MS-Exchange-CrossTenant-AuthSource: AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Sep 2026 07:23:51.7234 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: BrpRWylPFAK1GRgNjHUwq8H4TDz4e9dl2bPJFmSBNp+kUKOTAjwSdMvvoGrpImIYXVnH7ZwMbQHp+iTCuAcPxrjoaNdqf6+jVwOPe2D02NM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS5PR10MB8146 X-Original-Sender: felix.moessbauer@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=eB1pyjzi; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c200::1 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Felix Moessbauer Reply-To: Felix Moessbauer 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_H3,RCVD_IN_MSPIKE_WL, 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: BjI8HcEHEfvR For cross-initrd generation, a cross variant of the ldd tool needs to be provided. As there is no such tool, but this is THE performance critical part (it needs to scan each binary and all transitive dependencies), we provide a custom one which uses readelf to determine the shared library dependencies. Signed-off-by: Felix Moessbauer --- meta/classes-recipe/host-tooling.bbclass | 4 +- meta/classes-recipe/initrd-dracut.bbclass | 38 ++++++++++- meta/classes-recipe/rootfs.bbclass | 4 +- .../dracut-cross-ldd/dracut-cross-ldd.bb | 16 +++++ .../dracut-cross-ldd/files/dracut-cross-ldd | 65 +++++++++++++++++++ 5 files changed, 123 insertions(+), 4 deletions(-) create mode 100644 meta/recipes-devtools/dracut-cross-ldd/dracut-cross-ldd.bb create mode 100644 meta/recipes-devtools/dracut-cross-ldd/files/dracut-cross-ldd diff --git a/meta/classes-recipe/host-tooling.bbclass b/meta/classes-recipe/host-tooling.bbclass index b76f8898..5e81dfda 100644 --- a/meta/classes-recipe/host-tooling.bbclass +++ b/meta/classes-recipe/host-tooling.bbclass @@ -5,8 +5,8 @@ LICENSE = "gpl-2.0" LIC_FILES_CHKSUM = "file://${LAYERDIR_core}/licenses/COPYING.GPLv2;md5=751419260aa954499f7abaabaa882bbe" -HOST_TOOLING_PACKAGES ?= "" -HOST_TOOLING_DEPENDS ?= "" +HOST_TOOLING_PACKAGES ?= "dracut-core binutils zstd dracut-cross-ldd" +HOST_TOOLING_DEPENDS ?= "dracut-cross-ldd" # dependency to build the host-tooling-chroot HOST_TOOLING_DEP ?= "host-tooling-chroot:do_build" diff --git a/meta/classes-recipe/initrd-dracut.bbclass b/meta/classes-recipe/initrd-dracut.bbclass index 00999b91..e3c9f174 100644 --- a/meta/classes-recipe/initrd-dracut.bbclass +++ b/meta/classes-recipe/initrd-dracut.bbclass @@ -56,8 +56,44 @@ def extend_dracut_cmdline(d): ROOTFS_INITRAMFS_GENERATOR_CMDLINE = "dracut --force --kver $kernel_version -L 5 --reproducible" ROOTFS_INITRAMFS_GENERATOR_CMDLINE:append = " ${@ extend_dracut_cmdline(d)}" +# Cross-assemble the initramfs, requires preparation of dracut module definitions +def dracut_cross_default(d): + return bb.utils.to_boolean(d.getVar('ISAR_CROSS_COMPILE')) \ + and bb.utils.to_boolean(d.getVar('ROOTFS_USE_DRACUT')) \ + and d.getVar('ROOTFS_ARCH') != d.getVar('HOST_ARCH') + +ROOTFS_DRACUT_CROSS ??= "${@ '1' if dracut_cross_default(d) else '0' }" +ROOTFS_DRACUT_CROSS:bookworm = "0" +OVERRIDES:append = "${@':dracut-cross' if bb.utils.to_boolean(d.getVar('ROOTFS_DRACUT_CROSS')) else ''}" + +ROOTFS_INSTALL_DEPENDS:append:dracut-cross = " ${@bb.utils.contains('ROOTFS_INSTALL_COMMAND', 'rootfs_generate_initramfs', '${HOST_TOOLING_DEP}', '', d)}" +ROOTFS_INITRAMFS_GENERATOR_CMDLINE:append:dracut-cross = " --sysroot /mnt/rootfs" +DRACUT_MOUNTS = "" +DRACUT_MOUNTS:append:dracut-cross = " ${ROOTFSDIR}:/mnt/rootfs" +DRACUT_ROOTFS = "${ROOTFSDIR}" +DRACUT_ROOTFS:dracut-cross = "${WORKDIR}/host-tooling" +DRACUT_ENV = "DRACUT_ARCH=${QEMU_ARCH}" +DRACUT_ENV:append:dracut-cross = " \ + DRACUT_INSTALL=/usr/lib/dracut/dracut-install \ + DRACUT_LDD=/usr/libexec/dracut-cross-ldd \ +" + run_initrd_generator() { mods_total="$(find ${ROOTFSDIR}/usr/lib/dracut/modules.d/ -maxdepth 1 -type d | wc -l)" echo "Total number of modules: $mods_total (dracut)" - run_in_chroot "${ROOTFSDIR}" sh -c "${ROOTFS_INITRAMFS_GENERATOR_CMDLINE}" + if [ "${ROOTFS_DRACUT_CROSS}" = "1" ]; then + mkdir -p ${DRACUT_ROOTFS} + run_privileged tar -xf ${HOST_TOOLING_CHROOT} -C ${DRACUT_ROOTFS} + trap 'run_privileged rm -rf ${DRACUT_ROOTFS}' EXIT + fi + ${@ insert_isar_umounts(d, d.getVar('DRACUT_ROOTFS'), d.getVar('DRACUT_MOUNTS')) } + run_privileged_heredoc <<'EOF' + ${@ insert_isar_mounts(d, d.getVar('DRACUT_ROOTFS'), d.getVar('DRACUT_MOUNTS')) } + export ${DRACUT_ENV} + chroot ${DRACUT_ROOTFS} ${ROOTFS_INITRAMFS_GENERATOR_CMDLINE} +EOF } + +HOST_TOOLING_DEP ??= "" +inherit_defer ${@'host-tooling' if bb.utils.to_boolean(d.getVar('ROOTFS_DRACUT_CROSS')) else ''} +do_generate_initramfs[depends] += "${HOST_TOOLING_DEP}" diff --git a/meta/classes-recipe/rootfs.bbclass b/meta/classes-recipe/rootfs.bbclass index 1de27d7b..cea85626 100644 --- a/meta/classes-recipe/rootfs.bbclass +++ b/meta/classes-recipe/rootfs.bbclass @@ -452,6 +452,8 @@ rootfs_capture_apt_state() { var/lib/dpkg/status } +ROOTFS_INSTALL_DEPENDS ?= "" + do_rootfs_install[root_cleandirs] = "${ROOTFSDIR}" do_rootfs_install[cleandirs] += "${DEPLOYDIR}" do_rootfs_install[sstate-inputdirs] = "${DEPLOYDIR}" @@ -459,7 +461,7 @@ do_rootfs_install[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}" do_rootfs_install[vardeps] += "${ROOTFS_CONFIGURE_COMMAND} ${ROOTFS_INSTALL_COMMAND} ${ROOTFS_POSTPROCESS_COMMAND} ${ROOTFS_VARDEPS}" do_rootfs_install[vardepsexclude] += "IMAGE_ROOTFS" do_rootfs_install[depends] = "bootstrap-${@'target' if d.getVar('ROOTFS_ARCH') == d.getVar('DISTRO_ARCH') else 'host'}:do_build" -do_rootfs_install[depends] += "base-apt:do_cache isar-apt:do_cache_config" +do_rootfs_install[depends] += "base-apt:do_cache isar-apt:do_cache_config ${ROOTFS_INSTALL_DEPENDS}" do_rootfs_install[deptask] = "do_deploy_deb" do_rootfs_install[rdeptask] = "do_deploy_deb" do_rootfs_install[network] = "${TASK_USE_SUDO}" diff --git a/meta/recipes-devtools/dracut-cross-ldd/dracut-cross-ldd.bb b/meta/recipes-devtools/dracut-cross-ldd/dracut-cross-ldd.bb new file mode 100644 index 00000000..327a5c82 --- /dev/null +++ b/meta/recipes-devtools/dracut-cross-ldd/dracut-cross-ldd.bb @@ -0,0 +1,16 @@ +# This software is a part of Isar. +# Copyright (C) 2026 Siemens AG + +inherit dpkg-raw + +MAINTAINER = "isar-users " +DESCRIPTION = "Minimal ldd replacement for dracut cross builds" + +SRC_URI = "file://${BPN}" + +DEBIAN_DEPENDS .= ",python3, binutils" + +do_install[cleandirs] += "${D}/usr/libexec" +do_install() { + install -v -m 755 "${WORKDIR}/${BPN}" "${D}/usr/libexec/${BPN}" +} diff --git a/meta/recipes-devtools/dracut-cross-ldd/files/dracut-cross-ldd b/meta/recipes-devtools/dracut-cross-ldd/files/dracut-cross-ldd new file mode 100644 index 00000000..ef60b3fa --- /dev/null +++ b/meta/recipes-devtools/dracut-cross-ldd/files/dracut-cross-ldd @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +# This software is a part of Isar. +# Copyright (C) 2026 Siemens AG +import re +import subprocess +import sys +from pathlib import Path + +# glob patterns relative to the sysroot, including multiarch directories +LIB_DIRS = ["lib", "lib/*", "usr/lib", "usr/lib/*"] + + +def find_sysroot(binary): + for parent in binary.parents: + if (parent / "usr/lib").is_dir(): + return parent + return Path("/") + + +def find_library(name, search_dirs, sysroot): + for directory in search_dirs: + for path in sysroot.glob(f"{directory.strip('/')}/{name}"): + return "/" + str(path.relative_to(sysroot)) + return None + + +def read_dynamic_section(path): + return subprocess.check_output(["readelf", "-d", path], text=True) + + +def get_needed(dynamic): + runpaths = re.findall(r'\((?:RUNPATH|RPATH)\).*?\[(.*?)\]', dynamic) + search_dirs = [d for paths in runpaths for d in paths.split(":")] + needed = re.findall(r'\(NEEDED\).*?\[(.*?)\]', dynamic) + return search_dirs + LIB_DIRS, needed + + +binary = Path(sys.argv[-1]).absolute() +try: + dynamic = read_dynamic_section(binary) +except subprocess.SubprocessError: + sys.exit(1) + +sysroot = find_sysroot(binary) +resolved = {} +pending = [get_needed(dynamic)] + +# ldd reports the whole dependency tree, so resolve it transitively +while pending: + search_dirs, needed = pending.pop() + for library in needed: + if library in resolved: + continue + path = find_library(library, search_dirs, sysroot) + resolved[library] = path + if path: + try: + pending.append(get_needed( + read_dynamic_section(sysroot / path.strip("/")))) + except subprocess.SubprocessError: + pass + +for library, path in resolved.items(): + print(f"\t{library} => {path} (0x0000000000000000)" if path + else f"\t{library} => not found") -- 2.55.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/20260924072340.4038396-8-felix.moessbauer%40siemens.com.