* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox