[PATCH] Configure network device for nfsboot via nv var

Sascha Hauer s.hauer at pengutronix.de
Thu Nov 9 23:00:08 PST 2017


On Wed, Nov 08, 2017 at 04:05:17PM +0100, Gavin Schenk wrote:
> When you have a static network environment but more than one network
> device on your machine it is necessary to provide the <device> parameter
> to the ip parameter at kernel cmd line.
> 
> The device name assigned by Linux cannot in general be predicted as it
> depends on driver bind order.
> 
> This patch introduces a new global variable
> "global.linux.nfsroot.device" which when set is feed to the ip=
> kernel parameter as device name.

Maybe we should rather add a linuxname property to the ethernet device
instead. That way we could specify multiple names in case we have
multiple ethernet devices in barebox aswell.

Sascha


> 
> Signed-off-by: Gavin Schenk <g.schenk at eckelmann.de>
> ---
>  net/ifup.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/net/ifup.c b/net/ifup.c
> index 5113d138329a..bdb7cf0e6d0a 100644
> --- a/net/ifup.c
> +++ b/net/ifup.c
> @@ -109,16 +109,19 @@ int ifup(const char *name, unsigned flags)
>  		dev_set_param(dev, "linux.bootargs", "ip=dhcp");
>  	} else if (!strcmp(ip, "static")) {
>  		char *bootarg;
> +		const char *env_linux_nfsroot_device = 
> +			getenv("global.linux.nfsroot.device");
>  		for (i = 0; i < ARRAY_SIZE(vars); i++) {
>  			ret = eth_set_param(dev, vars[i]);
>  			if (ret)
>  				goto out;
>  		}
> -		bootarg = basprintf("ip=%pI4:%pI4:%pI4:%pI4:::",
> +		bootarg = basprintf("ip=%pI4:%pI4:%pI4:%pI4::%s:",
>  				&edev->ipaddr,
>  				&edev->serverip,
>  				&edev->gateway,
> -				&edev->netmask);
> +				&edev->netmask,
> +				env_linux_nfsroot_device ?: "");
>  		dev_set_param(dev, "linux.bootargs", bootarg);
>  		free(bootarg);
>  	} else {
> -- 
> 2.15.0
> 
> 
> Eckelmann AG
> Vorstand: Dipl.-Ing. Peter Frankenbach (Sprecher) Dipl.-Wi.-Ing. Philipp Eckelmann
> Dr.-Ing. Marco Münchhof Dr.-Ing. Frank Uhlemann
> Vorsitzender des Aufsichtsrats: Hubertus G. Krossa
> Stv. Vorsitzender des Aufsichtsrats: Dr.-Ing. Gerd Eckelmann
> Sitz der Gesellschaft: Berliner Str. 161, 65205 Wiesbaden, Amtsgericht Wiesbaden HRB 12636
> http://www.eckelmann.de 
> 
> 
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
> 

-- 
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