| #!/usr/bin/env bash |
| set -e |
| BOARD_DIR="$(realpath "$(dirname "$0")")" |
| DATA_PART_SIZE="32M" |
| DEVICE_TYPE="buildroot-x86_64" |
| ARTIFACT_NAME="1.0" |
| |
| |
| # Parse arguments. |
| function parse_args { |
| local o O opts |
| o='a:o:d:' |
| O='artifact-name:,data-part-size:,device-type:' |
| opts="$(getopt -o "${o}" -l "${O}" -- "${@}")" |
| eval set -- "${opts}" |
| while [ ${#} -gt 0 ]; do |
| case "${1}" in |
| (-o|--data-part-size) |
| DATA_PART_SIZE="${2}"; shift 2 |
| ;; |
| (-d|--device-type) |
| DEVICE_TYPE="${2}"; shift 2 |
| ;; |
| (-a|--artifact-name) |
| ARTIFACT_NAME="${2}"; shift 2 |
| ;; |
| (--) |
| shift; break |
| ;; |
| esac |
| done |
| } |
| |
| # Create the data partition |
| function make_data_partition { |
| "${HOST_DIR}/sbin/mkfs.ext4" \ |
| -F \ |
| -r 1 \ |
| -N 0 \ |
| -m 5 \ |
| -L "data" \ |
| "${BINARIES_DIR}/data-part.ext4" "${DATA_PART_SIZE}" |
| } |
| |
| |
| # Create a mender image. |
| function generate_mender_image { |
| echo "Creating ${BINARIES_DIR}/${DEVICE_TYPE}-${ARTIFACT_NAME}.mender" |
| "${HOST_DIR}/bin/mender-artifact" \ |
| --compression lzma \ |
| write rootfs-image \ |
| -t "${DEVICE_TYPE}" \ |
| -n "${BR2_VERSION}" \ |
| -f "${BINARIES_DIR}/rootfs.ext2" \ |
| -o "${BINARIES_DIR}/${DEVICE_TYPE}-${ARTIFACT_NAME}.mender" |
| } |
| |
| |
| function generate_image { |
| sh support/scripts/genimage.sh -c "${BOARD_DIR}/genimage-efi.cfg" |
| } |
| |
| # Main function. |
| function main { |
| parse_args "${@}" |
| make_data_partition |
| generate_image |
| generate_mender_image |
| exit $? |
| } |
| |
| main "${@}" |