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 <smcv@debian.org>
This commit is contained in:
Simon McVittie 2021-04-24 23:20:12 +01:00
parent 09805aa49b
commit e6defffb23
2 changed files with 7 additions and 1 deletions

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
# suggested build result and log filenames
raspi*.bmap
raspi*.img
raspi*.img.xz
raspi*.log

View File

@ -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