All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/2] Alternative way to wait interfaces on bootup
@ 2015-10-29  8:51 Jérôme Pouiller
  2015-10-29  8:51 ` [Buildroot] [PATCH 1/2] Revert "package/initscripts: S40network: wait for network interfaces to appear" Jérôme Pouiller
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Jérôme Pouiller @ 2015-10-29  8:51 UTC (permalink / raw)
  To: buildroot

As discussed here:

   http://lists.busybox.net/pipermail/buildroot/2015-October/142329.html   
   
v2:
  - Squash patches 2 and 3
  - Remove blank lines
  - Do not print anything if interface already exist
  - Change displayed information

Notice I did not handled case where IFACE=--all. Indeed IF_WAIT_DELAY
is not set in this case won't be set (and none of scripts provided by
ifupdown/ifupdown-extra packages have special handling for '--all'.)

I don't print any explicit error message in case failure. Indeed,
ifupdown/run-parts already print messages and I believe 
"Waiting for interface dummy0 to appear... timeout!" is explicit enough.

   
J?r?me Pouiller (2):
  Revert "package/initscripts: S40network: wait for network interfaces
    to appear"
  skeleton: optionally wait for network interfaces to appear

 package/initscripts/init.d/S40network              | 29 ----------------------
 package/skeleton/skeleton.mk                       |  1 +
 system/skeleton/etc/network/if-pre-up.d/wait_iface | 21 ++++++++++++++++
 3 files changed, 22 insertions(+), 29 deletions(-)
 create mode 100755 system/skeleton/etc/network/if-pre-up.d/wait_iface

-- 
2.1.4

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH 1/2] Revert "package/initscripts: S40network: wait for network interfaces to appear"
  2015-10-29  8:51 [Buildroot] [PATCH 0/2] Alternative way to wait interfaces on bootup Jérôme Pouiller
@ 2015-10-29  8:51 ` Jérôme Pouiller
  2015-10-29  8:51 ` [Buildroot] [PATCH 2/2] skeleton: optionally wait for network interfaces to appear Jérôme Pouiller
  2015-10-29  8:54 ` [Buildroot] [PATCH 0/2] Alternative way to wait interfaces on bootup Jérôme Pouiller
  2 siblings, 0 replies; 4+ messages in thread
From: Jérôme Pouiller @ 2015-10-29  8:51 UTC (permalink / raw)
  To: buildroot

This reverts commit 49964858f45d2243c513e6d362e992ad89ec7a45. It is
going to be replaced with an ifup hook in next patch.

Signed-off-by: J?r?me Pouiller <jezz@sysmic.org>
---
 package/initscripts/init.d/S40network | 29 -----------------------------
 1 file changed, 29 deletions(-)

diff --git a/package/initscripts/init.d/S40network b/package/initscripts/init.d/S40network
index a8d7c5d..7b11d8b 100755
--- a/package/initscripts/init.d/S40network
+++ b/package/initscripts/init.d/S40network
@@ -6,37 +6,8 @@
 # Debian ifupdown needs the /run/network lock directory
 mkdir -p /run/network
 
-# In case we have a slow-to-appear interface (e.g. eth-over-USB),
-# and we need to configure it, wait until it appears, but not too
-# long either. WAIT_DELAY is in seconds.
-WAIT_DELAY=15
-
-wait_for_interfaces() {
-	IFACES=$(awk '/^auto/ { print $2 }' /etc/network/interfaces)
-	[ -n "$IFACES" ] || return
-
-	printf "Waiting for network interfaces to appear"
-
-	for i in $(seq $WAIT_DELAY); do
-	    for IFACE in $IFACES; do
-		if [ ! -e "/sys/class/net/$IFACE" ]; then
-		    printf "."
-		    sleep 1
-		    continue 2
-		fi
-	    done
-
-	    printf " ok\n"; return
-	done
-
-	printf " timeout\n"
-	exit 1
-}
-
 case "$1" in
   start)
-	wait_for_interfaces
-
  	echo "Starting network..."
 	/sbin/ifup -a
 	;;
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH 2/2] skeleton: optionally wait for network interfaces to appear
  2015-10-29  8:51 [Buildroot] [PATCH 0/2] Alternative way to wait interfaces on bootup Jérôme Pouiller
  2015-10-29  8:51 ` [Buildroot] [PATCH 1/2] Revert "package/initscripts: S40network: wait for network interfaces to appear" Jérôme Pouiller
@ 2015-10-29  8:51 ` Jérôme Pouiller
  2015-10-29  8:54 ` [Buildroot] [PATCH 0/2] Alternative way to wait interfaces on bootup Jérôme Pouiller
  2 siblings, 0 replies; 4+ messages in thread
From: Jérôme Pouiller @ 2015-10-29  8:51 UTC (permalink / raw)
  To: buildroot

This patch has same purpose than 49964858f45d2243c513e6d362e992ad89ec7a45:

  On some machines, the network interface is slow to appear. For example,
  on the Raspberry Pi, the network interface eth0 is an ethernet-over-USB,
  and our standard boot process is too fast, so our network startup script
  is called before the USB bus is compeltely enumerated, thus it can't
  configure eth0.

  Closes #8116.

However, wait-delay hook is enabled only if wait-delay property appears
in /etc/network/interfaces. This patch enable it automaticaly when
interface is configured through DHCP at bootup. But, if user choose
to write /etc/network/interface himself, he have to explicitly
set wait-delay.

Signed-off-by: J?r?me Pouiller <jezz@sysmic.org>
---
 package/skeleton/skeleton.mk                       |  1 +
 system/skeleton/etc/network/if-pre-up.d/wait_iface | 21 +++++++++++++++++++++
 2 files changed, 22 insertions(+)
 create mode 100755 system/skeleton/etc/network/if-pre-up.d/wait_iface

diff --git a/package/skeleton/skeleton.mk b/package/skeleton/skeleton.mk
index 920d3b4..d1b797d 100644
--- a/package/skeleton/skeleton.mk
+++ b/package/skeleton/skeleton.mk
@@ -89,6 +89,7 @@ define SET_NETWORK_DHCP
 		echo ;                                               \
 		echo "auto $(NETWORK_DHCP_IFACE)";                   \
 		echo "iface $(NETWORK_DHCP_IFACE) inet dhcp";        \
+		echo "	wait-delay 15";                              \
 	) >> $(TARGET_DIR)/etc/network/interfaces
 endef
 endif
diff --git a/system/skeleton/etc/network/if-pre-up.d/wait_iface b/system/skeleton/etc/network/if-pre-up.d/wait_iface
new file mode 100755
index 0000000..f4a1c4c
--- /dev/null
+++ b/system/skeleton/etc/network/if-pre-up.d/wait_iface
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# In case we have a slow-to-appear interface (e.g. eth-over-USB),
+# and we need to configure it, wait until it appears, but not too
+# long either. IF_WAIT_DELAY is in seconds.
+
+if [ "${IF_WAIT_DELAY}" && ! -e "/sys/class/net/${IFACE}" ]; then
+    printf "Waiting for interface %s to appear" "${IFACE}"
+    while [ ${IF_WAIT_DELAY} -gt 0 ]; do
+        if [ -e "/sys/class/net/${IFACE}" ]; then
+            printf "\n"
+            exit 0
+        fi
+        sleep 1
+        printf "."
+        : $((IF_WAIT_DELAY -= 1))
+    done
+    printf " timeout!\n"
+    exit 1
+fi
+
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH 0/2] Alternative way to wait interfaces on bootup
  2015-10-29  8:51 [Buildroot] [PATCH 0/2] Alternative way to wait interfaces on bootup Jérôme Pouiller
  2015-10-29  8:51 ` [Buildroot] [PATCH 1/2] Revert "package/initscripts: S40network: wait for network interfaces to appear" Jérôme Pouiller
  2015-10-29  8:51 ` [Buildroot] [PATCH 2/2] skeleton: optionally wait for network interfaces to appear Jérôme Pouiller
@ 2015-10-29  8:54 ` Jérôme Pouiller
  2 siblings, 0 replies; 4+ messages in thread
From: Jérôme Pouiller @ 2015-10-29  8:54 UTC (permalink / raw)
  To: buildroot

On Thursday 29 October 2015 09:51:54 J?r?me Pouiller wrote:
> As discussed here:
> 
>   
> http://lists.busybox.net/pipermail/buildroot/2015-October/142329.html
> 
> v2:
Arf... I forgot "v2" in subject. Sorry.

-- 
J?r?me Pouiller, Sysmic
Embedded Linux specialist
http://www.sysmic.fr

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-10-29  8:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-29  8:51 [Buildroot] [PATCH 0/2] Alternative way to wait interfaces on bootup Jérôme Pouiller
2015-10-29  8:51 ` [Buildroot] [PATCH 1/2] Revert "package/initscripts: S40network: wait for network interfaces to appear" Jérôme Pouiller
2015-10-29  8:51 ` [Buildroot] [PATCH 2/2] skeleton: optionally wait for network interfaces to appear Jérôme Pouiller
2015-10-29  8:54 ` [Buildroot] [PATCH 0/2] Alternative way to wait interfaces on bootup Jérôme Pouiller

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.