board/qemu: Generate sdcard.img with post-image

In order to test AimeeOS A/B filesystem updates, we need a full disk
image just like the Raspberry Pi variant has.
master
Dustin 2025-08-21 07:50:00 -05:00
parent d41ad4c55c
commit 66af20213b
5 changed files with 31 additions and 3 deletions

View File

@ -10,6 +10,9 @@ config AIMEEOS
select BR2_PACKAGE_COREUTILS
select BR2_PACKAGE_TAR
select BR2_PACKAGE_ZSTD
select BR2_PACKAGE_HOST_DOSFSTOOLS
select BR2_PACKAGE_HOST_GENIMAGE
select BR2_PACKAGE_HOST_MTOOLS
select BR2_TARGET_GRUB2
select BR2_PACKAGE_HOST_ZSTD
help
@ -25,8 +28,5 @@ config AIMEEOS_RPI
select BR2_TARGET_UBOOT_NEEDS_OPENSSL
select BR2_TARGET_UBOOT_NEEDS_GNUTLS
select BR2_TARGET_GRUB2_ARM_EFI
select BR2_PACKAGE_HOST_DOSFSTOOLS
select BR2_PACKAGE_HOST_GENIMAGE
select BR2_PACKAGE_HOST_MTOOLS
help
Support running Aimee OS on Rasperry Pi devices

1
board/qemu/genimage.cfg Symbolic link
View File

@ -0,0 +1 @@
../raspberrypi3/genimage.cfg

22
board/qemu/post-image.sh Executable file
View File

@ -0,0 +1,22 @@
#!/bin/sh
set -e
BOARD_DIR=$(dirname "$0")
GRUBENV="${BINARIES_DIR}"/efi-part/EFI/BOOT/grubenv
genimage_tmp=$(mktemp -d)
trap 'rm -rf "${genimage_tmp}"' EXIT
mkdir -p "${genimage_tmp}"/rootfs "${genimage_tmp}"/tmp
grub-editenv "${GRUBENV}" set default=0
grub-editenv "${GRUBENV}" set timeout=3
cd "${BINARIES_DIR}"
genimage \
--rootpath "${genimage_tmp}/rootfs" \
--tmppath "${genimage_tmp}/tmp" \
--inputpath "${BINARIES_DIR}" \
--outputpath "${BINARIES_DIR}" \
--config "${BOARD_DIR}"/genimage.cfg

4
ci/Jenkinsfile vendored
View File

@ -53,8 +53,12 @@ pipeline {
archiveArtifacts('.config')
}
dir('_build/images') {
sh 'zstd -f firmware.img'
sh 'zstd -f sdcard.img'
archiveArtifacts([
'firmware.img.zst',
'rootfs.squashfs',
'sdcard.img.zst',
].join(','))
}
}

View File

@ -3,6 +3,7 @@ BR2_TOOLCHAIN_BUILDROOT_VENDOR="aimeeos"
BR2_GLOBAL_PATCH_DIR="board/qemu/patches"
BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
BR2_INIT_SYSTEMD=y
BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_AIMEEOS_PATH)/board/qemu/post-image.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/aarch64-virt/linux.config"