forked from suse-edge/Factory
In December 2024, the upstream Kiwi team dropped the md5 checksum for generated
images and went with sha256, for good reason:
d4d39e481a
These changes have recently been reflected in updated `dracut-kiwi-oem-repart`
and `dracut-kiwi-oem-dump` Dracut modules, bumping to a 10.2 codebase, which
expect the sha256 checksum to be available at install time on SelfInstall ISO
images. However, in the current branch of the Kiwi builder, we use 10.1, which
generates md5 checksums, resulting in an error at deployment time as the Dracut
modules cannot find the sha256 checksum file.
NOTE: This is being put into the 3.2 branch *only* right now, as it relies on
Micro 6.0; the Kiwi changes have not yet permeated into Micro 6.1, so we'll
need to forward-port this into 3.3 when 6.1 has the new modules. Micro 6.1
images can still be built successfully on the Kiwi 10.1 branches with md5.
########################### Kiwi SDK Image Instructions ########################### Please ensure that you're running this on a registered SLE Micro 6.0 system, and make sure that SELinux is disabled: # setenforce 0 Next, download the podman image: # podman pull %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.2.12.0 Make a local output directory (where the images will reside): # mkdir output Then, to build a standard "Base" image, run the following in podman: # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.2.12.0 build-image To build a "Base" SelfInstall ISO, you can add additional flags, for example: # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.2.12.0 build-image -p Base-SelfInstall Then, to build a standard "Default" image, run the following in podman: # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.2.12.0 build-image -p Default To build a "Default" SelfInstall ISO, you can add additional flags, for example: # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.2.12.0 build-image -p Default-SelfInstall To build an image with a RealTime kernel, e.g. a RAW disk image ("Default"), use the following: # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.2.12.0 build-image -p Base-RT To build an image that supports a large block/sectorsize (4096), use the "-b" flag, for example: # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.2.12.0 build-image -p Default-SelfInstall -b # mkdir mydefs/ # cp /path/to/SL-Micro.kiwi mydefs/ # cp /path/to/config.sh mydefs/ # podman run --privileged -v /etc/zypp/repos.d:/micro-sdk/repos/ -v ./output:/tmp/output -v ./mydefs/:/micro-sdk/defs/ -it %%IMG_REPO%%/%%IMG_PREFIXkiwi-builder:10.2.12.0 build-image All output will be in the local $(pwd)/output directory, for example: # ls -1 output/ SLE-Micro.x86_64-6.0.changes SLE-Micro.x86_64-6.0.packages SLE-Micro.x86_64-6.0.raw SLE-Micro.x86_64-6.0.verified build kiwi.result kiwi.result.json Note, if you want to rebuild the image, you'll need to empty the output directory, or Kiwi will error due to existing output files: # rm -rf output/*