On Mon, Oct 03, 2005 at 01:12:18PM -0500, Nate Carlson wrote:
> On Mon, 3 Oct 2005, Nate Straz wrote:
> >I would trust mii-tool over dmesg.  mii-tool tells you the current 
> >status of the link.  dmesg just shows you the kernel message buffer, so 
> >you don't really know how old the message is until you look it up in 
> >/var/log/message (or equiv).
> 
> Better yet: ethtool!

For something as simple as this, mii-tool.  ethtool has one of the most
useless usage messages.  Compare:

/sbin/mii-tool: invalid option -- h
usage: /sbin/mii-tool [-VvRrwl] [-A media,... | -F media] [interface ...]
       -V, --version               display version information
       -v, --verbose               more verbose output
       -R, --reset                 reset MII to poweron state
       -r, --restart               restart autonegotiation
       -w, --watch                 monitor for link status changes
       -l, --log                   with -w, write events to syslog
       -A, --advertise=media,...   advertise only specified media
       -F, --force=media           force specified media technology
media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD,
       (to advertise both HD and FD) 100baseTx, 10baseT

ethtool version 2
Usage:
	ethtool DEVNAME
	ethtool -a DEVNAME
	ethtool -A DEVNAME \
		[ autoneg on|off ] \
		[ rx on|off ] \
		[ tx on|off ]
	ethtool -c DEVNAME
	ethtool -C DEVNAME \
		[adaptive-rx on|off] \
		[adaptive-tx on|off] \
		[rx-usecs N] \
		[rx-frames N] \
		[rx-usecs-irq N] \
		[rx-frames-irq N] \
		[tx-usecs N] \
		[tx-frames N] \
		[tx-usecs-irq N] \
		[tx-frames-irq N] \
		[stats-block-usecs N] \
		[pkt-rate-low N] \
		[rx-usecs-low N] \
		[rx-frames-low N] \
		[tx-usecs-low N] \
		[tx-frames-low N] \
		[pkt-rate-high N] \
		[rx-usecs-high N] \
		[rx-frames-high N] \
		[tx-usecs-high N] \
		[tx-frames-high N] \
		[sample-interval N]
	ethtool -g DEVNAME
	ethtool -G DEVNAME \
		[ rx N ] \
		[ rx-mini N ] \
		[ rx-jumbo N ] \
		[ tx N ]
	ethtool -i DEVNAME
	ethtool -d DEVNAME [ raw on|off ]
	ethtool -e DEVNAME \
		[ raw on|off ] \
		[ offset N ] \
		[ length N ]
	ethtool -E DEVNAME \
		[ magic N ] \
		[ offset N ] \
		[ value N ]
	ethtool -k DEVNAME
	ethtool -K DEVNAME \
		[ rx on|off ] \
		[ tx on|off ] \
		[ sg on|off ] \
		[ tso on|off ]
	ethtool -r DEVNAME
	ethtool -p DEVNAME [ %d ]
	ethtool -t DEVNAME [online|(offline)]
	ethtool -s DEVNAME \
		[ speed 10|100|1000 ] \
		[ duplex half|full ]	\
		[ port tp|aui|bnc|mii|fibre ] \
		[ autoneg on|off ] \
		[ phyad %d ] \
		[ xcvr internal|external ] \
		[ wol p|u|m|b|a|g|s|d... ] \
		[ sopass %x:%x:%x:%x:%x:%x ] \
		[ msglvl %d ] 
	ethtool -S DEVNAME