How to change adapter properties of the SEA VIO IBM


One of the problems that one can often run into is that you need to change some characterstic on the ethernet adapter that you are using for the SEA. One example is that you need to change the speed from say autonegotiate to 100 full duplex. If you simply go to the root user with oem_setup_env and try to make the change, you will likely get this error.

# lsattr -El ent0 -a media_speed
media_speed 100_Full_Duplex Media speed True

#  chdev  -l ‘ent0′ -a media_speed=’Auto_Negotiation’
Method error (/usr/lib/methods/chgent):
0514-062 Cannot perform the requested function because the
specified device is busy.

It is likely that when you setup the SEA that you configured the TCP/IP address on the SEA as directed in the virtualization Redbook or the white papers on this topic.


Note that you will lose network access from any clients that are dependent on this SEA unless you already have setup SEA failover or client network interface backup.

Follow these steps to first unconfigure and remove the SEA, then make the changes and reconfigure.

  1. Set the backspace key if it’s not working

stty erase (hit backspace key) then hit enter
looks like
stty erase ^?

  1. View the ethernet virtual adapters as padmin

$ lsdev | grep ent
ent0       Available 10/100/1000 Base-TX PCI-X Adapter (14106902)
ent1       Available Virtual I/O Ethernet Adapter (l-lan)
ent2       Available Virtual I/O Ethernet Adapter (l-lan)
ent3       Available Virtual I/O Ethernet Adapter (l-lan)
ent4       Available Shared Ethernet Adapter

  1. Become root user

$ oem_setup_env

  1. Check to see if the IP address is configured on the SEA

If it is configured, then it will return an inet address as shown here:
# ifconfig en4
en4: flags=e080863,80
inet netmask 0xffffff00 broadcast
tcp_sendspace 131072 tcp_recvspace 65536

If it is not configured, then you will get this:
# ifconfig en4
en4: flags=e080822,80

  1. If it is configured, then you will need to unconfigure it. Normally if this was a physical adapter, I would simply remove the adapter, but if you try to do that will the SEA, you will get errors if my memory serves me right, yet it may be worth trying first. If you do this, you will need to remove the en interface, the et interface, and finally the ent interface.

At this point you can use your favorite way to remove the IP from the interface. Once you have done that, you no longer will have network access directly to the VIO server, but will need to go through the HMC console terminal. If you had setup the IP address on the virtual adapter in a dual VIO system, this would not be a problem.

If nothing else works, or if the only interface that has an IP address is the SEA, then type

rmtcpip -f interface ent4

This will remove the TCPIP address. To check, rerun the ifconfig command from earlier. Once this address is removed, then you should be able to remove the SEA.

  1. Type exit to go back to padmin
  2. Remove the SEA device

# exit
$ rmdev -dev ent4 -recursive

  1. This should remove cleanly and if it doesn’t it is debug time. Assuming that it is removed, then go back to root.

$ oem_setup_env

  1. Make sure that en4 and et4 have also been removed (Adjust the 4 for the number of your adapter

# rmdev -dl en4
# rmdev -dl et4
# rmdev -dl ent4

  1. Now take the physical adapter down. In this case it is the ent0 adapter so:

# ifconfig en0 down
# ifconfig en0 detach

  1. Now you should be able to change the ent0 adapter through smit or with chdev as shown here:

#  chdev  -l ‘ent0′ -a media_speed=’Auto_Negotiation’

  1. Now I’m a little foggy on if you need to ifconfig en0 attach and up. I think you may not do this unless the mkvdev command fails
  2. Return to padmin and recreate the SEA adapter with mkvdev

# exit
$ mkvdev -sea ent2 -vadapter ent0 -default ent0 -defaultid 1 \
-attr ha_mode=auto ctl_chan=ent1
ent4 Available

  1. Then readd the IP information either with mktcpip or smitty tcpip Here I recommend putting the address on a separate client virtual ethernet adapter so you don’t have to rmtcpip the next time. You can do DLPAR to add this to the partition and run cfgmgr before the mktcpip step

mktcpip -hostname fsvio3 -inetaddr -interface en4 -start -netmask
-gateway -nsrvdomain -nsrvaddr

  1. Test by pinging something outside the box.

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA * Time limit is exhausted. Please reload the CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.