Solaris

To check the duplex (Where a return value of 0 = half duplex, and 1 = full duplex):

ndd /dev/hme link_mode

To force to full duplex:

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

To force to half duplex:

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

Make kernel parameter changes to preserve the speed and duplex settings after a reboot.

# vi /etc/system
...
set hme:hme_adv_autoneg_cap=0
set hme:hme_adv_100hdx_cap=0
set hme:hme_adv_100fdx_cap=1

@@Note:@@ the /etc/system change affects all hme interfaces if multiple NICs are present (e.g. hme0, hme1). The /etc/system settings listed above are not supported for configuring ce Ethernet adapters during system startup; you may either use ndd commands in an /etc/rcX.d script or create a /platform/sun4u/kernel/drv/ce.conf file with appropriate settings.

Example: /etc/init.d/nddconfig

ndd -set /dev/ce instance 0
ndd -set /dev/ce adv_1000fdx_cap 0
ndd -set /dev/ce adv_1000hdx_cap 0
ndd -set /dev/ce adv_100fdx_cap 1
ndd -set /dev/ce adv_100hdx_cap 0
ndd -set /dev/ce adv_10fdx_cap 0
ndd -set /dev/ce adv_10hdx_cap 0
ndd -set /dev/ce adv_autoneg_cap 0
ln -s /etc/init.d/nddconfig /etc/rc2.d/S31nddconfig

dmesg | grep ce0

Red Hat Enterprise Linux

For many ethernet cards you can use the program ethtool or mii-tool. For example:

ethtool -s eth0 speed 100 duplex full autoneg off
mii-tool -F 100baseTx-FD eth0

To keep these changes and make them permanent, edit the appropriate /etc/sysconfig/networking-scripts/ifcfg-eth* file

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

To force to half duplex:

chdev -l ent# -a media_speed=100_Half_Duplex -P

HP-UX

To get a list of adapters (HP-UX 11.x uses the PPA numbers)

lanscan
lanscan -p

To check the duplex (HP-UX 11.x):

lanadmin -x PPA#

To force to full duplex (HP-UX 11.x):

lanadmin -X 100FD PPA#

To force to half duplex (HP-UX 11.x):

lanadmin -X 100HD PPA#

To keep these changes and ensure they are permanent, edit the appropriate /etc/rc.config.d file (check netconf, or hpietherconf, or hpbtlanconf, etc.)