[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