From patchwork Thu Oct 29 08:51:56 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= X-Patchwork-Id: 537732 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ozlabs.org (Postfix) with ESMTP id C73AB140D97 for ; Thu, 29 Oct 2015 19:52:22 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 120A58DD2C; Thu, 29 Oct 2015 08:52:22 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YyPb7Zjcf5Rr; Thu, 29 Oct 2015 08:52:20 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id 8219E8E29A; Thu, 29 Oct 2015 08:52:20 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 3974E1C0110 for ; Thu, 29 Oct 2015 08:52:16 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 35C118D91F for ; Thu, 29 Oct 2015 08:52:16 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2liFWjzo-E37 for ; Thu, 29 Oct 2015 08:52:15 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from lupi.sysmic.org (sysmic.org [62.210.89.17]) by whitealder.osuosl.org (Postfix) with ESMTPS id 58F148DD47 for ; Thu, 29 Oct 2015 08:52:15 +0000 (UTC) Received: from localhost.localdomain (unknown [212.234.226.241]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: jezz) by lupi.sysmic.org (Postfix) with ESMTPSA id 8A2014104E; Thu, 29 Oct 2015 09:52:11 +0100 (CET) From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Pouiller?= To: buildroot@busybox.net Date: Thu, 29 Oct 2015 09:51:56 +0100 Message-Id: <1446108716-10399-3-git-send-email-jezz@sysmic.org> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1446108716-10399-1-git-send-email-jezz@sysmic.org> References: <1446108716-10399-1-git-send-email-jezz@sysmic.org> MIME-Version: 1.0 Cc: =?UTF-8?q?J=C3=A9r=C3=B4me=20Pouiller?= , Ryan Barnett , Maury Anderson , "Yann E. MORIN\"" Subject: [Buildroot] [PATCH 2/2] skeleton: optionally wait for network interfaces to appear X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: buildroot-bounces@busybox.net Sender: "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 --- 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 +