Question about NIC link state initialization
Steve Polyack
korvus at comcast.net
Wed Jun 29 16:47:58 UTC 2011
I have a handful of systems running FreeBSD 8.1-RELEASE. An occaisional
fat-finger in /etc/fstab may cause one to end up in single-user mode
from time to time. This would normally not be a problem, but some of
these systems have a LOM (lights-out management) controller which shares
the system's on-board NICs. This works great 99% of the time, but when
the system drops out of init(8) and into single-user mode, the links on
the interfaces never come up, and therefore the LOM becomes
inaccessible. Cue remote-hands at the facility to help us remedy the
problem.
I've been playing around with this configuration on a local system, and
I've noticed that once at a single-user shell, all one has to do is run
ifconfig to cause the NIC's links to come up. You don't even have to
specify the interface, nor do you have to specify "up". As soon as I
hit enter, ifconfig prints the typical interface summary - intermingled
in with this are the bold kernel log messages stating "bce0: link state
changed to UP" and "bce1: link state changed to UP".
So, my question is - why do we have to run ifconfig(8) to bring the
links up on the attached interfaces? Shouldn't they come up after the
driver discovers and initializes the devices? Keep in mind that I don't
even have to pass any arguments (such as "up") to ifconfig.
Furthermore, the behavior is exactly the same for bce(4) and em(4).
Short of patching init(8) (or perhaps the NIC drivers?), I don't see
another way for me to ensure the links come up even when the system
drops into single-user mode on boot.
- Steve
More information about the freebsd-net
mailing list