[RFC] isar-installer: Let bmap resolve bmap filename

Message ID 20250917123525.488412-1-alexander.heinisch@siemens.com
State New
Headers show
Series [RFC] isar-installer: Let bmap resolve bmap filename | expand

Commit Message

alexander.heinisch Sept. 17, 2025, 12:35 p.m. UTC
From: Alexander Heinisch <alexander.heinisch@siemens.com>

The current implementation detects .wic.bmap files only in local /install folder only.
That means, bmap is not supported when pulling images from http or similar.

from `man 1 bmaptool`:
"Unless the bmap file is explicitly specified with the "--bmap" option, bmaptool automatically discovers it by looking for a file with the same basename as IMAGE but with the ".bmap" extension. The bmap file is only looked for in IMAGE's directory (or base URL, in case IMAGE was specified as an URL). If the bmap file is not found, bmaptool fails. To copy without bmap, use the "--nobmap" option."

Thus, having `bmaptool copy` auto resolve the bmap file, allows a more robust handling to detect bmap files.
Not only on local media, but also when image is pulled via http.
The downside is, that it fails in cases we don't provide a bmap file unless --nobmap is specified. (Handling for such is not contained in this patch)

Is support for installers without bmap file really a thing?

Signed-off-by: Alexander Heinisch <alexander.heinisch@siemens.com>
---
 .../deploy-image/files/usr/bin/deploy-image-wic.sh    | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

Patch

diff --git a/meta-isar/recipes-installer/deploy-image/files/usr/bin/deploy-image-wic.sh b/meta-isar/recipes-installer/deploy-image/files/usr/bin/deploy-image-wic.sh
index 333762f1..3162e9f1 100755
--- a/meta-isar/recipes-installer/deploy-image/files/usr/bin/deploy-image-wic.sh
+++ b/meta-isar/recipes-installer/deploy-image/files/usr/bin/deploy-image-wic.sh
@@ -31,7 +31,6 @@  if ! $installer_unattended; then
         dialog --msgbox "Could not find an image to install. Installation aborted." 6 60
         exit 1
     fi
-    DISK_BMAP=$(find "$installdata" -type f -iname "${installer_image_uri%.wic*}.wic.bmap")
 
     # inspired by poky/meta/recipes-core/initrdscripts/files/install-efi.sh
     target_device_list=""
@@ -117,10 +116,6 @@  if ! $installer_unattended; then
 
     # set absolute paths to be compatible with unattended mode
     installer_image_uri="$installdata/$installer_image_uri"
-
-    if [ -z "$DISK_BMAP" ]; then
-        DISK_BMAP="$installdata/$DISK_BMAP"
-    fi
 fi
 
 if ! cmp /dev/zero "$installer_target_dev" -n 1M; then
@@ -139,11 +134,6 @@  if ! cmp /dev/zero "$installer_target_dev" -n 1M; then
     fi
 fi
 
-bmap_options=""
-if [ -z "$DISK_BMAP" ]; then
-    bmap_options="--nobmap"
-fi
-
 if ! $installer_unattended; then
     clear
 fi
@@ -160,6 +150,7 @@  version_ge() {
 # Get bmap-tools version
 bmap_version=$(bmaptool --version | awk '{ print $NF }')
 
+bmap_options=""
 if version_ge "$bmap_version" "3.6"; then
     # Create a named pipe for progress communication
     progress_pipe="/tmp/progress"