post-image.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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-pi3-miniuart-bt-overlay)
  11. if ! grep -qE '^dtoverlay=' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
  12. echo "Adding 'dtoverlay=pi3-miniuart-bt' to config.txt (fixes ttyAMA0 serial console)."
  13. cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
  14. # fixes rpi3 ttyAMA0 serial console
  15. dtoverlay=pi3-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. # Enable uart console
  29. if ! grep -qE '^enable_uart=1' "${BINARIES_DIR}/rpi-firmware/config.txt"; then
  30. cat << __EOF__ >> "${BINARIES_DIR}/rpi-firmware/config.txt"
  31. # enable rpi3 ttyS0 serial console
  32. enable_uart=1
  33. __EOF__
  34. fi
  35. ;;
  36. --gpu_mem_256=*|--gpu_mem_512=*|--gpu_mem_1024=*)
  37. # Set GPU memory
  38. gpu_mem="${arg:2}"
  39. sed -e "/^${gpu_mem%=*}=/s,=.*,=${gpu_mem##*=}," -i "${BINARIES_DIR}/rpi-firmware/config.txt"
  40. ;;
  41. esac
  42. done
  43. # Pass an empty rootpath. genimage makes a full copy of the given rootpath to
  44. # ${GENIMAGE_TMP}/root so passing TARGET_DIR would be a waste of time and disk
  45. # space. We don't rely on genimage to build the rootfs image, just to insert a
  46. # pre-built one in the disk image.
  47. trap 'rm -rf "${ROOTPATH_TMP}"' EXIT
  48. ROOTPATH_TMP="$(mktemp -d)"
  49. rm -rf "${GENIMAGE_TMP}"
  50. genimage \
  51. --rootpath "${ROOTPATH_TMP}" \
  52. --tmppath "${GENIMAGE_TMP}" \
  53. --inputpath "${BINARIES_DIR}" \
  54. --outputpath "${BINARIES_DIR}" \
  55. --config "${GENIMAGE_CFG}"
  56. exit $?