Changing up ethernet speed, duplex mode in Solaris
Updated Jun 2026 · Tested on Linux, Unix
A solaris system can have single NIC or multiple nic and interface name can be ce, hme, bge, e1000g ,qfe etc. depending on the card used. For making interface change identify the interface name using ifconfig -a command and then apply following method to change nic speed in Solaris, read along for making these changes.
Run time only, using command line to Setup ethernet speed , duplex mode in Solaris
Changes are lost on system reboots .
– set the device instance (for multiport cards) ndd -set /dev/hme instance 0 this makes the next commands apply to hme0.
– query parameters for the set instance: ndd -get /dev/hme link_status 0 = link up, 1 = link down ndd -get /dev/hme link_speed 0 = 10MBit, 1 = 100MBit ndd -get /dev/hme link_mode 0 = half duplex, 1 = full duplex ndd -get /dev/hme adv_autoneg_cap 0 = no autonegotiation, 1 = autoneg. enabled
– set parameters, e.g. ndd -set /dev/hme instance 0 ndd -set /dev/hme adv_autoneg_cap 1 to enable autonegotiation for hme0
Permanent Changes : changes are not lost on reboot.
edit the /etc/system file and add these parameters .The sequence number matters.
set hme:hme_adv_autoneg_cap=0 set hme:hme_adv_100T4_cap=0 set hme:hme_adv_100fdx_cap=1 set hme:hme_adv_100hdx_cap=0 set hme:hme_adv_10fdx_cap=0 set hme:hme_adv_10hdx_cap=0
Ehthernet mode setting in x86 is done in drivers .conf file.
100Mb Full Duplex on elxl0 in Solaris x86
edit /kernel/drv/elxl.conf :
#ident “@(#)elxl.conf 1.3 98/02/23 SMI”
Copyright (c) 1998, by Sun Microsystems, Inc.
All rights reserved.
Driver.conf file for the 3Com 3C90x
To force full duplex operation, uncomment the following line:
full-duplex=1;
To force half duplex operation, uncomment the following line:
#full-duplex=0;
To force 10Mbps operation, uncomment the following line:
#speed=10;
To force 100Mbps operation, uncomment the following line:
speed=100;