post-image.sh 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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. for arg in "$@"
  8. do
  9. case "${arg}" in
  10. --add-miniuart-bt-overlay)
  11. if ! grep -qE '^dtoverlay=' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
  12. echo "Adding 'dtoverlay=miniuart-bt' to config.txt (fixes ttyAMA0 serial console)."
  13. cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
  14. # fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console
  15. dtoverlay=miniuart-bt
  16. __EOF__
  17. fi
  18. ;;
  19. --aarch64)
  20. # Run a 64bits kernel (armv8)
  21. sed -e '/^kernel=/s,=.*,=Image,' -i "${BINARIES_DIR}/rpi-firmware/config.txt"
  22. if ! grep -qE '^arm_64bit=1' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
  23. cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
  24. # enable 64bits support
  25. arm_64bit=1
  26. __EOF__
  27. fi
  28. ;;
  29. --gpu_mem_256=*|--gpu_mem_512=*|--gpu_mem_1024=*)
  30. # Set GPU memory
  31. gpu_mem="${arg:2}"
  32. sed -e "/^${gpu_mem%=*}=/s,=.*,=${gpu_mem##*=}," -i "${BINARIES_DIR}/rpi-firmware/config.txt"
  33. ;;
  34. esac
  35. done
  36. # Pass an empty rootpath. genimage makes a full copy of the given rootpath to
  37. # ${GENIMAGE_TMP}/root so passing TARGET_DIR would be a waste of time and disk
  38. # space. We don't rely on genimage to build the rootfs image, just to insert a
  39. # pre-built one in the disk image.
  40. trap 'rm -rf "${ROOTPATH_TMP}"' EXIT
  41. ROOTPATH_TMP="$(mktemp -d)"
  42. rm -rf "${GENIMAGE_TMP}"
  43. genimage \
  44. --rootpath "${ROOTPATH_TMP}" \
  45. --tmppath "${GENIMAGE_TMP}" \
  46. --inputpath "${BINARIES_DIR}" \
  47. --outputpath "${BINARIES_DIR}" \
  48. --config "${GENIMAGE_CFG}"
  49. exit $?