Saturday, August 18, 2018

Adding Realtek 8111 driver to vSphere 6.7 image

While reinstalling home lab with vSphere 6.7, I was remembered (the hard way) that my on-board NIC is based on Realtek 8111 chipset which is not included in the default vSphere installation media.

I had to go accept the challenge of finding the drivers and creating a new bootable vSphere ISO. Nothing I haven't done before, but since it is not often I've decided to make it a blog post.

First I needed to find the drivers. Using a bit of google foo I found the blog of a long time vExpert (thank you) which has also a collection of drivers. I've downloaded the net55-r8168 offline bundle . From VMware site I've downloaded offline bundle for vSphere 6.7. Placed both of them in the same folder and opened a PowerCLI prompt.

First, create a new software depot using the two bundles:

Add-EsxSoftwareDepot "C:\7_KIT\VMW\", "C:\7_KIT\VMW\"

Next, create a new image profile: see what profiles exist, clone one and change its acceptance level to "community" (because the driver I am about to load is community signed):

New-EsxImageProfile -CloneProfile ESXi-6.7.0-8169922-standard -name ESXi-6.7.0-8169922-standard-RTL8111 -Vendor Razz 
Set-EsxImageProfile -ImageProfile ESXi-6.7.0-8169922-standard-RTL8111 -AcceptanceLevel CommunitySupported

Add the driver to image profile:

Get-EsxSoftwarePackage | Where {$_.Vendor -eq "Realtek"}
Add-EsxSoftwarePackage -ImageProfile ESXi-6.7.0-8169922-standard-RTL8111 -SoftwarePackage net55-r8168

Lastly, generate the vSphere 6.7 ISO containing the driver:

Export-EsxImageProfile -ImageProfile ESXi-6.7.0-8169922-standard-RTL8111 -ExportToIso -filepath C:\7_KIT\VMW\VMware-ESXi-6.7.0-8169922-RTL8111.iso

In one picture, it looks like this:

One more step is needed. Since we have the ISO, we just need to write on a bootable USB. To do this, I've downloaded Rufus, portable version. Run the software, select destination a USB stick (it will be overwritten so better not having any useful data on it), selected the source my new ISO and pressed start.

If during the creation of the bootable stick you are asked to update menu.c32, press YES. After it finishes I've plugged the stick in my physical box and happily installed ESXi.

File download test reached 800 Mbps, a normal value keeping in mind the connectivity between my laptop and the ESXi host.

//UPDATE 04/04/2020 

Driver not supported in vSphere 7

Unfortunately the driver is not supported anymore in vSphere 7 due to legacy VMKlinux drivers no longer being supported. Trying to add the drivers to custom image will fail with the following error:

PS C:\KIT\VMW> Add-EsxSoftwarePackage -ImageProfile ESXi-7.0.0-15843807-standard-RTL8111 -SoftwarePackage net55-r8168
Add-EsxSoftwarePackage : VIB Realtek_bootbank_net55-r8168_8.045a-napi requires com.vmware.driverAPI-, but the
requirement cannot be satisfied within the ImageProfile.
At line:1 char:1
+ Add-EsxSoftwarePackage -ImageProfile ESXi-7.0.0-15843807-standard-RTL ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (VMware.ImageBuilder.Types.ImageProfile:ImageProfile) [Add-EsxSoftwarePacka
   ge], Exception
    + FullyQualifiedErrorId : EsxImageProfileValidationError,VMware.ImageBuilder.Commands.AddProfilePackage

Add-EsxSoftwarePackage : VIB Realtek_bootbank_net55-r8168_8.045a-napi requires vmkapi_2_2_0_0, but the requirement
cannot be satisfied within the ImageProfile.
At line:1 char:1
+ Add-EsxSoftwarePackage -ImageProfile ESXi-7.0.0-15843807-standard-RTL ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (VMware.ImageBuilder.Types.ImageProfile:ImageProfile) [Add-EsxSoftwarePacka
   ge], Exception
    + FullyQualifiedErrorId : EsxImageProfileValidationError,VMware.ImageBuilder.Commands.AddProfilePackage

Trying to upgrade to vSphere 7 gives the error, although in a prettier format:

Options are either keep 6.7 and run 7.0 nested or look for another NIC.

//UPDATE 16/04/2020 

I've plugged in a 10 year old Intel CT Gigabit adapter and upgraded to vSphere 7.0.

Needed to remove the Realtek vib first:  esxcli software vib remove -n net55-r8168


Hamish said...

Thank you very much for this :-) Worked like a charm for the MSI boards I use in my test lab.

Anonymous said...

Dude, thank you so much. Trying to Homelab as well, this was a guide write up. The internet is worthless without people like you.

razz said...

You are welcome and I am happy it helped.

Anonymous said...

Thank you for concisely documenting how you fixed this. It's an oldie, but goldie. It doesn't seem to work for me in 6.7u1 (ESXi-6.7.0-20181104001-standard). I still see the acceptance level as "None" on a pink screen.

Anonymous said...

Defeated, I decided to:

1) install ESXi to a flash drive using another machine that meets the HCL; boot it up
2) change the acceptance level
3) install the VIB from the v-front depot
4) shut it down
5) move the flash drive to the machine with the realtek 8111g (gigabyte brix)
6) boot it up and finish configuration

razz said...

Thank you for posting this. I haven't tried with 6.7 U1. I will look at it.

Anonymous said...

Thank you for this post. I've tried a lot of different things and this was the only successful solution I've found. Well played sir!!!!

Anonymous said...

It won't let me download VMware vSphere Hypervisor (ESXi) Offline Bundle the download is greyed out. How do I get the file?

Anonymous said...

Thank you so much!

Luis Santiago Campodonico said...

Thank you very much.

Work perfect with ESXi 6.7 Update 2 and Realtech RTL8111H on ASUS B150M-A motherboard.


Flávio Maielo - PY4EK said...

Thanks bro.

Brendon Brown said...

Fantastic. Respect for recording your problem and solution for anonymous beneficiaries like me.

zelias said...

Hi friend, I've done all of the above, first ESXi didn't install because it couldn't find the network card. After this it installs fine, however, I can never get any connectivity to the machine, DHCP doesn't work, I don't see the host's MAC on my router. Tried different cables and ports etc but no luck so far. Any ideas? ^^

kopfpilot said...

I patched the offlinebunde with following your instructions today. According the logs (Alt+F12) I could see that an ip address was assigned, though finaly the purple screen of death came up with following message:

"Failed to Validate Acceptance Level. Failed to Check Acceptance Level: None"

kopfpilot said...

Disabling UEFI Secure Boot solved the problem. Even tough the usb stick was started using UEFI, the error disappeared and the installation went fine!

Dan said...

This guide is great. I ran into the same issue with RealTek 8111 driver not present in VMware 6.5. Like Anonymous says above, I was not able to download VMware vSphere Hypervisor (ESXi) Offline Bundle Instead I was able to grab the same modified file out on Dell's site: I ran the same steps mentioned above by OP, and works like a charm. Then grabbed the license key from and it worked as well. Thanks for this posting.

sprousa said...

Thanks a lot. Worked for me as well. Could not find the offline bundle of the 6.7 version. Using 6.5 with a Realtek 8111H from the J5005 AsRock.

Anonymous said...

It seems to work with the driver, but later into installing the purple screen comes up daying vmx.v00 ��

Anonymous said...

Saying vmx.v00 can't be decompressed...

Unknown said...

Worked like a charm! Many many thanks!

sgasprguy said...

Thanks a lot!. Worked great on a inspiron 3050 micro pc. I did have to add ignoreHeadless=TRUE to boot options (shift + O) and then make the boot changes permanent

Micha said...

Many thanks! Works on ASRock J3455M with Intel Celeron J3455 SoC

val said...

This is the best tutorial. You could modify it with /latest/ which would fetch latest editionl

Scott said...

Step 1 says this:

Add-EsxSoftwareDepot "C:\7_KIT\VMW\", "C:\7_KIT\VMW\"

But I don't understand why the esx image is in a zip format. I only have .iso format for my esxi images.


razz said...

Need to download VMware vSphere Hypervisor (ESXi) Offline Bundle

mrk67422 said...

I came here because I was looking for a way to install Esxi on a Dell L502X laptop. I overcame the problem with the Realtek driver thanks to your guide. The installation has been successfully completed. After restart, unfortunately, Esxi does not start. Message is displayed: Operating System Not Found.
I tried to change the disk settings in Bios, but this is Bios without Uefi.

mrk67422 said...

I found the cause and I have a solution. Esxi from version 5.0 is installed on the disk intentionally in the GPT system. Up to version 6.5, this can be changed with the "formatwithmbr" command when starting the installer. We then impose the MBR system. Older computers do not have UEFI boot options in Bios. That's how Dell XPS L502X has. We have 2 solutions. The above "formatwithmbr" or upgrade Bios. For L502X, there is no official UEFI Bios. I used modified Bios. It worked and I could install Esxi 6.7 with Realtek 8168 support. Thank you razz for this tutorial.

BSD daemon said...

Ran into some issues with latest ESXi 6.7.0 bundles -- you need to set a matching low-level acceptance level and igonore signatures when exporting to ISO:

Add-EsxSoftwarePackage -ImageProfile ESXi-6.7.0-20200404001-standard-RTL8111 -SoftwarePa
ckage net55-r8168 -Force

Set-EsxImageProfile -ImageProfile ESXi-6.7.0-20200404001-standard-RTL8111 -AcceptanceLev
el CommunitySupported

Export-EsxImageProfile -ImageProfile ESXi-6.7.0-20200404001-standard-RTL8111 -ExportToIs
o -filepath VMware-ESXi-6.7.0-20200404001-RTL8111.iso -NoSignatureCheck

Roberto said...

What i need to have installed on a windows machine to let power shell can give such commands (Add-EsxSoftwareDepot.. etc..)?

mrk67422 said...

Hi Roberto :) You need VMware PowerCLI. Chceck google for install.

Diganta Karmakar said...

?will it work with 7.0?