board/raspberrypi/post-image.sh: generate genimage config from template if not present
The rpi genimage configurations are all identical, except for the boot partition files, which include: - Device tree files (*.dtb) - rpi-firmware files (rpi-firmware/*) - Kernel image (Image/zImage) All of these are quite simple to figure out programmatically based on the content of BINARIES_DIR, so extend post-image.sh to fall back to generating a genimage configuration based on genimage.cfg.in if a board specific one does not exist. Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
ce17f93e82
commit
e37ee5acdc
25
board/raspberrypi/genimage.cfg.in
Normal file
25
board/raspberrypi/genimage.cfg.in
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
image boot.vfat {
|
||||||
|
vfat {
|
||||||
|
files = {
|
||||||
|
#BOOT_FILES#
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
size = 32M
|
||||||
|
}
|
||||||
|
|
||||||
|
image sdcard.img {
|
||||||
|
hdimage {
|
||||||
|
}
|
||||||
|
|
||||||
|
partition boot {
|
||||||
|
partition-type = 0xC
|
||||||
|
bootable = "true"
|
||||||
|
image = "boot.vfat"
|
||||||
|
}
|
||||||
|
|
||||||
|
partition rootfs {
|
||||||
|
partition-type = 0x83
|
||||||
|
image = "rootfs.ext4"
|
||||||
|
}
|
||||||
|
}
|
@ -7,6 +7,23 @@ BOARD_NAME="$(basename ${BOARD_DIR})"
|
|||||||
GENIMAGE_CFG="${BOARD_DIR}/genimage-${BOARD_NAME}.cfg"
|
GENIMAGE_CFG="${BOARD_DIR}/genimage-${BOARD_NAME}.cfg"
|
||||||
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
|
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
|
||||||
|
|
||||||
|
# generate genimage from template if a board specific variant doesn't exists
|
||||||
|
if [ ! -e "${GENIMAGE_CFG}" ]; then
|
||||||
|
GENIMAGE_CFG="${BINARIES_DIR}/genimage.cfg"
|
||||||
|
FILES=()
|
||||||
|
|
||||||
|
for i in "${BINARIES_DIR}"/*.dtb "${BINARIES_DIR}"/rpi-firmware/*; do
|
||||||
|
FILES+=( "${i#${BINARIES_DIR}/}" )
|
||||||
|
done
|
||||||
|
|
||||||
|
KERNEL=$(sed -n 's/^kernel=//p' "${BINARIES_DIR}/rpi-firmware/config.txt")
|
||||||
|
FILES+=( "${KERNEL}" )
|
||||||
|
|
||||||
|
BOOT_FILES=$(printf '\\t\\t\\t"%s",\\n' "${FILES[@]}")
|
||||||
|
sed "s|#BOOT_FILES#|${BOOT_FILES}|" "${BOARD_DIR}/genimage.cfg.in" \
|
||||||
|
> "${GENIMAGE_CFG}"
|
||||||
|
fi
|
||||||
|
|
||||||
# Pass an empty rootpath. genimage makes a full copy of the given rootpath to
|
# Pass an empty rootpath. genimage makes a full copy of the given rootpath to
|
||||||
# ${GENIMAGE_TMP}/root so passing TARGET_DIR would be a waste of time and disk
|
# ${GENIMAGE_TMP}/root so passing TARGET_DIR would be a waste of time and disk
|
||||||
# space. We don't rely on genimage to build the rootfs image, just to insert a
|
# space. We don't rely on genimage to build the rootfs image, just to insert a
|
||||||
|
Loading…
Reference in New Issue
Block a user