aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/busybox/busybox-1.16.2/udhcpc-fix-nfsroot.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-core/busybox/busybox-1.16.2/udhcpc-fix-nfsroot.patch')
-rw-r--r--meta/recipes-core/busybox/busybox-1.16.2/udhcpc-fix-nfsroot.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/meta/recipes-core/busybox/busybox-1.16.2/udhcpc-fix-nfsroot.patch b/meta/recipes-core/busybox/busybox-1.16.2/udhcpc-fix-nfsroot.patch
new file mode 100644
index 0000000000..89eeb425ad
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox-1.16.2/udhcpc-fix-nfsroot.patch
@@ -0,0 +1,54 @@
+# copy commit message from OE as the patch comment:
+# commit ec4da6df3ad5b8b03446d0dda9c50a2439ae325a
+# Author: Denys Dmytriyenko <denis@denix.org>
+# Date: Wed Feb 4 11:43:18 2009 -0500
+#
+# busybox: fix nfsroot issues with resetting IP and deleting routes
+#
+# above comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-06
+Index: busybox-1.15.3/examples/udhcp/simple.script
+===================================================================
+--- busybox-1.15.3.orig/examples/udhcp/simple.script 2010-06-27 12:17:14.116876946 +0200
++++ busybox-1.15.3/examples/udhcp/simple.script 2010-06-27 12:18:38.607868533 +0200
+@@ -10,10 +10,17 @@
+ BROADCAST="broadcast +"
+ [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
+
++# return 0 if root is mounted on a network filesystem
++root_is_nfs() {
++ grep -qe '^/dev/root.*\(nfs\|smbfs\|ncp\|coda\) .*' /proc/mounts
++}
++
+ case "$1" in
+ deconfig)
++ if ! root_is_nfs ; then
+ echo "Setting IP address 0.0.0.0 on $interface"
+- ifconfig $interface 0.0.0.0
++ ifconfig $interface 0.0.0.0
++ fi
+ ;;
+
+ renew|bound)
+@@ -21,15 +28,17 @@
+ ifconfig $interface $ip $NETMASK $BROADCAST
+
+ if [ -n "$router" ] ; then
+- echo "Deleting routers"
+- while route del default gw 0.0.0.0 dev $interface 2>/dev/null ; do
+- :
+- done
++ if ! root_is_nfs ; then
++ echo "Deleting routers"
++ while route del default gw 0.0.0.0 dev $interface 2>/dev/null ; do
++ :
++ done
++ fi
+
+ metric=0
+ for i in $router ; do
+ echo "Adding router $i"
+- route add default gw $i dev $interface metric $((metric++))
++ route add default gw $i dev $interface metric $((metric++)) 2>/dev/null
+ done
+ fi
+