Just Another IT Blog

It's time to share some of my experiences, crazy ideas, tips and tricks !!!

Post Page Advertisement [Top]

Hi there, with vmworld2014 coming to an end, it’s time to go back at vSphere Native Drivers, we already covered the basics on our previous post, so it’s now time to check some operational information about it.

Since a device can have a Native and a Linux Driver, which one will be loaded ?
By default, if ESXi identify a Native Driver for a device it will be loaded instead of Linux driver.

Next inevitable question is: What Native drivers are available on ESXi ?
There are map files pointing to supported devices.

/etc/vmware/default.map.d (for Native drivers)
/etc/vmware/driver.map.d (for Linux driver)

just list the content of the files for the supported device.

While some of them are easy to identify by it’s name others are not.

just as an example:
qlnativefc.map is for Qlogic devices.
lpfc.map is for Emulex devices.

Good, but what specific device model is supported ?
Now you need to check the specific map file.

Lets take an example: cat qlnativefc.map

Wow, this is hard to read, right ?

Let me help you out with it

Regtype is the type of driver and as you could imagine can be native or linux
Id is where you will identify the vendor and the device model, being the first 4 digits the vendor and the last 4 digits de device model.
In the example10772432, 1077 is the vendor and 2432 is the device model.

Ok, but what vendor 1077 is ?
You can look at the /etc/vmware/pci.ids for the details

Grep –I 1077 /etc/vmware/pci.ids

Or what I prefer to use is access the PCI ID Repository web site:

 To list the devices using native drivers, run the following command:

esxcli storage core adapter list 
That’s all nice to know about, but, What if for some crazy idea I want the old behavior, I mean loading the Linux drivers instead of Native Drivers ?


CAUTION: It’s not recommended. Should only be used during troubleshooting and when asked by VMware’s support personnel, use it at your own risk.

You can change it’s behavior during boot process, press shift + O and you will be presented with the boot options menu, add “preferVmklinux=TRUE” to the end of the command

If your system is already UP you can change it running the following command, remember to reboot the box after running it.

esxcli system settings kernel set -s=preferVmklinux -v=TRUE

This change is persisted to the /etc/vmware/esx.conf file and the ESXi host will continue to load the vmklinux driver preferentially until this action is reversed.

Ok, I understand it’s not recommended but could be situations where a specific device does not work well with Native driver and I want just only one specific device to use a Linux driver, how do I manage that ?

I’m glad you ask it.
You can change the behavior on a device basis, running the following command, don’t forget to reboot the box after running it.

esxcli system module set --enabled=false --module=
esxcli system module set --enabled=true --module=

is the name of the driver that you want to disable, lpfc for Emulex, qlnativefc for Qlogic

The first command will disable the Native driver and the second one will enable the Linux driver.

I hope these information’s help you to better manage your environment.
See you .....

Bottom Ad [Post Page]