All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2] system: Fix for NFS booting with interface config via DHCP
Date: Tue, 10 Nov 2015 23:10:19 +0100	[thread overview]
Message-ID: <56426B4B.60004@mind.be> (raw)
In-Reply-To: <1447107410.4553.76.camel@rtred1test09.kymeta.local>

On 09-11-15 23:16, Trent Piepho wrote:
> Configuring the network interface with DHCP via
> /etc/network/interfaces generally does not work when NFS booting.  The
> DHCP configuration will initially bring the interface down and system
> then hangs at that point as the root filesystem is no longer
> accessable.  See bug 4709.
> 
> This adds a script to be run via a pre-up line in
> /etc/network/interfaces.  It checks for a NFS root filesystem and if
> the interface to be configured is used for access to the NFS server.
> If this is the case, then it returns a failure code so that ifup will
> not configure the interface.  This works for DHCP and another config
> methods (static, bootp, etc.).  This system does detect if the
> interface to be configured isn't the one used for NFS and doesn't skip
> it when that is the case.
> 
> NFS filesystems that aren't the root fs aren't considered.
> 
> Signed-off-by: Trent Piepho <tpiepho@kymetacorp.com>

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

 I checked that the addr= appears in /proc/mounts since at least 2.6.17.

 IMHO this is still for 2015.11.


 Regards,
 Arnout


> ---
>  package/skeleton/nfs_check   | 20 ++++++++++++++++++++
>  package/skeleton/skeleton.mk |  3 +++
>  2 files changed, 23 insertions(+)
>  create mode 100755 package/skeleton/nfs_check
> 
> diff --git a/package/skeleton/nfs_check b/package/skeleton/nfs_check
> new file mode 100755
> index 0000000..dfa0cbf
> --- /dev/null
> +++ b/package/skeleton/nfs_check
> @@ -0,0 +1,20 @@
> +#!/bin/sh
> +
> +# This allows NFS booting to work while also being able to configure
> +# the network interface via DHCP when not NFS booting.  Otherwise, a
> +# NFS booted system will likely hang during DHCP configuration.
> +
> +# Attempting to configure the network interface used for NFS will
> +# initially bring that network down.  Since the root filesystem is
> +# accessed over this network, the system hangs.
> +
> +# This script is run by ifup and will attempt to detect if a NFS root
> +# mount uses the interface to be configured (IFACE), and if so does
> +# not configure it.  This should allow the same build to be disk/flash
> +# booted or NFS booted.
> +
> +nfsip=`sed -n '/^[^ ]*:.* \/ nfs.*[ ,]addr=\([0-9.]\+\).*/s//\1/p' /proc/mounts`
> +if [ -n "$nfsip" ] && ip route get to "$nfsip" | grep -q "dev $IFACE"; then
> +	echo Skipping $IFACE, used for NFS from $nfsip
> +	exit 1
> +fi
> diff --git a/package/skeleton/skeleton.mk b/package/skeleton/skeleton.mk
> index d1b797d..0cab8a1 100644
> --- a/package/skeleton/skeleton.mk
> +++ b/package/skeleton/skeleton.mk
> @@ -89,8 +89,11 @@ define SET_NETWORK_DHCP
>  		echo ;                                               \
>  		echo "auto $(NETWORK_DHCP_IFACE)";                   \
>  		echo "iface $(NETWORK_DHCP_IFACE) inet dhcp";        \
> +		echo "  pre-up /etc/network/nfs_check";              \
>  		echo "	wait-delay 15";                              \
>  	) >> $(TARGET_DIR)/etc/network/interfaces
> +	$(INSTALL) -m 0755 -D $(SKELETON_PKGDIR)/nfs_check \
> +		$(TARGET_DIR)/etc/network/nfs_check
>  endef
>  endif
>  
> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

  reply	other threads:[~2015-11-10 22:10 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-06 20:25 [Buildroot] [PATCH] system: Fix for NFS booting with interface config via DHCP Trent Piepho
2015-11-07  0:55 ` Arnout Vandecappelle
2015-11-07  1:44   ` Trent Piepho
2015-11-08 23:44     ` Arnout Vandecappelle
2015-11-09 21:29       ` Trent Piepho
2015-11-08 13:57 ` Thomas Petazzoni
2015-11-09 20:37   ` Trent Piepho
2015-11-09 22:16   ` [Buildroot] [PATCH v2] " Trent Piepho
2015-11-10 22:10     ` Arnout Vandecappelle [this message]
2015-11-18 21:16     ` Thomas Petazzoni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56426B4B.60004@mind.be \
    --to=arnout@mind.be \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.