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:

1
Add-EsxSoftwareDepot "C:\7_KIT\VMW\net55-r8168-8.045a-napi-offline_bundle.zip", "C:\7_KIT\VMW\VMware-ESXi-6.7.0-8169922-depot.zip"

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):

1
2
3
Get-EsxImageProfile
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:


1
2
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:


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

Update:
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-9.2.2.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

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

50 comments:

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 VMware-ESXi-6.7.0-8169922-depot.zip 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.

Regards

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 ESXi670-201906002.zip with net55-r8168-8.045a-napi-offline_bundle.zip 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 VMware-ESXi-6.7.0-8169922-depot.zip. Instead I was able to grab the same modified file out on Dell's site: https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=nf6xj. I ran the same steps mentioned above by OP, and works like a charm. Then grabbed the license key from my.vmaware.com 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\net55-r8168-8.045a-napi-offline_bundle.zip", "C:\7_KIT\VMW\VMware-ESXi-6.7.0-8169922-depot.zip"

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

Thanks,
Scott

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?

Unknown said...

dude. legend. Thank you

Jidé said...

Thank you for this article, you saved my day.

Anonymous said...

Cannot thank you enough for this exceptionally helpful review.
I'm rocking my AM4 3600 / B450M-A on ESXi 6.7 thanks to you.

Can I buy you a beer?

Anonymous said...

Err, meant to say, write-up* not review.

Bobby said...

Any news on rtl8111 driver for esxi 7

razz said...

The change comes from vSphere 7 code and I don't think it will be reverted. Please see https://www.virtuallyghetto.com/2020/03/homelab-considerations-for-vsphere-7.html

Mr Mister said...

You saved my day; after I changed my motherboard to an ASUS P9X79 with XEON 2687v2, the Intel 82579V nic was directly recognized, but not the second Realtek 8111E nic. With your help, I updated my ESXi 6.7 to the latest OS release and just installed that net55-r8168-8.045a-napi.x86_64.vib file. One issue I found out, but not sure is has something to do with my network, I had the set the Realtek nic to 1000/full (same on the Cisco Switch side), because auto negote didn't work.

Anonymous said...

Hi Razz, thank you for this article. Huge help with getting ESXi on NUC. I hit up against the V7.0 issue before reading your update at the bottom of the article! Used your instructions to get 6.7 working.

Thank you.

Anonymous said...

Wow, works like a charm, on a Mini Chinese PC with AMD 2700u-8Cores, and a damn Realtek Gigabit Ethernet NIC. I almost had given up, but I'm soooo glad I found you !
A thousand thanks, Razz, you made my day. I'm feeling grateful.

M.E.

Unknown said...

Dude, You're a fucking GOD. I spent literally 15 hours of my life trying to get ESXI to install properly and I injected the drivers into v7.0, v6.5, v4.0, v5.0 and I had no luck. This blog post solved my problem literally in a matter of seconds. I don't know you, but I love you. Such a damn lifesaver. I can finally start my HomeLab. Keep up the good work man!

ChrisVMLabs said...

Re "acceptance levels: None", check if your Secure Boot / Fast Boot is enabled. "Community" security level required to have "Secure Boot" disabled.

Anonymous said...

Thank you!
Works for me. ESXi 6.7, old laptop with RLT8168

Anonymous said...

ESXi 6.7 Everything works fine UNTIL... I Upload a 1GB+ ISO to a Datastore I get PSOD with
BUG: vmkdrivers/src_92/vmklinux_92/linux/net/skbuff.c:110 ...
Smaller files seem to Upload to a Datastore OK but large files hang ESXi. Reboot resumes service but Upload of large file to Datastore PSOD everytime.
Could anyone please offer some guidance on this? This is only with one NIC connection (Patched Realtek Driver r8168) Ty

Anonymous said...

After quite a struggle I got a working ISO-file thanks to your post. Thank you!

Anonymous said...

THX!!!

Works for me. ESXi 6.7, Intel NUC (NUC7CJYHN)

yam said...

thank you!

Anonymous said...

Thank you so much for taking the time to write this blog post. Thanks to this I get to use my former gaming PC as a virtualisation host, which I absolutely love.
🙏 Very well writen and therefore understandable post.

Unknown said...

It's worth to note the PowerCLI needs python 3.7 with the following modules:

pip3.7 install six pyopenssl psutil lxml

In case of a clean python installation the Add-EsxSoftwareDepot terminates with error:
Add-EsxSoftwareDepot: Could not initialize the VMware.ImageBuilder PowerCLI module. Make sure that Python 3.7 is installed and that you have set the path

Steve B said...

Hi, I know this is old now.
Brilliant post, sad that V7 has messed things up. I have an ASUS board with two built in NICs, Intel and Realtek. ESXi V8.0 recognises the Intel NIC but not the Realtek. So I tried something similar from another blog using the driver package from Vibsdepot.de and adding a community package using SSH. It sort of accepted it but ran up against the error
"[ProfileValidationError] In ImageProfile (Updated) ESXi-8.0.0-20513097-standard, the payload(s) in VIB VFrontDe_bootbank_net55-r8168 ...... does not have sha-256 gunzip checksum. This will prevent VIB security verification and secure boot from functioning properly. Please remove this VIB or please check with your vendor for a replacement of this VIB ..."

It allowed me to complete and reboot, so it is still running, but still doesn't recognise the Realtek in the Navigator (though it can see it in the SSH CLI)

Is there any way of stopping ESXi from requiring the sha-256, or would your method of building a new image work? or do I just accept I can't use the second NIC unless I put in a new Card?
Thanks