#!/bin/bash ##################################################################### ## ## @File: $RCSfile: make_images.sh,v $ ## @Author: Harald Krippel ## @Revision: $Revision: 1.00 $ ## @Date: $Date: 2008-11-11 10:36:00 $ ## ## @Description: ## ## Create user images. ## ##################################################################### # project path declare -r DEL_TOOL_DIR="/home/harald/Digi/DigiEL-5.2" declare -r DEL_PROJ_DIR="`pwd`" declare -r VERBOSE=1 # # Userfs images # declare CONFIG_IMAGE_JFFS2_BASENAME="userfs-cme9210js" declare CONFIG_IMAGE_JFFS2_ERASEBLOCK="64" #declare CONFIG_IMAGE_JFFS2_NOCLEANMARKERS ="" #declare CONFIG_IMAGE_JFFS2_COMPRESSION_NONE="" declare CONFIG_IMAGE_JFFS2_COMPRESSION_PRIO="y" #declare CONFIG_IMAGE_JFFS2_COMPRESSION_SIZE="" declare CONFIG_IMAGE_JFFS2_COMPRESSION="priority" declare -r SCRIPTNAME="`basename ${0}`" declare -r OPTSTRING="r; userfs;" declare -r IMAGES_DIR="${DEL_PROJ_DIR}/images" declare USERFS_FLAG="false" # just overwrite it with "y" if a userfs image has been created declare USERFS_IMAGES_CREATED="" declare TMPDIR source ${DEL_TOOL_DIR}/scripts/getoptx.sh ############################################################################### ## Print script help and available options. ############################################################################### usage() { printf "\nUsage: %s [OPTIONS]\n\n" ${SCRIPTNAME} printf "\t-r, --userfs:\tmake userfs images\n" printf "\n" } ############################################################################### ## Print error message and exit ############################################################################### error() { printf "\n*** Error: %s ***\n\n" "${1}" [ -d "${TMPDIR}" ] && rm -rf "${TMPDIR}"; exit 1 } warning() { printf "\n[ WARNING ] $1\n\n" } ############################################################################### ## Creates a JFFS2 userfs image ## Usage: ## make_userfs_jffs2 [--silent] ############################################################################### make_userfs_jffs2() { local JFFS2_PARAM="-q" [ -n "${VERBOSE}" ] && [ "x${1}" != "x--silent" ] && echo "Creating JFFS2 userfs images, basename: ${CONFIG_IMAGE_JFFS2_BASENAME}" if [ "x${CONFIG_IMAGE_JFFS2_NOCLEANMARKERS}" == "xy" ]; then JFFS2_PARAM="${JFFS2_PARAM} -n" SUMTOOL_PARAM="-n" fi JFFS2_PARAM="${JFFS2_PARAM} -m ${CONFIG_IMAGE_JFFS2_COMPRESSION}" IMAGE_BASENAME="`echo ${CONFIG_IMAGE_JFFS2_BASENAME} | cut -d. -f1`" for i in ${CONFIG_IMAGE_JFFS2_ERASEBLOCK}; do TMPFILE=`mktemp -p ${DEL_PROJ_DIR}` "${DEL_TOOL_DIR}"/usr/bin/mkfs.jffs2 ${JFFS2_PARAM} -e "${i}" -d "${USERFS_DIR}" -o "${TMPFILE}" "${DEL_TOOL_DIR}"/usr/bin/sumtool ${SUMTOOL_PARAM} -e "${i}" -i "${TMPFILE}" -o "${IMAGES_DIR}/${IMAGE_BASENAME}-${i}.jffs2" rm -f "${TMPFILE}" echo "--> JFFS2 userfs image: ${IMAGES_DIR}/${IMAGE_BASENAME}-${i}.jffs2" done } while getoptex "${OPTSTRING}" "${@}" ; do case ${OPTOPT} in r|userfs) USERFS_FLAG="true" ;; esac done ############################################################################### ## Sanity checks. Check that all is correct or exit. ############################################################################### if [ ${#} -eq 0 ] ; then usage exit 1 fi #source ${DEL_PROJ_DIR}/build/.config-${DEL_PLATFORM} TMPDIR=`mktemp -d -p ${DEL_PROJ_DIR}` ############################################################################### ## if USERFS_FLAG is active, create userfs images. ############################################################################### if "${USERFS_FLAG}"; then declare -r USERFS_DIR="${DEL_PROJ_DIR}/userfs" make_userfs_jffs2 USERFS_IMAGES_CREATED="y" if [ -n "${VERBOSE}" ]; then if [ -n "${USERFS_IMAGES_CREATED}" ]; then echo "Userfs images created." else echo "No userfs images created (nothing selected?)." fi fi fi rm -rf ${TMPDIR} exit 0