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.sch...@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@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to