ESXi 5.5 and Realtek 8168/8169

VMware has dropped the support for Realtek R8168 and R8169 NICs in ESXi 5.5, as already posted in some blogs even before vSphere 5.5 became GA. Really bad news for all of us whitebox homelab owners who use the cheap cards and onboard chips to increase the number of NICs available for vSphere networking. Fortunately the drivers included in ESXi 5.1 still work with 5.5, and there are good instructions available by Vladan Seget and Erik Bussink on how to create a custom installation ISO. But if you’re using a Kickstart server (as I still recommend, even with Auto Deploy and also for a small home lab) it is yet easier.

All you need are the stock installation ISO files for ESXi 5.1[U1] and 5.5, which are unpacked to certain paths so that they are accessible via tftp. Well, that’s PXE boot basics, and I will not go into details. The following assumes that the installation files are located in /tftpboot/esxi_51u1 and /tftpboot/esxi_55 respectively. First we need to copy the VIBs containing the Realtek drivers:

cp -p /tftpboot/esxi_51u1/net_r816.v0* /tftpboot/esxi_55/

Now the boot.cfg must be updated to have the drivers loaded during the initial network boot. Edit the “modules=” line and insert the two modules after the last “net_*” entry:

net_r816.v00 --- net_r816.v01 ---

Remark: the original boot.cfg files contain a slash before each filename. I use a “prefix=” statement and remove all absolute paths. Adjust as required by your specific PXE boot configuration.

At this point the ESXi installer will be able to use the Realtek NICs after PXE boot and continue the installation. But the drivers will not be installed on the target and be gone after the first boot from disk. To have them included in the installation we need to patch the imgdb.tgz file with the driver description from the 5.1 image:

mkdir /tmp/55 /tmp/51u1
cd /tmp/51u1
tar zxf /tftpboot/esxi_51u1/imgdb.tgz
cd /tmp/55
tar zxf /tftpboot/esxi_55/imgdb.tgz
cp -p /tmp/51u1/var/db/esximg/vibs/net-r816* var/db/esximg/vibs/
vi var/db/esximg/profiles/ESXi-5.5.0-*

Well, the file is not that easy to edit, being just one line of XML. Search for the closing viblist tag “</viblist>” at the end of the file / line and insert the following directly before it, without any spaces or line breaks. The VIB definition was taken from the profile of the 5.1 image (file /tmp/51u1/var/db/esximg/ESXi-5.1.0-*):

<vib><vib-id>VMware_bootbank_net-r8168_8.013.00-3vmw.510.0.0.799733</vib-id><payloads><payload payload-name="net-r816">net_r816.v00</payload></payloads></vib><vib><vib-id>VMware_bootbank_net-r8169_6.011.00-2vmw.510.0.0.799733</vib-id><payloads><payload payload-name="net-r816">net_r816.v01</payload></payloads></vib>

Here’s the resulting file for your convenience: ESXi-5.5.0-1331820-standard-981442799.zip
Update for ESXi 5.5U1: ESXi-5.5.0-20140302001-standard886738332.zip

The drivers are now included in the payload, which means they will be installed to the target. Finally we put the patched imgdb.tgz file back into place:

mv /tftpboot/esxi_55/imgdb.tgz /tftpboot/esxi_55/imgdb.tgz.bak
tar zcf /tftpboot/esxi_55/imgdb.tgz var

That’s it. ESXi 5.5 will now happily boot from and use the Realtek R8168/8169 NICs.

7 thoughts on “ESXi 5.5 and Realtek 8168/8169

  1. Hello,

    There are a few more modifications that need to be made for the ESXi 5.5 to run a driver that was designed to run for 5.1. VIB files have two dependencies that need to be changed to the correct version that is implemented in ESXi5.5

    These lines in vib files need to be updated to:

    The old vesion is 2_1_0_0 and API-9_2_1_0 which will not correctly under ESXi5.5. Other than this, great article on inserting RealTek drivers in new ESXi 5.5 image. I am pretty sure it can be done the same with ESXi 6.0.

    Also, if you are doing an upgrade, the file METADATA.ZIP located in UPGRADE directory also needs to be updated with all of the changes above.

  2. For some reason the system did not take part of my post. The new vib lines need to read:
    constraint name=”vmkapi_2_2_0_0″
    constraint name=”com.vmware.driverAPI-9.2.2.0″

  3. Can I have the screen shot for those step’s which you mentioned.
    Because I am not able to under stand. If u give the screen shot it will helpful.

    • What kind of screenshots do you need? Basically all commands are in the post, as well as links to the zip archives required. I have to admit this post needs to be updated for ESXi 6.0, will do so soon.

    • This post assumes you’re using a Kickstart / PXE server for installation, all info is in here. If you’re going with an ISO or CD have a look at the instructions posted be Vladan and Erik, links are in the article as well.

Leave a Reply

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

*

code