[PATCH 11/11] defaultenv-2: add symbolic link support to boot/nfs
Sascha Hauer
s.hauer at pengutronix.de
Sat Sep 8 09:49:37 EDT 2012
On Fri, Sep 07, 2012 at 02:13:37PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> If the symlink is not find on barebox try on the host.
> So we are back compatible with nfs command.
>
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
> ---
> defaultenv-2/base/boot/nfs | 64 +++++++++++++++++++++++++++++++++++++++++---
> 1 file changed, 61 insertions(+), 3 deletions(-)
>
> diff --git a/defaultenv-2/base/boot/nfs b/defaultenv-2/base/boot/nfs
> index 892f103..bf27d38 100644
> --- a/defaultenv-2/base/boot/nfs
> +++ b/defaultenv-2/base/boot/nfs
> @@ -5,6 +5,8 @@ if [ "$1" = menu ]; then
> exit
> fi
>
> +. /env/data/ansi-colors
> +
> path="/mnt/tftp"
>
> # to get the dhcp info (global.dhcp.rootpath, global.dhcp.bootfile, global.dhcp.oftree_file)
> @@ -44,6 +46,24 @@ if [ -n "${global.dhcp.bootfile}" ]; then
> mount -t nfs "${eth0.serverip}:${mnt}" "${path}"
>
> global.bootm.image="${path}/${bootfile}"
> +
> + if [ -L "${global.bootm.image}" ]; then
> + readlink -f "${global.bootm.image}" bootfile_symlink
> +
> + # if the file is not on barebox fs assume it's on the host
> + if [ ! -e "${bootfile_symlink}" ]; then
> + dirname "${bootfile_symlink}" mnt
> + basename "${bootfile_symlink}" bootfile
> +
> + umount "${path}"
> + mount -t nfs "${eth0.serverip}:${mnt}" "${path}"
> +
> + bootfile_symlink="${path}/${bootfile_symlink}"
> + global.bootm.image="${path}/${bootfile}"
> + else
> + global.bootm.image="${bootfile_symlink}"
> + fi
symbolic links either point to the target or not, but doing magic on
them to try to interpret where they *could* point to is no option.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list