From e6defffb2355300e7fd8b9e6c79d9383a53b77f2 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Sat, 24 Apr 2021 23:20:12 +0100 Subject: [PATCH] Makefile: Optionally generate a bmaptool map file bmaptool(1), from the bmap-tools package, can write the used blocks in a sparse disk image to media, while saving time and I/O by not writing zeroes to the unused blocks. Typical use: make raspi2_bullseye.img.bmap raspi2_bullseye.img.xz ... upload those two files ... ... download those two files ... bmaptool copy raspi2_bullseye.img.xz /dev/disk/by-id/usb-Generic-_SD_MMC_*-0:0 Signed-off-by: Simon McVittie --- .gitignore | 1 + Makefile | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index d86c999..60d5887 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ # suggested build result and log filenames +raspi*.bmap raspi*.img raspi*.img.xz raspi*.log diff --git a/Makefile b/Makefile index a0c9f96..06b578d 100644 --- a/Makefile +++ b/Makefile @@ -119,6 +119,9 @@ raspi_4_bullseye.yaml: raspi_base_bullseye.yaml %.img.xz: %.img xz -f -k -z -9 $(@:.xz=) +%.img.bmap: %.img + bmaptool create -o $@ $< + %.img: %.yaml touch $(@:.img=.log) time nice vmdb2 --verbose --rootfs-tarball=$(subst .img,.tar.gz,$@) --output=$@ $(subst .img,.yaml,$@) --log $(subst .img,.log,$@) @@ -133,12 +136,14 @@ _clean_images: rm -f $(addsuffix .img,$(platforms)) _clean_xzimages: rm -f $(addsuffix .img.xz,$(platforms)) +_clean_bmaps: + rm -f $(addsuffix .img.bmap,$(platforms)) _clean_shasums: rm -f $(addsuffix .sha256,$(platforms)) $(addsuffix .xz.sha256,$(platforms)) _clean_logs: rm -f $(addsuffix .log,$(platforms)) _clean_tarballs: rm -f $(addsuffix .tar.gz,$(platforms)) -clean: _clean_xzimages _clean_images _clean_shasums _clean_yaml _clean_tarballs _clean_logs +clean: _clean_xzimages _clean_images _clean_shasums _clean_yaml _clean_tarballs _clean_logs _clean_bmaps .PHONY: _ck_root _build_img clean _clean_images _clean_yaml _clean_tarballs _clean_logs