[U-Boot] [PATCHv2] scripts: Add script to extract default environment

Simon Glass sjg at chromium.org
Tue Sep 27 02:33:37 CEST 2016


Hi Lukasz,

On 16 September 2016 at 22:57, Lukasz Majewski <l.majewski at majess.pl> wrote:
> This script looks for env_common.o object file and extracts from it default
> u-boot environment, which is afterwards printed on standard output.
>
> Usage example:
> get_default_envs.sh > u-boot-env-default.txt
>
> The generated text file can be used as input for mkenvimage.
>
> Signed-off-by: Lukasz Majewski <l.majewski at majess.pl>
>
> ---
> Changes for v2:
> - Sort uniquely entries
> - Exclude env_common.o generated for SPL
> ---
>  scripts/get_default_envs.sh | 34 ++++++++++++++++++++++++++++++++++
>  1 file changed, 34 insertions(+)
>  create mode 100755 scripts/get_default_envs.sh

Reviewed-by: Simon Glass <sjg at chromium.org>

But why is this needed?

>
> diff --git a/scripts/get_default_envs.sh b/scripts/get_default_envs.sh
> new file mode 100755
> index 0000000..7955db6
> --- /dev/null
> +++ b/scripts/get_default_envs.sh
> @@ -0,0 +1,34 @@
> +#! /bin/bash
> +#
> +# Copyright (C) 2016, Lukasz Majewski <l.majewski at majess.pl>
> +#
> +# SPDX-License-Identifier:      GPL-2.0+
> +#
> +
> +# This file extracts default envs from built u-boot
> +# usage: get_default_envs.sh > u-boot-env-default.txt
> +set -ue
> +
> +ENV_OBJ_FILE="env_common.o"
> +ENV_OBJ_FILE_COPY="copy_${ENV_OBJ_FILE}"
> +
> +echoerr() { echo "$@" 1>&2; }
> +
> +path=$(readlink -f $0)
> +env_obj_file_path=$(find ${path%/scripts*} -not -path "*/spl/*" \
> +                        -name "${ENV_OBJ_FILE}")
> +[ -z "${env_obj_file_path}" ] && \
> +    { echoerr "File '${ENV_OBJ_FILE}' not found!"; exit 1; }
> +
> +cp ${env_obj_file_path} ${ENV_OBJ_FILE_COPY}
> +
> +# NOTE: objcopy saves its output to file passed in
> +# (copy_env_common.o in this case)
> +objcopy -O binary -j ".rodata.default_environment" ${ENV_OBJ_FILE_COPY}
> +
> +# Replace default '\0' with '\n' and sort entries
> +tr '\0' '\n' < ${ENV_OBJ_FILE_COPY} | sort -u
> +
> +rm ${ENV_OBJ_FILE_COPY}
> +
> +exit 0

This isn't needed.

> --
> 2.1.4
>

Regards,
Simon


More information about the U-Boot mailing list