[PATCH] Configure network device for nfsboot via nv var
Gavin Schenk
g.schenk at eckelmann.de
Wed Nov 8 07:05:17 PST 2017
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.
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
More information about the barebox
mailing list