From patchwork Thu Feb 8 20:28:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quirin Gylstorff X-Patchwork-Id: 3341 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 08 Feb 2024 21:29:45 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-il1-f184.google.com (mail-il1-f184.google.com [209.85.166.184]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 418KTih7022695 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 8 Feb 2024 21:29:45 +0100 Received: by mail-il1-f184.google.com with SMTP id e9e14a558f8ab-36381f0e0a6sf945235ab.2 for ; Thu, 08 Feb 2024 12:29:45 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707424179; cv=pass; d=google.com; s=arc-20160816; b=ZjGUhEGgmelDZWoZZB8UAtVJG0gbXNLIkFcvbrYSHtofdB54GuqYQHd+7EqeaO6csk d5V1LfUc5zlFRmrRBgomm5l/JUL0X5eD0eVvThDX4PYxFFvs7OoI/XihWvYdC+UmUcNY 8Fvj76qYO+5NCDe4JUA+TyXvpN9/VKiiKrfc4ApX2NESijo+IekMtMXHPqPMi0BY4P/Z dK6l5hQx/L0ydrSYO5IByEQLdEfiZxmI79yX+jfr2zdk+yAtzR/nJIRIAbCePE9oVTGZ tD9Qj33TiawySJzKRaVYQNSat0niAk95xJwrZmf85aAVbDjMzfJYrgx+Djl/ixP9XBfp NXnQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:feedback-id:mime-version :message-id:date:subject:to:from:dkim-signature; bh=SiCvGNd0qxv7O+yozDD/TFGY3UYQ3pvpK4kHviiu3GQ=; fh=Gt6/i4wdrp5X1C2dXcLL1zjQonVQez1kotQkTZAJaaU=; b=U/zpwz6NM6Wpgw1MouFLcqoGtna2D4Jp9RH0NQx99q8HiXRkTC5ByJSaYc2nNG3Esb Tn6hON0cYqzI0/4m8asjnk0p/xazzQj7T5MC4PViz7njHpprmIghFfXbaKiFWGjYhtck jTrqEkICmZe6RZv9QuwrwUBWUSy9AKjgpEf2aFq5bCcKhsdPbNvm9+steR86/FBRddN3 Ti6rgFBfwAcdUE2cg44jrsnfMnJZxxnTuZqBv2HA2Z/dpHDsXb7mu5cWXVLm9hRbnESA xKLLDTvCsnw25kF4wo0WxTx/dv0+iqFZD7EpivrDCHivS2uHuLNp9eE3WFok3gLZDYam 6OYw==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b="Qup2D/xD"; spf=pass (google.com: domain of fm-51332-2024020820293686b7261640e9ead7ba-wvh0li@rts-flowmailer.siemens.com designates 185.136.64.226 as permitted sender) smtp.mailfrom=fm-51332-2024020820293686b7261640e9ead7ba-WVh0lI@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=1707424179; x=1708028979; darn=isar-build.org; 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:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=SiCvGNd0qxv7O+yozDD/TFGY3UYQ3pvpK4kHviiu3GQ=; b=wut69WKZq+44jHhHu0DSwYb42vy1Nr9UPTKvobxUEN816kYBsfj9ckNg4s9+8g+YjZ bdx9PRHnTcZgaM+D7uKLoNZIwH8nNZstsqgWvqLld3h+1a2IodD1dJ3pf/DmSoCOlJdL 2aGbgvu2ZwCBXQGF7JSnuPQOUmh7teG8x72yyedK3mpmCYqIBIHGhS+imgqgxQt8bCK4 /jBaeKA1fR6bUGgYAzxB7AmIEvzG7n39SVISA1mTgAWe7Tt4YjU9Tyt5Qjos+AEpWinN E9SqnmQ3qens77iegYfwxX7cUsU1B9EBh9etQtRd0S09HqSl2Ra8lGxadfwevNUib15M ESBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707424179; x=1708028979; 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:message-id:date:subject:to:from:x-beenthere :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=SiCvGNd0qxv7O+yozDD/TFGY3UYQ3pvpK4kHviiu3GQ=; b=Ze2iZ4rEsrs7iaPhCmZFeJICM4RYJMMmoIr2sbQ0IGosTGIHa/LOyUrE5x7v8WYJRl g9NRrCvohoXoraglgu1Z8W7tmuw4WSw7joiyEPQz2diMn0W1ckfM8XQl8Yv26c96GVpi BW3lU+Ma9TgEy2BmAP5jXOX2n9Kg62VI1XwxtXnsGCjAmai8Nds3pVJXFajcQlQsUlKQ NZNCxNeK+fcAsUKLsrvZp/J+wlS1vNs0dcitqRHZCfB6hNVBJM/H3VoThdZzzAsxRsJf TQaXO4GYkZenf2KXZWTg51zv3myHwlFApbEZJk8lDrL8kcqEDc+LRJe0kEDgYecOPBB7 SU7g== X-Forwarded-Encrypted: i=2; AJvYcCUnR2Q1C+tlk4BtXDBoYg6GKzw53s0RhWbozUYHb9Qvdulc7mD5uVL8WduDHNG2+9i5If7CoKWhzhudnkYen0KZkFrK5/E= X-Gm-Message-State: AOJu0Yw2l19H0Od8ULmyhXSsKRzMD7JtdzJi5JiG2dk4RM9zMgpJ/JLl /z64bXGFREAxiArgDbcr6bVt+9O3p3DTEvRzauS6TkXayTDu7Ehs X-Google-Smtp-Source: AGHT+IGGM0QLqLaxMhqH+EJnYf/pqQLZniCgSA4wb6HnCylmrWm1IEl8Pmw1ki7It43HaPLWXOWEJw== X-Received: by 2002:a92:c503:0:b0:363:c9ec:cf02 with SMTP id r3-20020a92c503000000b00363c9eccf02mr917345ilg.13.1707424178800; Thu, 08 Feb 2024 12:29:38 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6e02:3044:b0:363:93da:bf56 with SMTP id be4-20020a056e02304400b0036393dabf56ls112614ilb.0.-pod-prod-07-us; Thu, 08 Feb 2024 12:29:38 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXN04CT2qAKJKnBYbpPxgaG8oGp8uFnyGF3DyOeLCBl7LiS91GWNjxsZkwpTp/C4Tw3Rdh9U+GOBgoRGtvDIrQcKZ2C+5Z9dHa+p8U= X-Received: by 2002:a92:cf41:0:b0:363:e727:43ab with SMTP id c1-20020a92cf41000000b00363e72743abmr757490ilr.17.1707424177847; Thu, 08 Feb 2024 12:29:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1707424177; cv=none; d=google.com; s=arc-20160816; b=MOVfuHvfH+jYgF+YExgEB4Sh/l1tNOUFvUkWqjYIQ7t3WHc6QMhATf7TuLFo0mWqod ZJBoYQs8VeYmb5Lq5top0CeR1O6Vn3mAA+H0z87t6S9AwcDCpSoRhulkGH4TxdgBCxZQ gdTxlhP+N/Cji3V8QgSbfW2cIrfgkSCYTglQIOAuFm+XArK67m5aNevIlDQPvmAMR8Gt VyOo9lYIf2A/Thawx9ECIzMVUJ8xtU9UoBnEyRdLbgmmwqTWzIfdCuMS+CeLmOQ9YXWy ev9014ysHN7EJ1IWV9F499DSykSN9qtVPA5/xdilLxQT3twtoHtkF2jA3QpEgH6T5LIV Gdbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=feedback-id:content-transfer-encoding:mime-version:message-id:date :subject:to:from:dkim-signature; bh=Q/d1dlrbuLr1aTzFOCv2og2GpCnBKKWHRrsIKyQ0+a4=; fh=tOl6/G3TtLtqeyEscKvxYjAe3sCfNK47pyyYk133AAI=; b=msSd5vLsYMKi5pzmH29qNDgHoWwkREgW7Y/krSjmmm5Iu7VZBRL61tQELwSG2bIWq+ SIcUjU3aGg66CksKy2wWbWYJn+e6zShT1URjg6qEujbclLeQcUQo+tPZ/ikPzU18Lc9k i857HLBsV99julQmYev+syctyq4pmKbE4M+9HNHIRczQ2kDG+3NlGdG+JBoFZ7yQDPEt KEA686/BlSwkByov0243mY56d9VZf/5WtbvhaydJGRX9D5XLzRc+apWa4GY7XZZrGmD1 4o3DT/EUZgtP6Lf6uKDAy4fWImfVbh81s9Z+qyZd4RJ9ogSbILrVg4eTHMjgjDbZiuRr lEAA==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b="Qup2D/xD"; spf=pass (google.com: domain of fm-51332-2024020820293686b7261640e9ead7ba-wvh0li@rts-flowmailer.siemens.com designates 185.136.64.226 as permitted sender) smtp.mailfrom=fm-51332-2024020820293686b7261640e9ead7ba-WVh0lI@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Forwarded-Encrypted: i=1; AJvYcCXnmxNrhbsNjRLz3nroqvAJVq0eE92DaHbp3v/nmiLwEjANQqXSgTwvcPy3eOs9wJZxruU/xxZrsLPcRRNrsAInxNBF60gwPVjRokY= Received: from mta-64-226.siemens.flowmailer.net (mta-64-226.siemens.flowmailer.net. [185.136.64.226]) by gmr-mx.google.com with ESMTPS id e5-20020a02a785000000b004716230d17bsi15890jaj.7.2024.02.08.12.29.37 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Feb 2024 12:29:37 -0800 (PST) Received-SPF: pass (google.com: domain of fm-51332-2024020820293686b7261640e9ead7ba-wvh0li@rts-flowmailer.siemens.com designates 185.136.64.226 as permitted sender) client-ip=185.136.64.226; Received: by mta-64-226.siemens.flowmailer.net with ESMTPSA id 2024020820293686b7261640e9ead7ba for ; Thu, 08 Feb 2024 21:29:36 +0100 X-Patchwork-Original-From: "'Quirin Gylstorff' via isar-users" From: Quirin Gylstorff To: xujiew2015@gmail.com, isar-users@googlegroups.com, jan.kiszka@siemens.com Subject: [PATCH v2] add simple installer to isar Date: Thu, 8 Feb 2024 21:28:55 +0100 Message-ID: <20240208202935.293080-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="Qup2D/xD"; spf=pass (google.com: domain of fm-51332-2024020820293686b7261640e9ead7ba-wvh0li@rts-flowmailer.siemens.com designates 185.136.64.226 as permitted sender) smtp.mailfrom=fm-51332-2024020820293686b7261640e9ead7ba-WVh0lI@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 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=-1.2 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H2,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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= From: Quirin Gylstorff This is a example to create installer image which contains another target image. It uses a multiconfig aproach to seperate the settings of the installer from the target settings. Signed-off-by: Quirin Gylstorff --- Changes v2: - Add dialog in case of multiple disk targets - Add dialog before starting the installtion This was added as there was no indication that an installation occurs - add `--use-uuid` for boot section in installer wic to avoid an error if the target disk is mount as /dev/sda - remove unnecessary /bin/sh from getty override kas/image/Kconfig | 14 +++ kas/image/isar-image-installer.yaml | 13 +++ .../conf/multiconfig/installer-target.conf | 6 ++ .../conf/multiconfig/isar-installer.conf | 5 + .../images/isar-image-installer.bb | 17 ++++ .../deploy-image/deploy-image_0.1.bb | 21 +++++ .../deploy-image/files/deploy-image-wic.sh | 94 +++++++++++++++++++ .../deploy-image/files/install.override.conf | 5 + .../store-target-image_0.1.bb | 19 ++++ .../lib/wic/canned-wks/installer-efi.wks.in | 9 ++ 10 files changed, 203 insertions(+) create mode 100644 kas/image/isar-image-installer.yaml create mode 100644 meta-isar/conf/multiconfig/installer-target.conf create mode 100644 meta-isar/conf/multiconfig/isar-installer.conf create mode 100644 meta-isar/recipes-core/images/isar-image-installer.bb create mode 100644 meta-isar/recipes-installer/deploy-image/deploy-image_0.1.bb create mode 100644 meta-isar/recipes-installer/deploy-image/files/deploy-image-wic.sh create mode 100644 meta-isar/recipes-installer/deploy-image/files/install.override.conf create mode 100644 meta-isar/recipes-installer/store-target-image/store-target-image_0.1.bb create mode 100644 meta-isar/scripts/lib/wic/canned-wks/installer-efi.wks.in diff --git a/kas/image/Kconfig b/kas/image/Kconfig index 8e617386..be6d7019 100644 --- a/kas/image/Kconfig +++ b/kas/image/Kconfig @@ -22,11 +22,25 @@ config IMAGE_DEBUG help This image includes some tools preinstalled useful for debug. +menuconfig IMAGE_INSTALLER + bool "Installer image" + help + This image contains a target image and scripts to install that target image on a device. + +config INSTALLER_TARGET_IMAGE + string "Install Base or Debug image" + default "isar-image-base" + help + This selects the target image of the installer: + - isar-image-base + - isar-image-debug + depends on IMAGE_INSTALLER endchoice config KAS_INCLUDE_IMAGE string default "kas/image/isar-image-base.yaml" if IMAGE_BASE default "kas/image/isar-image-debug.yaml" if IMAGE_DEBUG + default "kas/image/isar-image-installer.yaml" if IMAGE_INSTALLER endmenu diff --git a/kas/image/isar-image-installer.yaml b/kas/image/isar-image-installer.yaml new file mode 100644 index 00000000..a2c466dd --- /dev/null +++ b/kas/image/isar-image-installer.yaml @@ -0,0 +1,13 @@ +# This software is a part of ISAR. +# Copyright (C) Siemens AG, 2024 +# +# SPDX-License-Identifier: MIT + +header: + version: 14 + +target: mc:installer:isar-image-installer + +local_conf_header: + installer_multiconfig: | + BBMULTICONFIG += "installer installer-target" diff --git a/meta-isar/conf/multiconfig/installer-target.conf b/meta-isar/conf/multiconfig/installer-target.conf new file mode 100644 index 00000000..254c91a6 --- /dev/null +++ b/meta-isar/conf/multiconfig/installer-target.conf @@ -0,0 +1,6 @@ +# This software is a part of ISAR. +# Copyright (C) Siemens AG, 2024 +# +# SPDX-License-Identifier: MIT + +IMAGE_FSTYPES += "wic.xz" diff --git a/meta-isar/conf/multiconfig/isar-installer.conf b/meta-isar/conf/multiconfig/isar-installer.conf new file mode 100644 index 00000000..11afcb85 --- /dev/null +++ b/meta-isar/conf/multiconfig/isar-installer.conf @@ -0,0 +1,5 @@ +# This software is a part of ISAR. +# Copyright (C) Siemens AG, 2024 +# +# SPDX-License-Identifier: MIT + diff --git a/meta-isar/recipes-core/images/isar-image-installer.bb b/meta-isar/recipes-core/images/isar-image-installer.bb new file mode 100644 index 00000000..27de03d5 --- /dev/null +++ b/meta-isar/recipes-core/images/isar-image-installer.bb @@ -0,0 +1,17 @@ +# This software is a part of ISAR. +# Copyright (C) Siemens AG, 2024 +# +# SPDX-License-Identifier: MIT + +inherit image +DESCRIPTION = "Example of a ISAR based Installer Image" + +# Use variable to switch easily to another wks +INSTALLER_WKS_FILE ??= "installer-efi.wks.in" +WKS_FILE = "${INSTALLER_WKS_FILE}" +IMAGER_INSTALL:wic:append = " systemd-boot" + +IMAGE_INSTALL += "store-target-image" +IMAGE_INSTALL += "deploy-image" + +IMAGE_INSTALL:remove = "expand-on-first-boot" diff --git a/meta-isar/recipes-installer/deploy-image/deploy-image_0.1.bb b/meta-isar/recipes-installer/deploy-image/deploy-image_0.1.bb new file mode 100644 index 00000000..9bf25445 --- /dev/null +++ b/meta-isar/recipes-installer/deploy-image/deploy-image_0.1.bb @@ -0,0 +1,21 @@ +# This software is a part of ISAR. +# Copyright (C) Siemens AG, 2024 +# +# SPDX-License-Identifier: MIT + +DESCRIPTION = "add target image to rootfs" + + +inherit dpkg-raw + +SRC_URI = "file://deploy-image-wic.sh \ + file://install.override.conf \ + " +DEPENDS = "store-target-image" +DEBIAN_DEPENDS = "store-target-image, bmap-tools, pv, dialog, util-linux, parted, fdisk, gdisk, pigz, xz-utils, pbzip2" +do_install[cleandirs] = "${D}/usr/bin/ \ + ${D}/etc/systemd/system/getty@tty1.service.d/" +do_install() { + install -m 0755 ${WORKDIR}/deploy-image-wic.sh ${D}/usr/bin/deploy-image-wic.sh + install -m 0755 ${WORKDIR}/install.override.conf ${D}/etc/systemd/system/getty@tty1.service.d/override.conf +} diff --git a/meta-isar/recipes-installer/deploy-image/files/deploy-image-wic.sh b/meta-isar/recipes-installer/deploy-image/files/deploy-image-wic.sh new file mode 100644 index 00000000..6f1cf96a --- /dev/null +++ b/meta-isar/recipes-installer/deploy-image/files/deploy-image-wic.sh @@ -0,0 +1,94 @@ +#!/usr/bin/env bash +# This software is a part of ISAR. +# Copyright (C) Siemens AG, 2024 +# +# SPDX-License-Identifier: MIT + +DISK_IMAGE=$(find /install -type f -iname "*.wic*" -a -not -iname "*.wic.bmap") +DISK_BMAP=$(find /install -type f -iname "$DISK_IMAGE.bmap") +DISK_IMAGE_SIZE=$(cat /install/*_size) +if [ "$DISK_IMAGE_SIZE" -gt "$(( 4096 * 1024 * 1024 ))" ]; then + echo "IMAGE_SIZE: '$DISK_IMAGE_SIZE' is to big for vfat" +fi + +# inspired by poky/meta/recipes-core/initrdscripts/files/install-efi.sh + +target_device_list="" +current_root_dev=$(grep "[[:blank:]]/[[:blank:]]" /proc/mounts | awk '{print $1}') +current_root_dev=${current_root_dev#\/dev/} +case $current_root_dev in + mmcblk*) + ;; + nvme*) + ;; + *) + current_root_dev=${current_root_dev%%[0-9]*} + ;; +esac + +echo "Searching for target device..." + +devices=$(find /sys/block/ -type b,c,f,l -not -iname "mmcblk*" -printf "%f\n") || true +mmc_devices=$(find /sys/block/ -type b,c,f,l -iname "mmcblk[0-9]" -printf "%f\n") || true +devices="$devices $mmc_devices" + +for device in $devices; do + case $device in + loop*) + # skip loop device + ;; + mtd*) + ;; + sr*) + # skip CDROM device + ;; + ram*) + # skip ram device + ;; + *) + case $device in + $current_root_dev*) + # skip the device we are running from + ;; + *) + target_device_list="$target_device_list $device" + ;; + esac + ;; + esac +done + +if [ -z "${target_device_list}" ]; then + dialog --msgbox "You need another device (besides the live device /dev/${current_root_dev}) to install the image. Installation aborted." 7 60 + exit 1 +fi + +if [ "$(echo "$target_device_list" | wc -w)" -gt 1 ]; then + array=() + for target in $target_device_list; do + array+=("$target" "/dev/$target") + done + TARGET_DEVICE=$(dialog --clear \ + --no-tags --menu "Select device to install $DISK_IMAGE" 10 60 3 \ + "${array[@]}" --output-fd 1) + +else + TARGET_DEVICE=$(echo "$target_device_list" | tr -d " ") +fi + +dialog --msgbox "Start installing '$DISK_IMAGE' to '$TARGET_DEVICE'." 7 60 + +set -e +bmap_options="" +if [ -z "$DISK_BMAP" ]; then + bmap_options="--nobmap" +fi +if ! bmaptool copy "${bmap_options}" "$DISK_IMAGE" "/dev/${TARGET_DEVICE}" > /install/bmap.log 2>&1; then + dialog --title "ERROR bmap failed with the following output" --textbox /install/bmap.log 24 140 + exit 1 +fi + +umount /install +sync +dialog --title "Reboot" --msgbox "Installation is successful. System will be rebooted. Please remove the USB stick." 7 60 +reboot diff --git a/meta-isar/recipes-installer/deploy-image/files/install.override.conf b/meta-isar/recipes-installer/deploy-image/files/install.override.conf new file mode 100644 index 00000000..73874caa --- /dev/null +++ b/meta-isar/recipes-installer/deploy-image/files/install.override.conf @@ -0,0 +1,5 @@ +[Service] +ExecStart= +ExecStart=/usr/bin/deploy-image-wic.sh +StandardInput=tty +StandardOutput=tty diff --git a/meta-isar/recipes-installer/store-target-image/store-target-image_0.1.bb b/meta-isar/recipes-installer/store-target-image/store-target-image_0.1.bb new file mode 100644 index 00000000..feb3c6d7 --- /dev/null +++ b/meta-isar/recipes-installer/store-target-image/store-target-image_0.1.bb @@ -0,0 +1,19 @@ +# This software is a part of ISAR. +# Copyright (C) Siemens AG, 2024 +# +# SPDX-License-Identifier: MIT + +DESCRIPTION = "Add a given target image to rootfs" + +inherit dpkg-raw + +INSTALLER_TARGET_IMAGE ??= "isar-image-base" +IMG_DATA_FILE ??= "${INSTALLER_TARGET_IMAGE}-${DISTRO}-${MACHINE}" +IMG_DATA_POSTFIX ??= "wic.xz" +do_install[mcdepends] = "mc:installer:installer-target:${INSTALLER_TARGET_IMAGE}:do_image_wic" +do_install[cleandirs] = "${D}/install/" +do_install() { + install -m 0600 ${DEPLOY_DIR_IMAGE}/${IMG_DATA_FILE}.${IMG_DATA_POSTFIX} ${D}/install/ + install -m 0600 ${DEPLOY_DIR_IMAGE}/${IMG_DATA_FILE}.wic.bmap ${D}/install/ + echo $(du -b ${DEPLOY_DIR_IMAGE}/${IMG_DATA_FILE}.${IMG_DATA_POSTFIX} | awk '{print $1}') > ${D}/install/${IMG_DATA_FILE}_size +} diff --git a/meta-isar/scripts/lib/wic/canned-wks/installer-efi.wks.in b/meta-isar/scripts/lib/wic/canned-wks/installer-efi.wks.in new file mode 100644 index 00000000..e2be17f1 --- /dev/null +++ b/meta-isar/scripts/lib/wic/canned-wks/installer-efi.wks.in @@ -0,0 +1,9 @@ +# This software is a part of ISAR. +# Copyright (C) Siemens AG, 2024 +# +# SPDX-License-Identifier: MIT + +bootloader --ptable gpt --timeout 3 --append "rootwait console=ttyS0,115200 console=tty0 earlyprintk" +part /boot --source bootimg-efi-isar --sourceparams "loader=systemd-boot" --label efi --part-type EF00 --align 1024 --use-uuid +part / --source rootfs --fstype ext4 --label installroot --align 1024 --use-uuid +part /install --source rootfs --rootfs-dir=${IMAGE_ROOTFS}/install --label INSTALLDATA --fstype=vfat --use-uuid --align 1024