Solaris Troubleshooting : Force an Ethernet network boot client to boot in full duplex or half duplex mode

At Open Boot Prom (OBP) level, all Sun Ethernet interfaces default to use autonegotiation to connect with the highest possible speed and mode. Since most switches and interfaces use this default, too, it is Sun’s recommendation not to change it for regular use

Following are methods of manually setting Operational Mode parameters for a network boot client (primarily used for JumpStart installations) in case autonegotiation does not work (for instance for debugging purposes).

The type of interface the client has will determine which procedure to use and which capabilities can be set in each step.  Not all methods may be applicable to a particular interface. The whole process consists of 2 steps:

(1) forcing at OpenBoot PROM (OBP) level and

(2) forcing in the installation OS.

1st step – Configure the client interface at the ok prompt

1st method:  nvramrc script

The boot PROM variable  use-nvramrc   must be set to true. Example for network boot over Sun GigaSwift Ethernet (ce) interfaces:

ok show-nets
a) /pci@1f,2000/pci@1/network@4
b) /pci@1f,4000/network@1,1

ok cd /pci@1f,2000/pci@1/network@4

ok words
reset seek open close load
watch-net selftest write read
duplex-mode=half duplex-mode=full

ok nvedit
0: probe-all install-console banner
1: apply duplex-mode=full /pci@1f,2000/pci@1/network@4
2: <– type ^C (control-C) here

ok nvstore
ok setenv use-nvramrc =true
use-nvramrc  = true

ok boot net – install

2nd step – Change driver parameters on the boot image that will be used to network boot the client

1st method   use /etc/system variables

The example is for a client with an eri interface (rio chip set) and will set the client’s interface to 100Mbps/full duplex after the client reads the system file. These settings should be made based upon the requirements of the client’s network interface.

# cd /path_to_image/Solaris_8/Tools/Boot/etc

# vi system (add the following lines)

set eri:adv_100fdx_cap = 1

set eri:adv_100hdx_cap = 0

set eri:adv_10fdx_cap = 0

set eri:adv_10hdx_cap = 0

set eri:adv_autoneg_cap = 0

2nd method – use a ndd script

A JumpStart begin script can used when performing a JumpStart installation. Following are the commands required to be in the begin script in order to set a ce (Sun Gigaswift Ethernet UTP) adapter to 100Mbps/full duplex

ndd -set /dev/ce instance 0

ndd -set /dev/ce link_master 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

3rd method   use a  driver.conf  file

The driver.conf file must be placed below the clients booth path e.g. /path_to_image/Solaris_8/Tools/Boot/kernel/drv



I have started ( aka in 2009 as my own personal reference blog, and later sometime i have realized that my leanings might be helpful for other unixadmins if I manage my knowledge-base in more user friendly format. And the result is today's' You can connect me at -

2 Responses

  1. September 16, 2015

    […] Read – Force an Ethernet to boot in full duplex or half duplex mode […]

  2. September 17, 2015

    […] Read – Force an Ethernet to boot in full duplex or half duplex mode […]

What is in your mind, about this post ? Leave a Reply

  Our next learning article is ready, subscribe it in your email

What is your Learning Goal for Next Six Months ? Talk to us