From patchwork Tue Jul 2 13:38:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kiszka X-Patchwork-Id: 3648 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Tue, 02 Jul 2024 15:38:45 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-wr1-f60.google.com (mail-wr1-f60.google.com [209.85.221.60]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 462DciPZ029461 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 2 Jul 2024 15:38:44 +0200 Received: by mail-wr1-f60.google.com with SMTP id ffacd0b85a97d-366e9f5785fsf567792f8f.1 for ; Tue, 02 Jul 2024 06:38:44 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1719927517; cv=pass; d=google.com; s=arc-20160816; b=ZUw6BScaURRV8aIcMT1rNuwFJlxWb6wmDMGyWI6xRYJwUXQajzlJPsCI0RaJDYXxvL pg1c1Z2ruonTBjca9ke7T43pXCHHUlp73kOLvx5LzcGhUQmCg+EJX2FLicA8kr/NXqm3 ChBQTOzvJZrPZ+Z7siKQiB379TME84wMPl+nwo+lYzyv6Cg4QDCUdnhKzLrE6n1uZQSl 5rC9t4sMmsKKYzA/W3GzywkaGTnKQ1LSAZ1MA8s9sofxrUBtDz4O3WCAbFSwti2BTJaQ FMVyeHTdzuh2iWIjW0IiwOsfP1c9+uUKwEKBURtl8qyVLlAS3vtNNU2B9D2xJTd8IQkH CfCg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Xk37ODrCIKSGtcgTbhh7LbG5Ml8I36tamMmg2H+5Jmw=; fh=yaRWvM1i4EM/9KtPT21lB3c2hqQVJkTVUJbsZ0Z91T0=; b=nkW/yhQhvGa0AyksG/ikRdhRplqiT7/ug7XA02VEHjkatBasEe/CmCxVlz7jmvGGk7 BVdFVqXZETSvQ2bwRwDmnAoGIB6AEfJSy0lewmUI+52bPdfcByUZPhH/6utv0eI/CsnX CvwGLNwQn1uI7EWikMAGQsUJG5kGXLg9OpOuRxUdpfCFHw1wPfILPCfrSlunYtcz3ZK8 qy3YxOxmuhQhnBNfqW5k+4dxEu0cFcICFRIkkfPTMDdntOBDWfAYA19zRBPNvqCgyiq7 9vTDGOr26j6tDHhAxvgVizhVXiJNYboVSLapCsPPeP3YkqzROr/etWRXkjjFhXga7oL5 5Unw==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=IS6pRBU0; spf=pass (google.com: domain of fm-294854-20240702133834f97ecd606dac0079ce-63e9a8@rts-flowmailer.siemens.com designates 185.136.65.226 as permitted sender) smtp.mailfrom=fm-294854-20240702133834f97ecd606dac0079ce-63E9a8@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=1719927517; x=1720532317; 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:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=Xk37ODrCIKSGtcgTbhh7LbG5Ml8I36tamMmg2H+5Jmw=; b=vloj3j3ClgDyn0kU0uu/cWh+lxHBG3UsQi7x6EUm1FikmHcBnw/CHv7rwfGatgN1MU cJ7fNZsOEQKXXg2nYFfhmjbruRl6sBx1AHQmDOWOs7PR+5PU6Et+dELDJQvQ7xP78Xf5 Ul7GEePnhb7Be8vdjMczJDnlOeQXW+EiyodmHSJEcQ7Dz7dhuPC/8wcxgkcG/gvSKUY4 gqhSD515ZbLyiN/fwW6YdrqTTI6tKuwQmshG36WOzblvzXtRXjVAM5QNGxVI7rm3f+d/ u8h/uyziyhDwvO++aDO3y7MYiEZXWTo2bP6kygjWTiC7/qRwp5AbpZZhZKszCD4RrexS lwSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719927517; x=1720532317; 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:cc:to :from:x-beenthere:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Xk37ODrCIKSGtcgTbhh7LbG5Ml8I36tamMmg2H+5Jmw=; b=e2h0orWPY/8dUq+i5y8svyMCCbb0BHVWdwjWKCGCUb+hrCQJ3jAHPUcpv06UTzqIUc 1Lbp914NtrAoMDr9XP7ZfN8uaDLQIR6N3AR7YYQNEaxTFMQXu9Lem13ErUIcSs+TuHHi v3p8uzEDr5Guvfdj6twFhi6ulym7Bg9mZWt47E4trnskuy+KxB0BqcKukzAQuBtv7o3p uc6FDRJv0g0VmZB79X+5SWiO8GOn9q7nN8JmDW6KSm+m8Ft35fkVuJUzbmHfNw5XQFXj mlWrEzWqdiGbd+DHkeC0UCsGcYgLl3UK96I/oElsO8Rr1Eboe021TmH3Xd1HdUjBi119 XZlg== X-Forwarded-Encrypted: i=2; AJvYcCU2Ufguf2WWsXThy3zZjYCKLEwMPHJJqRnmAXsDxeebzTwwMYFdkHBjEN0Xas4Qldo5toOUh+KggvQlr9q+f+4D7Q8xZns= X-Gm-Message-State: AOJu0Yxi15bTeJCe2m/EEDH7y1kDu1Aw29JzMgM6K7FuxdO13rdw7MW9 EsbD65lJ4QT3K3jag4ARVz7WTpOZ1ojn1t6kzwFDl++kBlR9XSxw X-Google-Smtp-Source: AGHT+IHwuxK/cY+Jyqap5S4YphNvXKV0TxMZnoEvSpo7sonhn4e8qneK1IvYLjV8ZQ3Kp6KutDZYGg== X-Received: by 2002:a05:600c:511c:b0:425:52c9:3fae with SMTP id 5b1f17b1804b1-4257a015366mr61494445e9.1.1719927516628; Tue, 02 Jul 2024 06:38:36 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:1c96:b0:423:7d5:b53c with SMTP id 5b1f17b1804b1-4256bb0b1f6ls18818035e9.0.-pod-prod-06-eu; Tue, 02 Jul 2024 06:38:34 -0700 (PDT) X-Received: by 2002:a05:600c:314b:b0:424:a5df:b998 with SMTP id 5b1f17b1804b1-4257a00cfd8mr56777405e9.9.1719927514457; Tue, 02 Jul 2024 06:38:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1719927514; cv=none; d=google.com; s=arc-20160816; b=dTpzTpfFI9WC8naF62TArfHHT2MS4gh66JzV/k3A6vrw0hC/G+0YbpP6gHH9mxU/v+ i5Ff1IiT1NB+fRjuKCVjyS7Lck7W8wXzHQsgACxqkCQ0PIPhxmORFBPkx5hDqLSa3Cj1 eE9noACBBU9hbsnRJVLulfD/u1WuT0MEMBaaJ7wgaePEFhhZK0QzkJ37kqtF/TgGN9+S mulSDjIS0lkYQu0GP3vtzF9YvByDaQ5wO+G7Zm8Sp62ZcWVZVMyYmDH9BxucJo4aIoFH 38bHrsCO5LEcoquJuRjnlsnWbfSGHMHWdecQyuzJE043Bj1xyKRg7pbXw7WElGq/Cd/7 BCWw== 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:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=TCuFpVh2p5rZ/gBB0e7WFXxi71qsiJbJmvANUt82SOg=; fh=TWGwN84gUgHIe5O4CbyH9KISyeWwGbvUX7cnJPxVD70=; b=sVOxYAwM+6VnhcXY6uRKamxfFBY9BcPpxMfJVhvfSyomE0hJ7a6X8mKiIAJ/jx0g6X q+uCV5ohCkHRQNTs4GscRSFbhBmI4jFllQjliAW0sTvKNtXyHZgOZIiQeJ+ROAW3whpm Tt06cMBONA8X5bwVIiwnw46wqMWt1z7qnhVsS5WHC7WR0RF8se1n8FsqeMxeBmNUCG8S gq0adZpC0PYFjdFaK9HPBaKFMFh0XFSJ1WC2Phzx/nH+Pl3ZcA3eBPDnQdRw50ioPlrk YMTS8rlMMwy3i7oST1aQKgTWs5YzKcCqOM9QyQlm7LRY8x5dd/Sk5Tx4gQdy9NWxttMc kdnQ==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=IS6pRBU0; spf=pass (google.com: domain of fm-294854-20240702133834f97ecd606dac0079ce-63e9a8@rts-flowmailer.siemens.com designates 185.136.65.226 as permitted sender) smtp.mailfrom=fm-294854-20240702133834f97ecd606dac0079ce-63E9a8@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from mta-65-226.siemens.flowmailer.net (mta-65-226.siemens.flowmailer.net. [185.136.65.226]) by gmr-mx.google.com with ESMTPS id 5b1f17b1804b1-42577a0deb0si4303495e9.0.2024.07.02.06.38.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Jul 2024 06:38:34 -0700 (PDT) Received-SPF: pass (google.com: domain of fm-294854-20240702133834f97ecd606dac0079ce-63e9a8@rts-flowmailer.siemens.com designates 185.136.65.226 as permitted sender) client-ip=185.136.65.226; Received: by mta-65-226.siemens.flowmailer.net with ESMTPSA id 20240702133834f97ecd606dac0079ce for ; Tue, 02 Jul 2024 15:38:34 +0200 X-Patchwork-Original-From: "'Jan Kiszka' via isar-users" From: Jan Kiszka To: isar-users Cc: Quirin Gylstorff Subject: [PATCH 15/17] meta-isar: deploy-image: Prepare for auto-installation mode Date: Tue, 2 Jul 2024 15:38:29 +0200 Message-ID: <9545129ff28fb28b7142a31090f023c4420a5f4a.1719927511.git.jan.kiszka@siemens.com> In-Reply-To: References: MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-294854:519-21489:flowmailer X-Original-Sender: jan.kiszka@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=IS6pRBU0; spf=pass (google.com: domain of fm-294854-20240702133834f97ecd606dac0079ce-63e9a8@rts-flowmailer.siemens.com designates 185.136.65.226 as permitted sender) smtp.mailfrom=fm-294854-20240702133834f97ecd606dac0079ce-63E9a8@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Jan Kiszka Reply-To: Jan Kiszka 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_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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= From: Jan Kiszka Wrap the code blocks that will be skipped in auto-installation mode separately to ease review. As the controlling variable remains false for now, there are effectively no functional changes. Signed-off-by: Jan Kiszka --- .../deploy-image/files/deploy-image-wic.sh | 163 +++++++++--------- 1 file changed, 86 insertions(+), 77 deletions(-) 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 index 77eebe18..9df93fe7 100644 --- a/meta-isar/recipes-installer/deploy-image/files/deploy-image-wic.sh +++ b/meta-isar/recipes-installer/deploy-image/files/deploy-image-wic.sh @@ -6,21 +6,26 @@ installdata=${INSTALL_DATA:-/install} -DISK_IMAGE=$(find "$installdata" -type f -iname "*.wic*" -a -not -iname "*.wic.bmap" -exec basename {} \;) -if [ -z "$DISK_IMAGE" ] || [ ! -f "$installdata/$DISK_IMAGE" ]; then - pushd "$installdata" - for f in $(find . -type f); do - array+=("$f" "$f") - done - popd - if [ ${#array[@]} -gt 0 ]; then - if ! DISK_IMAGE=$(dialog --no-tags \ - --menu "Select image to be installed" 10 60 3 \ - "${array[@]}" --output-fd 1); then - exit 0 +AUTO_INSTALL=false + +if ! $AUTO_INSTALL; then + DISK_IMAGE=$(find "$installdata" -type f -iname "*.wic*" -a -not -iname "*.wic.bmap" -exec basename {} \;) + if [ -z "$DISK_IMAGE" ] || [ ! -f "$installdata/$DISK_IMAGE" ]; then + pushd "$installdata" + for f in $(find . -type f); do + array+=("$f" "$f") + done + popd + if [ ${#array[@]} -gt 0 ]; then + if ! DISK_IMAGE=$(dialog --no-tags \ + --menu "Select image to be installed" 10 60 3 \ + "${array[@]}" --output-fd 1); then + exit 0 + fi fi fi fi + if [ ! -f "$installdata/$DISK_IMAGE" ]; then dialog --msgbox "Could not find an image to install. Installation aborted." 6 60 exit 1 @@ -28,79 +33,81 @@ fi DISK_BMAP=$(find "$installdata" -type f -iname "${DISK_IMAGE%.wic*}.wic.bmap") # inspired by poky/meta/recipes-core/initrdscripts/files/install-efi.sh -target_device_list="" -current_root_dev=$(readlink -f "$(findmnt / -o source -n)") -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*) +if ! $AUTO_INSTALL; then + target_device_list="" + current_root_dev=$(readlink -f "$(findmnt / -o source -n)") + current_root_dev=${current_root_dev#\/dev/} + case $current_root_dev in + mmcblk*) ;; - sr*) - # skip CDROM device - ;; - ram*) - # skip ram device + nvme*) ;; *) - case $device in - $current_root_dev*) - # skip the device we are running from - ;; - *) - target_device_list="$target_device_list $device" - ;; - esac + current_root_dev=${current_root_dev%%[0-9]*} ;; 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 + echo "Searching for target device..." -if [ "$(echo "$target_device_list" | wc -w)" -gt 1 ]; then - array=() - for target in $(echo "$target_device_list" | xargs -n1 | sort); do - target_size=$(lsblk --nodeps --noheadings -o SIZE /dev/"$target" | tr -d " ") - if cmp /dev/zero /dev/"$target" -n 1M; then - state="empty" - else - state="contains data" - fi - array+=("/dev/$target" "/dev/$target ($target_size, $state)") + 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 ! TARGET_DEVICE=$(dialog --no-tags \ - --menu "Select device to install image to" 10 60 3 \ - "${array[@]}" --output-fd 1); then + + 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 $(echo "$target_device_list" | xargs -n1 | sort); do + target_size=$(lsblk --nodeps --noheadings -o SIZE /dev/"$target" | tr -d " ") + if cmp /dev/zero /dev/"$target" -n 1M; then + state="empty" + else + state="contains data" + fi + array+=("/dev/$target" "/dev/$target ($target_size, $state)") + done + if ! TARGET_DEVICE=$(dialog --no-tags \ + --menu "Select device to install image to" 10 60 3 \ + "${array[@]}" --output-fd 1); then + exit 0 + fi + else + TARGET_DEVICE=/dev/$(echo "$target_device_list" | tr -d " ") + fi + TARGET_DEVICE_SIZE=$(lsblk --nodeps --noheadings -o SIZE "$TARGET_DEVICE" | tr -d " ") + if ! dialog --yes-label Ok --no-label Cancel \ + --yesno "Start installing\n'$DISK_IMAGE'\nto $TARGET_DEVICE (capacity: $TARGET_DEVICE_SIZE)" 7 60; then exit 0 fi -else - TARGET_DEVICE=/dev/$(echo "$target_device_list" | tr -d " ") -fi -TARGET_DEVICE_SIZE=$(lsblk --nodeps --noheadings -o SIZE "$TARGET_DEVICE" | tr -d " ") -if ! dialog --yes-label Ok --no-label Cancel \ - --yesno "Start installing\n'$DISK_IMAGE'\nto $TARGET_DEVICE (capacity: $TARGET_DEVICE_SIZE)" 7 60; then - exit 0 fi if ! cmp /dev/zero "$TARGET_DEVICE" -n 1M && \ @@ -118,6 +125,8 @@ if ! bmaptool copy ${bmap_options} "$installdata/$DISK_IMAGE" "${TARGET_DEVICE}" exit 1 fi -dialog --title "Reboot" \ - --msgbox "Installation is successful. System will be rebooted. Please remove the USB stick." 6 60 +if ! $AUTO_INSTALL; then + dialog --title "Reboot" \ + --msgbox "Installation is successful. System will be rebooted. Please remove the USB stick." 6 60 +fi exit 0