On 8/22/06, Frederick Brown <[EMAIL PROTECTED]> wrote:
Submitted By: Brian Weber Date: 22 August 2006 Name: blfs-bootscripts-6.1.dhcpcd.no-carrier.patch Description: The patch handles the case of a missing carrier on a NIC, ie an unplugged cable or a router/hub down, at startup time by issuing a warning and skipping the startup of dhcp instead of mindlessly waiting for the timeout.
<snip>
+# Abort startup and issue a warning if interface lacks a carrier. +link_status=`ip link show ${1} 2> /dev/null` +if [ "$2" = "up" ] && echo $link_status | grep -q "NO-CARRIER" ; then + boot_mesg "Skipping startup of dhcpcd: '${1}' NO-CARRIER!" ${WARNING} + echo_warning + exit 0 +else +
This is almost two months old now, but I'm looking at getting it in right now. I hope you're still there. And I brought this to blfs-dev to get more eyes. So, I want to talk about the use of the ip command and a possible alternative. Starting w/ linux-2.6.10 approximately, the carrier information is exported through sysfs. So, we don't have to spawn a process and then try to parse the output. Try these commands, where <device> is, e.g., eth0. $ cat /sys/class/net/<device>/carrier It returns 1 if the cable is connected and 0 if it's not. This corresponds with the output from ip's NO-CARRIER. You can read more here: http://lkml.org/lkml/2004/9/26/83 On my laptop, this works as advertised. And the SuSE distro I installed on there initially uses this in their network scripts. Essentially, the test is: if [ "`cat /sys/class/net/$1/carrier`" = 1 ]; then echo "cable connected on $1" else echo "cable disconnected on $1" fi Could you see if this works on your computer? -- Dan -- http://linuxfromscratch.org/mailman/listinfo/blfs-dev FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page