Wednesday, December 16, 2009

Solaris 10 and VMWare vmxnet ethernet driver

The problem that I had been experiencing was that I was unable to install the VMWare vxmnet ethernet driver onto a Solaris 10 x86 server running on a VMWare vSphere 4.0 server.

The solution to getting the vmxnet interface to work is as follows:

1) install stock e1000 ethernet interface on a Solaris VM
2) install the VMWare 4.0 tools on a Solaris VM
3) halt and power off VM
4) install a second ethernet interface onto a Solaris VM, using the vmxnet3 driver
5) ifconfig vmxnet3s0 plumb
6) ifconfig e1000g0 unplumb
7) mv /etc/hostname.e1000g0 /etc/hostname.vmxnet3s0
8) reboot

The trick is to have two ethernet interfaces (e1000 and vmxnet3) and just unplumb from Solaris the e1000 interface. Don't remove the e1000 interface from the VMWare host configuration.

4 comments:

Anonymous said...

Very helpful, thanks! The only thing is, if your interface is configured for DHCP, you also need to move another file, in my case:
mv /etc/dhcp.e1000g1 /etc/dhcp.vmxnet3s0

Anonymous said...

Very helpful. Spend most of the day running into dead ends on this before coming accross this fix. Thanks again!

Unknown said...

Very helpful!

Zbigniew Luszpinski said...

I switched Solaris 10 to vmxnet3 another way on VMware Workstation:
Do steps 1,2,3 as on blog
(If you use vSphere ignore following points 4,5,6 in vSphere just remove e1000 NIC and add vmxnet3 NIC)
4. On host go to directory where your virtual Solaris is installed
5. open *.vmx file (for example Solaris 10.vmx)
6. Replace:
ethernet0.virtualDev = "e1000"
with:
ethernet0.virtualDev = "vmxnet3"
(if you have more eth interfaces change for all other too if you want)
7. Save changes and boot Solaris
(Solaris will be barking that e1000 is missing - ignore this and continue to shell)
8. After logging in do:
devfsadm
mv /etc/hostname.e1000g0 /etc/hostname.vmxnet3s0
mv /etc/dhcp.e1000g0 /etc/dhcp.vmxnet3s0
After reboot there will be no more messages about missing e1000g.