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:

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

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

    ReplyDelete
  3. You are welcome and I am happy it helped.

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

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

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

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

    ReplyDelete
  8. 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?

    ReplyDelete
  9. Thank you so much!

    ReplyDelete
  10. Luis Santiago CampodonicoMay 9, 2019 at 9:18 PM

    Thank you very much.

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

    Regards

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

    ReplyDelete
  12. 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? ^^

    ReplyDelete
  13. 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"

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

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

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

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

    ReplyDelete
    Replies
    1. Saying vmx.v00 can't be decompressed...

      Delete
  18. Worked like a charm! Many many thanks!

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

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

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

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

    ReplyDelete
  23. Need to download VMware vSphere Hypervisor (ESXi) Offline Bundle

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

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

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

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

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

    ReplyDelete
  29. ?will it work with 7.0?

    ReplyDelete
  30. Thank you for this article, you saved my day.

    ReplyDelete
  31. 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?

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

    ReplyDelete
  33. Any news on rtl8111 driver for esxi 7

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

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

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

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

    ReplyDelete
  38. 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!

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

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

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

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

    ReplyDelete
  43. THX!!!

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

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

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

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

    ReplyDelete