Date: Fri, 18 May 2018 11:30:09 +0900 (JST) From: Masachika ISHIZUKA <ish@amail.plala.or.jp> To: freebsd-hackers@freebsd.org Subject: How can I wait for a USB Ethernet adapter to appear to configure lagg on startup? Message-ID: <20180518.113009.439302765921485452.ish@amail.plala.or.jp>
index | next in thread | raw e-mail
[-- Attachment #1 --]
Hi.
I use a nootbook machine.
As this machine has no internal nic, I use a USB ethernet adapter(ue0).
I want to configure lagg0 of ue0 and iwm0, but I must wait to start
/etc/rc.d/netif until appearing the ue0.
I'm using patched netif as follows, but I must keep it whenever
'mergemaster -Ui' is run.
Is there a more elegant way?
--
Masachika ISHIZUKA
[-- Attachment #2 --]
--- /etc/rc.d.inactive/netif.org 2018-05-18 10:11:57.204047000 +0900
+++ /etc/rc.d/netif 2018-05-18 10:44:02.017318000 +0900
@@ -53,11 +53,45 @@
netif_start()
{
- local _if
+ local _if count wait_if output got_if any_error
# Set the list of interfaces to work on.
#
cmdifn=$*
+
+ if [ ${netif_wait_timeout} -lt 1 ]; then
+ err 1 "netif_wait_timeout must be >= 1"
+ fi
+
+ if [ -n "${netif_wait_if}" ]; then
+ any_error=0
+ for wait_if in ${netif_wait_if}; do
+ echo -n "Waiting for ${wait_if}"
+ got_if=0
+ count=1
+ # Handle SIGINT (Ctrl-C); force abort of while() loop
+ trap break SIGINT
+ while [ ${count} -le ${netif_wait_timeout} ]; do
+ if output=`/sbin/ifconfig ${wait_if} 2>/dev/null`; then
+ echo -n ", interface present"
+ got_if=1
+ break
+ fi
+ sleep 1
+ count=$((count+1))
+ done
+ # Restore default SIGINT handler
+ trap - SIGINT
+ if [ ${got_if} -eq 0 ]; then
+ echo ", wait failed: interface never appeared."
+ any_error=1
+ fi
+ done
+ if [ ${any_error} -eq 1 ]; then
+ warn "Continuing with startup, but be aware you may not have "
+ warn "a fully functional networking layer at this point."
+ fi
+ fi
if [ -z "$cmdifn" ]; then
#
[-- Attachment #3 --]
netif_wait_timeout=60
netif_wait_if="ue0"
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180518.113009.439302765921485452.ish>
