* [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 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 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
* [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] 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
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