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>
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.