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

v3:
  - '&&' in brackets is not supported by busybox sh

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] 6+ messages in thread

* [Buildroot] [PATCH v3 1/2] Revert "package/initscripts: S40network: wait for network interfaces to appear"
  2015-10-29  9:00 [Buildroot] [PATCH v3 0/2] Alternative way to wait interfaces on bootup Jérôme Pouiller
@ 2015-10-29  9:00 ` Jérôme Pouiller
  2015-10-29 20:22   ` Yann E. MORIN
  2015-11-02 15:52   ` Thomas Petazzoni
  2015-10-29  9:00 ` [Buildroot] [PATCH v3 2/2] skeleton: optionally wait for network interfaces to appear Jérôme Pouiller
  1 sibling, 2 replies; 6+ messages in thread
From: Jérôme Pouiller @ 2015-10-29  9:00 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] 6+ messages in thread

* [Buildroot] [PATCH v3 2/2] skeleton: optionally wait for network interfaces to appear
  2015-10-29  9:00 [Buildroot] [PATCH v3 0/2] Alternative way to wait interfaces on bootup Jérôme Pouiller
  2015-10-29  9:00 ` [Buildroot] [PATCH v3 1/2] Revert "package/initscripts: S40network: wait for network interfaces to appear" Jérôme Pouiller
@ 2015-10-29  9:00 ` Jérôme Pouiller
  2015-10-29 20:26   ` [Buildroot] [PATCH] fs/ext2: add options for extra space and extra inodes Yann E. MORIN
  1 sibling, 1 reply; 6+ messages in thread
From: Jérôme Pouiller @ 2015-10-29  9:00 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..ebccff2
--- /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}" -a ! -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] 6+ messages in thread

* [Buildroot] [PATCH v3 1/2] Revert "package/initscripts: S40network: wait for network interfaces to appear"
  2015-10-29  9:00 ` [Buildroot] [PATCH v3 1/2] Revert "package/initscripts: S40network: wait for network interfaces to appear" Jérôme Pouiller
@ 2015-10-29 20:22   ` Yann E. MORIN
  2015-11-02 15:52   ` Thomas Petazzoni
  1 sibling, 0 replies; 6+ messages in thread
From: Yann E. MORIN @ 2015-10-29 20:22 UTC (permalink / raw)
  To: buildroot

J?r?me, All,

On 2015-10-29 10:00 +0100, J?r?me Pouiller spake thusly:
> 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>

Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

It's not very often I ACK a patch removing my own code! Hehe! :-)

Regards,
Yann E. MORIN.

> ---
>  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
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH] fs/ext2: add options for extra space and extra inodes
  2015-10-29  9:00 ` [Buildroot] [PATCH v3 2/2] skeleton: optionally wait for network interfaces to appear Jérôme Pouiller
@ 2015-10-29 20:26   ` Yann E. MORIN
  0 siblings, 0 replies; 6+ messages in thread
From: Yann E. MORIN @ 2015-10-29 20:26 UTC (permalink / raw)
  To: buildroot

J?r?me, All,

On 2015-10-29 10:00 +0100, J?r?me Pouiller spake thusly:
> 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>

Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

I hope I'll have time to do a run test later tonight... However, I am
far from my RPis tonight (the whole week, in fact) but I'll try to sneak
downstairs to grab one... :-]

Regards,
Yann E. MORIN.

> ---
>  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..ebccff2
> --- /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}" -a ! -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
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH v3 1/2] Revert "package/initscripts: S40network: wait for network interfaces to appear"
  2015-10-29  9:00 ` [Buildroot] [PATCH v3 1/2] Revert "package/initscripts: S40network: wait for network interfaces to appear" Jérôme Pouiller
  2015-10-29 20:22   ` Yann E. MORIN
@ 2015-11-02 15:52   ` Thomas Petazzoni
  1 sibling, 0 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2015-11-02 15:52 UTC (permalink / raw)
  To: buildroot

Dear J?r?me Pouiller,

On Thu, 29 Oct 2015 10:00:17 +0100, J?r?me Pouiller wrote:
> 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(-)

Both patches applied, thanks a lot!

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

end of thread, other threads:[~2015-11-02 15:52 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-29  9:00 [Buildroot] [PATCH v3 0/2] Alternative way to wait interfaces on bootup Jérôme Pouiller
2015-10-29  9:00 ` [Buildroot] [PATCH v3 1/2] Revert "package/initscripts: S40network: wait for network interfaces to appear" Jérôme Pouiller
2015-10-29 20:22   ` Yann E. MORIN
2015-11-02 15:52   ` Thomas Petazzoni
2015-10-29  9:00 ` [Buildroot] [PATCH v3 2/2] skeleton: optionally wait for network interfaces to appear Jérôme Pouiller
2015-10-29 20:26   ` [Buildroot] [PATCH] fs/ext2: add options for extra space and extra inodes Yann E. MORIN

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.