Checking/Setting Duplex Mode for various operation systems 

Solaris
To check the duplex:

 ndd /dev/hme link_mode

Where a return value of 0 = half duplex, and 1 = full duplex

To force to full duplex:

ndd -sec /dev/hme adv_100fdx_cap
ndd -set /dev/hme adv_autoneg_cap 0

To force to half duplex:

ndd -sec /dev/hme adv_100hdx_cap
ndd -set /dev/hme adv_autoneg_cap 0

Linux
For many ethernet cards you can use the program mii-tool. For more information, see Scyld's ethernet setup page. For example:

      mii-tool -F 100baseTx-FD eth0

The following may also be used with some common cards:

To set eepro100 cards to full-duplex:
        in /etc/modules.conf (for Redhat Linux)
        options eepro100 options=48

For 3c59x cards:
        options 3c59x  options=0x204 full_duplex=0x200

FreeBSD
To check the duplex: Just use ifconfig -a

To force to full duplex:
        ifconfig xl0 media 100baseTX mediaopt full-duplex

To force to half duplex:
        ifconfig xl0 media 100baseTX mediaopt half-duplex

Note: This works for all devices, not just the xl0 driver.

Compaq Tru64 Unix See the FAQ
IBM AIX
To get a list of adapters:
        lsdev -HCc adapter

To check the duplex:
        lsattr -d ent#

To force to full duplex:
        chdev  -l ent# -a media_speed=100_Full_Duplex -P
    reboot

To force to half duplex:
        chdev  -l ent# -a media_speed=100_Half_Duplex -P
    reboot
HP-UX
To get a list of adapters:

HP-UX 10.x uses the Network Management IDs
        lanscan -n

HP-UX 11.x uses the PPA numbers
        lanscan -p

To check the duplex:
        lanadmin -x NMid# (HP-UX 10.x)
        lanadmin -x PPA#  (HP-UX 11.x)

To force to full duplex:
        lanadmin -X 100FD NMid# (HP-UX 10.x)
        lanadmin -X 100FD PPA#  (HP-UX 11.x)

To force to half duplex:
        lanadmin -X 100HD NMid# (HP-UX 10.x)
        lanadmin -X 100HD PPA#  (HP-UX 11.x)

Please send information on Windows and other operating systems to BLTierney@lbl.gov