post-image.sh 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/bin/bash
  2. set -e
  3. BOARD_DIR="$(dirname $0)"
  4. BOARD_NAME="$(basename ${BOARD_DIR})"
  5. GENIMAGE_CFG="${BOARD_DIR}/genimage-${BOARD_NAME}.cfg"
  6. GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
  7. # generate genimage from template if a board specific variant doesn't exists
  8. if [ ! -e "${GENIMAGE_CFG}" ]; then
  9. GENIMAGE_CFG="${BINARIES_DIR}/genimage.cfg"
  10. FILES=()
  11. for i in "${BINARIES_DIR}"/*.dtb "${BINARIES_DIR}"/rpi-firmware/*; do
  12. FILES+=( "${i#${BINARIES_DIR}/}" )
  13. done
  14. KERNEL=$(sed -n 's/^kernel=//p' "${BINARIES_DIR}/rpi-firmware/config.txt")
  15. FILES+=( "${KERNEL}" )
  16. BOOT_FILES=$(printf '\\t\\t\\t"%s",\\n' "${FILES[@]}")
  17. sed "s|#BOOT_FILES#|${BOOT_FILES}|" "${BOARD_DIR}/genimage.cfg.in" \
  18. > "${GENIMAGE_CFG}"
  19. fi
  20. # Pass an empty rootpath. genimage makes a full copy of the given rootpath to
  21. # ${GENIMAGE_TMP}/root so passing TARGET_DIR would be a waste of time and disk
  22. # space. We don't rely on genimage to build the rootfs image, just to insert a
  23. # pre-built one in the disk image.
  24. trap 'rm -rf "${ROOTPATH_TMP}"' EXIT
  25. ROOTPATH_TMP="$(mktemp -d)"
  26. rm -rf "${GENIMAGE_TMP}"
  27. genimage \
  28. --rootpath "${ROOTPATH_TMP}" \
  29. --tmppath "${GENIMAGE_TMP}" \
  30. --inputpath "${BINARIES_DIR}" \
  31. --outputpath "${BINARIES_DIR}" \
  32. --config "${GENIMAGE_CFG}"
  33. exit $?