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