Install vmxnet network driver on your Debian VM

After installing Debian 4 RC2 (Etch) as a VM under VMWare ESX 3.5 it was decided to change the default PCNet32 virtual network driver to the VMWare tools open source vmxnet driver to see if this alleviated a performance response timing issue with some peripheral network servers. No direct benchmarking was undertaken to verify any possible performance gains.

If you need to figure out what ethernet driver is being run under your VM you can refer to this article Find your ethernet driver under Debian.

The following installation procedure has been testing under the VMWare GSX 1.06 and ESX 3.5 environments with Debian Etch setup as server installs with no GUI environment.

Show Plain Text
Text code
  1. Check /etc/apt/sources.list is only set to stable
  2. apt-get update
  3. apt-get install linux-headers-$(uname -r)
  4. Add unstable to /etc/apt/sources.list
  5. deb http://http.us.debian.org/debian/ unstable main contrib non-free
  6. apt-get update
  7. apt-get install open-vm-source
  8. module-assistant prepare open-vm
  9. module-assistant auto-install open-vm

Now add the vmxnet module to the initrd image.

Show Plain Text
Text code
  1. cp /initrd.img ~/initrd.img.cpio.gz
  2. gunzip ~/initrd.img.cpio.gz
  3. mkdir ~/tmpspace
  4. cd ~/tmpspace
  5. cpio -i < ~/initrd.img.cpio
  6. cp /lib/modules/`uname -r`/misc/vmxnet.ko ~/tmpspace/lib/modules/`uname -r`/kernel/drivers/net/
  7. cd ~/tmpspace
  8. find . | cpio -o -H newc | gzip -9 > ../newinitrd.gz
  9. mv /boot/initrd.img-`uname -r` /boot/initrd.img-`uname -r`.old
  10. cp ~/newinitrd.gz /boot/initrd.img-`uname -r`
  11. edit /etc/modprobe.d/blacklist add 'blacklist pcnet32'
  12. update-initramfs -u

If the update-initramfs fails you may net need to run it like this

Show Plain Text
Text code
  1. update-initramfs -k `uname -r` -t -u

After a reboot you can verify the driver has been installed by running "ethtool -i eth0" which should return something similar to the following :-

Show Plain Text
Text code
  1. driver: vmxnet
  2. version: 2.0.1.1
  3. firmware-version: N/A
  4. bus-info: 0000:00:11.0

Reference

Filed under: Notes, Linux  Tags: Debian

0 Responses to “Install vmxnet network driver on your Debian VM”

Sorry, comments have been closed for this post.
(default) 11 queries took 7 ms
NrQueryErrorAffectedNum. rowsTook (ms)
1DESCRIBE `posts`17171
2DESCRIBE `comments`11110
3DESCRIBE `tags`221
4DESCRIBE `categories`221
5DESCRIBE `posts_tags`221
6DESCRIBE `categories_posts`221
7SELECT `Post`.`id`, `Post`.`url`, `Post`.`title`, `Post`.`icon`, `Post`.`metadesc`, `Post`.`metakeys`, `Post`.`categories`, `Post`.`tease`, `Post`.`body`, `Post`.`private_body`, `Post`.`created`, `Post`.`modified`, `Post`.`status`, `Post`.`allow_comments`, `Post`.`tags`, `Post`.`hitcount`, `Post`.`hitcount_rss` FROM `posts` AS `Post` WHERE `Post`.`url` = 'install-vmxnet-network-driver-on-your-debian-vm' LIMIT 1111
8SELECT `Comment`.`id`, `Comment`.`post_id`, `Comment`.`body`, `Comment`.`author`, `Comment`.`url`, `Comment`.`email`, `Comment`.`ip`, `Comment`.`status`, `Comment`.`junk_score`, `Comment`.`created`, `Comment`.`modified` FROM `comments` AS `Comment` WHERE `Comment`.`status` = 2 AND `Comment`.`post_id` = (48) 001
9SELECT `Tag`.`id`, `Tag`.`tag`, `PostsTag`.`post_id`, `PostsTag`.`tag_id` FROM `tags` AS `Tag` JOIN `posts_tags` AS `PostsTag` ON (`PostsTag`.`post_id` = 48 AND `PostsTag`.`tag_id` = `Tag`.`id`) 110
10SELECT `Category`.`id`, `Category`.`category`, `CategoriesPost`.`post_id`, `CategoriesPost`.`category_id` FROM `categories` AS `Category` JOIN `categories_posts` AS `CategoriesPost` ON (`CategoriesPost`.`post_id` = 48 AND `CategoriesPost`.`category_id` = `Category`.`id`) 220
11UPDATE `posts` AS `Post` SET `Post`.`hitcount` = Post.hitcount + 1 WHERE `Post`.`id` = 4810