Why not add vmxnet3 nic to the VMWare build ?


Can you add the opensource vmtools package for running under VMware That way we can get better interface into VMWare and remove the 1G limitations on e1000 cards. Can I do this myself, as an addon. Is there a build chain available ? Also my hope would be that you guys release a prod ready visualized product ! Saying that, what is missing from VX, apart from hardware speed. Edit: updating the question.. getting used to interface

27 replies

Userlevel 3
This is a great suggestion Alex. I'll share it with the engineering team for their consideration.
Hi To be honest I have a lot of self interest in this. I currently use another 3rd party Virtual Router setup (RouterOS, from mikotek), but they have limitations because they use e1000 nic's and don't want to move to vmxnet nic. You also have brocade with their vyatta buy in, but the licensing on that is astronomical and will probably help vyos (fork) take off. It would be nice to have a virtualised router solution that is also available in hardware. Would love to see a fully functional vmwaretools,vmxnet enabled option 🙂
Userlevel 5
@Alex, thanks for this great question. While we get the engineers response there is this:

https://github.com/vmware/open-vm-tools

You should be able to build this inside a VM.
Oooh, sorry, I am a complete newbie . haven't logged into a cumulus yet !. Just did the download of the VM. I am in the process of organizing some test box's from the local rep. So your saying in the OVA (VMWare template) I can just log in and gain normal linux access. Thats cool, so I can build what I like against it. if so Awesome. Planning to spend some time on it this weekend
Userlevel 3
Yes, you can log in to the VM and it'll look just like a Linux box. Keep us posted with what you're doing with it!
Okay, I will do a bit of a running commentary. Found this, seems like its already packaged up https://packages.debian.org/search?keywords=open-vm-tools Now I have to remember my debian days and add in the deb repos in. What version of debian does 2.5.3 follow. I note its debian release 7.8. Also I have modified the vm. removed all but 1 nic. added in 1 vmxnet3 ( I had to change the OS type to other linux 2.6 as the linux 64 didn't allow vmxnet nics)
Userlevel 2
You are correct. CL 2.5.3 follows Debian Wheezy.
Okay so a step further I added debian.list in /etc/apt/sources.list.d with this deb http://http.us.debian.org/debian wheezy main deb http://security.debian.org/ wheezy/updates main next apt-get update next i tried this apt-get install open-vm-dkms .... Loading new open-vm-tools-2012.05.21 DKMS files... First Installation: checking all kernels... dpkg: warning: version '*-*' has bad syntax: version number does not start with digit It is likely that 3.2.65-1+deb7u2+cl2.5+2 belongs to a chroot's host Module build for the currently running kernel was skipped since the kernel source for this kernel does not seem to be installed. looks like I am not going to be able to use dkms 😞
This is where I am stuck for now dkms build -m open-vm-tools -v 2012.05.21 Error! echo Your kernel headers for kernel 3.2.65-1+deb7u2+cl2.5+2 cannot be found at /lib/modules/3.2.65-1+deb7u2+cl2.5+2/build or /lib/modules/3.2.65-1+deb7u2+cl2.5+2/source.
Userlevel 1
You'll need to install the kernel headers with:

apt-get install linux-headers=$(uname -r)

You may also need to add a symlink:

ln -sf "/usr/src/linux-headers-$(uname -r)" "/lib/modules/$(uname -r)/build"
Had the right kernel-headers installed. I thought it created the sym link ! dkms build -m open-vm-tools -v 2012.05.21 Error! echo Your kernel headers for kernel 3.2.65-1+deb7u2+cl2.5+2 cannot be found at /lib/modules/3.2.65-1+deb7u2+cl2.5+2/build or /lib/modules/3.2.65-1+deb7u2+cl2.5+2/source. Still an issue, its looking for source ??? which strange, I should be able to build which just the headers !
Userlevel 1
The package will not automatically create the symlink. Double check that the link from /lib/modules/3.2.65-1+deb7u2+cl2.5+2/build exists and points to the correct place in /usr/src/
Yes it exists +root@cumulus:/lib/modules/3.2.65-1+deb7u2+cl2.5+2# ll total 200 lrwxrwxrwx 1 root root 46 Aug 7 10:55 build -> /usr/src/linux-headers-3.2.65-1+deb7u2+cl2.5+2 drwxr-xr-x 9 root root 4096 Jul 29 21:22 kernel -rw-r--r-- 1 root root 30194 Aug 7 11:04 modules.alias -rw-r--r-- 1 root root 32009 Aug 7 11:04 modules.alias.bin -rw-r--r-- 1 root root 5223 Jul 29 21:22 modules.builtin -rw-r--r-- 1 root root 7314 Aug 7 11:04 modules.builtin.bin -rw-r--r-- 1 root root 15285 Aug 7 11:04 modules.dep -rw-r--r-- 1 root root 25267 Aug 7 11:04 modules.dep.bin -rw-r--r-- 1 root root 160 Aug 7 11:04 modules.devname -rw-r--r-- 1 root root 8176 Jul 29 21:22 modules.order -rw-r--r-- 1 root root 131 Aug 7 11:04 modules.softdep -rw-r--r-- 1 root root 23005 Aug 7 11:04 modules.symbols -rw-r--r-- 1 root root 29163 Aug 7 11:04 modules.symbols.bin but its not looking for ./build its looking for ./source I am trying to build the VMWare offical package, but it doesn't like the kernel-header directory either /usr/src/linux-headers-3.2.65-1+deb7u2+cl2.5+5/ interesting..
okay there must have been a typo as I tried to ls -l build and it didn't go any where. removed and relinked and dkms is working now !!!
Okay spoke too soon


clean out the package and started again


root@cumulus:~# apt-get install open-vm-dkms

Reading package lists... Done

Building dependency tree

Reading state information... Done

Suggested packages:

open-vm-toolbox

Recommended packages:

open-vm-tools

The following NEW packages will be installed:

open-vm-dkms

0 upgraded, 1 newly installed, 0 to remove and 31 not upgraded.

Need to get 0 B/1221 kB of archives.

After this operation, 5834 kB of additional disk space will be used.

debconf: delaying package configuration, since apt-utils is not installed

Selecting previously unselected package open-vm-dkms.

(Reading database ... 34194 files and directories currently installed.)

Unpacking open-vm-dkms (from .../open-vm-dkms_2%3a8.8.0+2012.05.21-724730-1+nmu2_all.deb) ...

Setting up open-vm-dkms (2:8.8.0+2012.05.21-724730-1+nmu2) ...

Loading new open-vm-tools-2012.05.21 DKMS files...

First Installation: checking all kernels...

dpkg: warning: version '*-*' has bad syntax: version number does not start with digit

It is likely that 3.2.65-1+deb7u2+cl2.5+2 belongs to a chroot's host

Building initial module for 3.2.65-1+deb7u2+cl2.5+2

Error! Build of vmhgfs.ko failed for: 3.2.65-1+deb7u2+cl2.5+2 (x86_64)

Consult the make.log in the build directory

/var/lib/dkms/open-vm-tools/2012.05.21/build/ for more information.


/var/lib/dkms/open-vm-tools/2012.05.21/build/vmhgfs/inode.c:1821:19: error: 'struct dentry' has no member named 'd_alias'

/var/lib/dkms/open-vm-tools/2012.05.21/build/vmhgfs/inode.c:1821:19: error: 'struct dentry' has no member named 'd_alias'


Good news is the vmxnet driver is built....

found the bug
https://bugs.debian.org/cgi-bin/bugre... get the latest version from https://packages.debian.org/wheezy-up... seems to have been built !
OKay, the open-vm-dkms doesn't have the vmxnet3 module !

Seems like there is a version built into modern linux kernel .

/usr/src/linux-headers-3.2.65-1+deb7u2+cl2.5+5/drivers/net/vmxnet3

seems like its not being built in the kernel package.

So back to the drawing board have to try and get the VMware tool to build

seems like my eyes have let me down.
just debugged through the vmware installer
installed kernel = 3.2.65-1+deb7u2+cl2.5+2
headers installed = 3.2.65-1+deb7u2+cl2.5+5

the 2 => 5 on the end

okay I have built the VMWare tools package
I should have followed Kristian Van Der Vliet, more closely.

I presumed
apt-get install linux-headers
was the same as
apt-get install linux-headers=$(uname -r)

it wasn't

also the sym link didn't work either, I am presuming because it was because of the error above So recap. install the headers. grab the VMWare tools tar ball from the VMWare untar and run the installer. Done thanks
One last thing. I removed the e1000 nic and left 2 vmxnet3 nic. I noticed that the image doesn't use udev to remember witch device is witch, I remove my orig eth0 and upon reboot it turned into the first eth device found ... thats not good...
Userlevel 5
Alex, Thanks for the concise write up. This is great. We will definitely take all of this into talks with our engineers. We will update as soon as we can.
Sorry for necroposting...I'm not able to build vmxnet3 for Cumulux VX 3.4.2 based on Debian 8.9.
I tried with open-vm-tools-10.1.5 and VMware-Tools-10.1.5-core-5055683.tar.

Any suggestion?

I need test a Jumbo frame configuration, e1000 can work only with std mtu size..
Hello there. I have the same issue trying to compile open-vm-tools or VMWare-Tools with Cumulux VX both 3.4.1, 3.4.2 and 3.5.0.
I was trying to compile by myself kernel source, but I was not able to get CumulusLinux package from http://oss.cumulusnetworks.com
Can you help us?
I need vmxnet3 driver because I'm experiencing e1000 issues during high traffic simulation
Thanks
Userlevel 5
Is it possible to use the virtio NIC instead of e1000? All my KVM simulations use virtio by default and I know Vx supports it and comes included etc. offers very good performance... although I'm not seeing it on this list of vmware supported options --> https://kb.vmware.com/s/article/1001805
Userlevel 3
Also, Vincenzo, for Cumulus Linux 3.x, the source packages are part of the same repo as the binary packages, for the opensource that Cumulus itself builds. (Under http://repo3.cumulusnetworks.com/repo/pool/cumulus/ , if you are looking to download it directly, rather than using 'apt-get source pkgname'.
Dave Olson wrote:

Also, Vincenzo, for Cumulus Linux 3.x, the source packages are part of the same repo as the binar...

Thanks@Dave for your answer.
One question: if I'd like to compile a new kernel image that includes the vmxnet3 module, what package should I get: linux-source-4.1 or apt-get source linux-image-'uname -r' ?
I'm trying the first method. VM is compiling.
Thanks
Userlevel 3
Dave Olson wrote:

Also, Vincenzo, for Cumulus Linux 3.x, the source packages are part of the same repo as the binar...

It would be:
apt-get install linux-source
(no need to specify the -4.1).

That said, you shouldn't need to build the kernel as such, you just need to build vmxnet3 module, which you should be able to do by installing the linux-headers package, although it's been a while since I've done that. You'd need the source package to get the vmxnet3 sources that match our kernel.
Dave Olson wrote:

Also, Vincenzo, for Cumulus Linux 3.x, the source packages are part of the same repo as the binar...

That's great!!
But by checking the /boot/config-4.1.0-cl-6-amd64
# CONFIG_VMXNET3 is not set
Do you think the single module compile should work as well?
I will try tomorrow and I'll let you know.
Btw thanks for the useful hints!
Thanks

Reply