post-image-efi.sh 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/usr/bin/env bash
  2. set -e
  3. BOARD_DIR="$(realpath "$(dirname "$0")")"
  4. DATA_PART_SIZE="32M"
  5. DEVICE_TYPE="buildroot-x86_64"
  6. ARTIFACT_NAME="1.0"
  7. # Parse arguments.
  8. function parse_args {
  9. local o O opts
  10. o='a:o:d:'
  11. O='artifact-name:,data-part-size:,device-type:'
  12. opts="$(getopt -o "${o}" -l "${O}" -- "${@}")"
  13. eval set -- "${opts}"
  14. while [ ${#} -gt 0 ]; do
  15. case "${1}" in
  16. (-o|--data-part-size)
  17. DATA_PART_SIZE="${2}"; shift 2
  18. ;;
  19. (-d|--device-type)
  20. DEVICE_TYPE="${2}"; shift 2
  21. ;;
  22. (-a|--artifact-name)
  23. ARTIFACT_NAME="${2}"; shift 2
  24. ;;
  25. (--)
  26. shift; break
  27. ;;
  28. esac
  29. done
  30. }
  31. # Create the data partition
  32. function make_data_partition {
  33. "${HOST_DIR}/sbin/mkfs.ext4" \
  34. -F \
  35. -r 1 \
  36. -N 0 \
  37. -m 5 \
  38. -L "data" \
  39. "${BINARIES_DIR}/data-part.ext4" "${DATA_PART_SIZE}"
  40. }
  41. # Create a mender image.
  42. function generate_mender_image {
  43. echo "Creating ${BINARIES_DIR}/${DEVICE_TYPE}-${ARTIFACT_NAME}.mender"
  44. "${HOST_DIR}/bin/mender-artifact" \
  45. --compression lzma \
  46. write rootfs-image \
  47. -t "${DEVICE_TYPE}" \
  48. -n "${BR2_VERSION}" \
  49. -f "${BINARIES_DIR}/rootfs.ext2" \
  50. -o "${BINARIES_DIR}/${DEVICE_TYPE}-${ARTIFACT_NAME}.mender"
  51. }
  52. function generate_image {
  53. sh support/scripts/genimage.sh -c "${BOARD_DIR}/genimage-efi.cfg"
  54. }
  55. # Main function.
  56. function main {
  57. parse_args "${@}"
  58. make_data_partition
  59. generate_image
  60. generate_mender_image
  61. exit $?
  62. }
  63. main "${@}"