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; Fri, 25 Sep 2026 09:31:08 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-qk1-f185.google.com (mail-qk1-f185.google.com [209.85.222.185]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 68P7V7K8026446 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 25 Sep 2026 09:31:07 +0200 Received: by mail-qk1-f185.google.com with SMTP id af79cd13be357-93a05d645acsf129186985a.2 for ; Fri, 25 Sep 2026 00:31:07 -0700 (PDT) ARC-Seal: i=3; a=rsa-sha256; t=1790321461; cv=pass; d=google.com; s=arc-20260327; b=gScOO57f87/sVoJi4bs+SQ3wj5ZufsWPcHBj/kOI2TJwNl82BKeKnlupojP6N9uMsS 1j/qeEbrIu6jrVIr6lge6b2O02CQDN9ag+N8IY5/4H81mgZ3Yb6/DdZrRV7XhW7MLe/n mF6Ln5nCdBthCGD8BEEHOowAlONC84K9x1qj5uQM0j8rIcxA0DOdFjg5RoXR30w0YJVb iVrSYyA8jPP0Uj95ZWvnNvS5FNvLnE3u39N/0g3gmVl1jjO9pa463uGOb8jWkg1IAUUk b43VEHtb70gXYcqh+uPMwkDZmpZ7Y0kMRCy+7zMhsDcAwWp4d2/csJeoOwCH/h5Qa2qP 1YEg== 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=hOhhzfSWDRE9smxFS9f/bFlTqI80SC5UqqsOa3r4LcY=; fh=icEiXey3XP+URD+VS83IZLoKdRBtlHC99x+gQgsMWNA=; b=jv6sETq5QmTxN3xtqy6jaF2FFYTLnxRZlbJ50NF+U5Kv9/+4iF/Q+EarkhaPfMV5Sg +iltHwfocxPcv7e8/ieBU8VLUACLUftuMF9pILxYLk/iuaY7+836MPmETsXncZDwPTEu aa5QuC1qD1+mMv5x9sRgsJI9KgyEsw/WGN6lY6XjttRwzujpj8e/9yDOmE21n3AIl601 JU4bZQQ+sbW5W8JP6+LK+EJSmMbmF3d4SxaY228WxJVVIlvGSWtFh5FyBVetx4e3TiFN us3HCiC2H5b9ie/KlsTb1WGpYNZguHtqweZa/+8DUnI51Cwh6FZsGUMNd4wktVeRv4Kl 20zg==; darn=ilbers.de ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=sDAa7w68; 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=1790321461; x=1790926261; 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=hOhhzfSWDRE9smxFS9f/bFlTqI80SC5UqqsOa3r4LcY=; b=ZCH0eECUbRUqSF+tBxoN40A2XbJWuyCe6yd8vrptgX8HWVJzScYoMGmWHG+HQ73DSB n4txoWUSjsEeeQ6DYMX27i3Yr8FzxNPLXbBWhcqu0VGr8NPN5Pq/dINDXHdEQkTidexW EN/GB/mHLy2cW12tMPQ8kSvq8+gGNauQTYy2btxi082QtIuQuFAbY2llXFevqeBFztGr U8RpaBXUyss2LZCo5hWxluLWgTZkQLM1ehT3YBhHT5Q9fXarLbmQdlT6R0OoPx7CMiqr imSmZLrj1wK2SQ8Vb214pzWfQFbPL2rdGs3i1Q2WuCrHgTrQVrtNLbm8VKCImLAAS4rR h7xQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790321461; x=1790926261; 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=hOhhzfSWDRE9smxFS9f/bFlTqI80SC5UqqsOa3r4LcY=; b=YvLWl7D8aJE16KYycY//fXJSjrfHkE0lwESNByrAO2TIx3Zc+TKHVU11hjShmEZHpL nZsbPdNutzd/pMCPFisQRl5AOpIHRKudjFf6C+pG32DD5yjFd7LVK/nb1hZ/5c7zAPQK ITGqD3W7TIwXvOzGpB52BamZigRhHBMOwGDtVGq6lzgasUngvDc5TE7+BLERcn00v3mH f1k0oUijnRvtgYPktMwPKd2SJsH6e+ws9wagZHXHMwVjtovW2iIhylimsgmgWx//xj0x Ugq6NfZkwIeseDxXWzGyo7iS5LQVSAXjwzyv7QNQrPaYIuPMj019CTQ3CaY9m5LKPwHp 3fRg== X-Forwarded-Encrypted: i=3; AKwUvBwYySfcFWAYEkJWSekp1q/DoccQGNFMvqlRmLunS8hiNueMi9CLHmdCIzJxCIw6nJBNjxPD@ilbers.de X-Gm-Message-State: AFuF++kap9ogXDhPIvynBhaKj7BabE1VsK0MgfSeBaU2Hfp8uEpH5qRl jeeSSCweCPi0YFyV8igqwxggXhC8Am+R+j36F/9hCXFrDDGSh9tzSK2v X-Received: by 2002:a05:620a:254f:b0:939:fce2:d4b6 with SMTP id af79cd13be357-93c43c9dd56mr306816785a.38.1790321461563; Fri, 25 Sep 2026 00:31:01 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLdcvTFbA9fZSDNGQW6zR71Tm0zE9EWB0p7/+enNHzOXWIw==" Received: by 2002:a05:6214:4102:b0:90c:d916:4caf with SMTP id 6a1803df08f44-9142d827642ls12217416d6.2.-pod-prod-02-us; Fri, 25 Sep 2026 00:31:00 -0700 (PDT) X-Received: by 2002:a05:6122:2804:b0:5c9:ee5a:e5dd with SMTP id 71dfb90a1353d-5cb0b48d302mr2836438e0c.12.1790321460531; Fri, 25 Sep 2026 00:31:00 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1790321460; cv=pass; d=google.com; s=arc-20260327; b=CNKHyblHPnQC4THpgdhTqkGb5XsrMxCXMh6l30awop/3Zp9Kb+TCjGhykEy+FInZeh DJO9OaUx6eWUKjvHKb1933852lswDJZ/0FPBAci+dtkj9Y6VgR2WIdu9FA5epDXG4CAH Ip5Kc6XOZXo3n4O8VlzyY3CVW9i/6bL0EW2mhb53OoMDugSAlrDDM1OuF4ecrZTNiDLN rTjMfP7OPFCCBCTCgvWTH7yei5+59JCE34ik4FRVHvXIp5DShxPZCdwEHrmLq+gLe7hv rLRervw1zvHdxe5SsfZPM2m8nA/wWXTCJvAo78tlV9pudiRJNlXjWmTzwkm79mnJYqOp 3qMw== 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=RPCZ8bEr7xewEtFb6ywn02nie/Wat0/7XPOSKfVr6S0=; fh=FYARRfYWSZi+xaBGHs/WkhcniURPXOu7KAfLF/5BK1Q=; b=ECVs2bgcjXy44vmo5GXYYoSKCDZS8clVxD6I1StBuabOSL7vuITPTGnrLfQc6mgztW KBlVfSrgc++DYlKFBssxIf8AqF9F09zyeMtAZi9ZqNnQBwTRWX5Ej2Jo28qLNrM1eFJI yYYFeaaUOFwViIWUn01PTYALdqANfr9b/Nv+LkJ7y3nkdtGPDHhFzu0mSPBGNGUufimU aUiEjaj2e3dqdZoufK9vEVjhSWqvty9yAET4iuGRSpHQPULUyyG35xDuYrI+ZSxjEq30 p8/EzXk+UXcqTvi9GqxD7YHptewEe0vERMqoevL9yhVKZgPJuoxLuPKITaUfiiLLo+QI FqFw==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=sDAa7w68; 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 71dfb90a1353d-5cc5dd0bde2si57499e0c.0.2026.09.25.00.31.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Sep 2026 00:31:00 -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=vb2lEj27vwmioIGqswguObz1FCAhLt318eMiuABE87mfr6PtdJdFe6GbvYw43ACx8FFNl7Tds5Nldd3k7WqrcIgVeQucGnkWLHDVIUA0yOBxp7nyjDk1TCTGJgB3bBpZDZUtR3a32JwLcsKFhhaIakF9Pd6W4bGvbON7Fdu3Ri/Sm59vpdsr/OMFuGO4EtyTPE59vsCxmSDSMFrG1LPPiZ3uygGmQB4nuMJcqYGNytEmW+HSM61Wt+7oRLT6wM1DFr1SFJhd4RHPcUqqjo2EGCyYBPNekLg9t3TyUS5aR4qkf3PScZLzQsIx38R1SL1C2CwmOIEzOcTUwkJ6sl3JWw== 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=RPCZ8bEr7xewEtFb6ywn02nie/Wat0/7XPOSKfVr6S0=; b=V6FEa9IBObCKRPC/Nc/1q8LKnIGBTds/PpgfttBxsa4DYvG8ZEihdrnzYUHjv83TNOvqQ82acHSdXgyNBg0MR3cnLgZ03vwzh/juSxVmmA3g5zqOdZ1yAfYqSNeCQXCmuX4DwAU6Vr92hiNazfhr3o1aIzXDS9l2QjDKK3SZnKx9u0gLXxUp+QfebcElEvdojLJwY60OP1VxMNpIVweMMN37gTrNcs7nWUpW2+9AYURU3cc/vUMncUkcCybN9zP1SDs6FdueKVPsr1P+k9R9LERvb70yBQutr6PX3RaAO1bsFC93/sNyuIoeyVIrVA5ecN9i8fB3FBSDtHKjxBOINw== 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 DU0PR10MB9346.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:5a4::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Fri, 25 Sep 2026 07:30:54 +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; Fri, 25 Sep 2026 07:30:54 +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 v3 7/8] dracut: add support for cross initrd generation Date: Fri, 25 Sep 2026 09:30:41 +0200 Message-ID: <20260925073042.1737353-8-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260925073042.1737353-1-felix.moessbauer@siemens.com> References: <20260925073042.1737353-1-felix.moessbauer@siemens.com> Content-Type: text/plain; charset="UTF-8" X-ClientProxiedBy: FR0P281CA0211.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ac::6) To AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:17e::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM7PR10MB3956:EE_|DU0PR10MB9346:EE_ X-MS-Office365-Filtering-Correlation-Id: 30c131b0-ca7c-42d0-dc73-08df1ad6ee35 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|10070799003|1800799024|366016|10067099003|3023799007|6133799003|55112099003|18002099003|22082099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: Ly4ahj2mjcgGBjkprnQaVCokpQ89lduqx4Y4vJcmdRPZgdyWBhq9g9LqVUAFNLPLVyg/OuTs+G/AGbdf0teFftWnOr5zwPt4Ww+M8r2t0gfAyXYHxEcC5GgCIz+9YyOSms/DKDQwbVGbzkRev8JSbUtc9OyEXIgyDvkC5MS78DkrYpFgT+zW6mYp20sS+b4KrXBJgI+7tY49Bf1q/uMyFGW17oFZQsLIJExDCNOqexbcZLVNfa99ARg0i6S5BR/re18WfmIRV26c7OaLOuSLBNntYt7BgnOOVGKNhHbJ4n8AzDwTpfV2+8ulQ9vHk+oxDJ5MZ4W7/5imb2DsJc3yavr7tnc2BqogGjIJVCLoQstIDpIYACoNYdIjUd0xa+sMkgSkDr4ZPhul62aDa75qo712EnMkbfGHZhDBEHOcrtmXktq1IF6jfAIPU5BTz4XttVh5kTuWMhjFAZx/DujJ35qFdktb3Am9snxk3SvGCbalMVSZ92DFXihoopkjAyLzc1Wlxz0/+rSNQfGC2+nej8ExUoyb/3bP3+VXrd1mjGWdSaKadeMAyenFHIPqIF6Nt5IylNxLwI2Vo0hqTr0g1jQZlHgzAent9aeCmJ2aY6FzDPwjqGnUvexOeWpNyflSG2wvqaF1BYdg3tO74lK//7GXlAEJ3JDQo397oSzdut0= 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)(376014)(23010399003)(10070799003)(1800799024)(366016)(10067099003)(3023799007)(6133799003)(55112099003)(18002099003)(22082099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?J7KHzEzRLqEHABcR/1Z6ZlGDfAVifx3ae0nqlQ15BHDdhiaprMQKDnIUefs7?= =?us-ascii?Q?HyKvXd3v3r1m4gPW8wHralVE4ihD7gKydio7BhAkAbUQh0wEed6+noFuZVLk?= =?us-ascii?Q?sKi08rLlGN4aRUN98hAePrlw9FRwTmR21c+U2TFEps5V13txxVac/iRf3jcU?= =?us-ascii?Q?ituWzKlVgfQlY/Fq5f3x9LyWeGJ5FTnlmq+0wj80s41kMqqPs7YrwLnrtCls?= =?us-ascii?Q?UKxT2xeEvGEkcfB/JM3HpS/BIp8PAt+9cMjXoA8rIw0PKnabUPuS7Z7ycxft?= =?us-ascii?Q?+P246l3yaqixwJtDWGPpNy0NEtinagj+ibuGdbtgyzvWSs5pcnjoESDtI8h1?= =?us-ascii?Q?jO+qizOgBPFJdLZHtfGurOUS5to+yQ25T8iPceA0cSHJycobKTsg2RXDwBRQ?= =?us-ascii?Q?Yqj8wsnq1GlBbuE1T1mG0xEEcWcud5NKr4f0ql22b81Zlb1b0N+TEDagf5+P?= =?us-ascii?Q?7XOUZLfdixU8PQ9M9jytu9TNAYTsPsnNWJyBUG87G31zT2/MD7maxfEthP3z?= =?us-ascii?Q?TPZ2+062zx4INwg3I0kZqBkVsZkAjrjWyAOktZW7x8I6LjzlPLJdVBpSj5+j?= =?us-ascii?Q?8aX7le2UCsVJcHib6mgYSIbIRt0AHHlGFor5CBkbdeBCrjRU/7Mc93cReeOn?= =?us-ascii?Q?L96F24bwAUoJvn5w76nVuOrHQNfnT0uUhLtLlhFch55WAqqU8ubX/32/6rQp?= =?us-ascii?Q?tMBgRtuTPMrHu6slmFrVeB2JBZ2XHu5Ecp1TmS2Fl2OJNBvk1vmSZ7hdPo6v?= =?us-ascii?Q?jeACshXBMuQVxXxKk2KCON+SuKTQUJZjpZlE5lPUtC77xj7aKGwtoFtojuZf?= =?us-ascii?Q?LkauuvUPqdYYV7JBuA5hi2EOA4CD5ySzn65coRXJCKCeW/V2Xc93wNJQY3GZ?= =?us-ascii?Q?SjnoBDHftoo1JP5BMHU1DPyc28Cp7e7MMdxts30IvJMu4eqyQUJ3hgs6sKMm?= =?us-ascii?Q?bukCQHWvnVbULaNIRUs9Rylb4JZMsbSH7JzpVfr02S8bNHQB0vt+6THw6HKv?= =?us-ascii?Q?NOpGgZf+L/MeCXmbHHQQk9Lw5eB+Zhw87xWyCrKC2JTCH8P8Vi9Iu6N8SJDV?= =?us-ascii?Q?qwlflM90yWFYo1zn2yR6MDuDgd4vYVS37RZ2TWV1JCt4FTxDOKa6bvzwC80P?= =?us-ascii?Q?C1U5BAxwCVARbSevOHBwbYarsVtbDuDJiqlomExkEoCSv5pDVmGw8Rr9A4t3?= =?us-ascii?Q?0g1GbgULVHhUvfp1Yc7BVFP/bn7H6V5/4YG1f5DqNLK7V+yGj87QTQ7zFHWU?= =?us-ascii?Q?oQFtj2ncDsT/5XW3PYWaUYNHY8Cqf1WF6VYDkCXf+vmkVF2MsLVxK5zRJvgV?= =?us-ascii?Q?powJym0NfrbOw+2wtf4jbQKDw/rmUa3zhkRi7FK5mG5bE8Q1sIIKDcgT7yct?= =?us-ascii?Q?DjqV7Nc15hiyru/o40DdjeJsfpyYG2KVucx5tFwYDvPTF5hcnTvmB8ZkxtQZ?= =?us-ascii?Q?JeO563ih25pHWS54Zn6zNSY153ZGJ+Ek6VWme7/gboQqQbGXUvYoAdfJhZ6W?= =?us-ascii?Q?/R74qoaE+lJKr8OkOKwi1jELFE9i1s4Q2lgURj697pCso2QzmbSmjM9KtrLM?= =?us-ascii?Q?/gRJ030sJXixa8jI9PZ0N0Q81Mk72/aA9BVh+PTBb68RWFXvqD3cqqoyzBFS?= =?us-ascii?Q?r7RgGYeGOhmzeGZYdFlP/nxH2Nld5l+rwau4U6vakBTHfa3y+/fREKorBVSI?= =?us-ascii?Q?lpWxDahV1OjB2z9vjrv5HOQoN13m/UvDJM7eXbia15fLUfgtmE2GdWg0cC2q?= =?us-ascii?Q?IdtuTVPZKQuwe0J2ll2emlJCdItYkBqeTNoI7kizynTzCxTHjUr8SgOGJ70d?= X-MS-Exchange-AntiSpam-MessageData-1: oU/BXB4BrVsIXKkg/ez5w3obGrla7kxaRDw= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 30c131b0-ca7c-42d0-dc73-08df1ad6ee35 X-MS-Exchange-CrossTenant-AuthSource: AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Sep 2026 07:30:53.3139 (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: brCkmjOn0kKl4upjiPXmVQvAzsFvi/P7yAY7WovRCQI1k0dwRSzuqX2AWsKMEqEJ72wGo/PrpHq0PVrryKXpwzu0kOOqTZDM8Bt6MmrWbLI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR10MB9346 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=sDAa7w68; 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_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: s4pb0P8oMey8 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..957baa0e 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 + run_privileged_heredoc <<'EOF' + trap '${@ insert_isar_umounts(d, d.getVar('DRACUT_ROOTFS'), d.getVar('DRACUT_MOUNTS')) }' EXIT + ${@ 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 9b5572a7..5dfeb2f6 100644 --- a/meta/classes-recipe/rootfs.bbclass +++ b/meta/classes-recipe/rootfs.bbclass @@ -451,6 +451,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}" @@ -458,7 +460,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/20260925073042.1737353-8-felix.moessbauer%40siemens.com.