WilliamLam.com

  • About
    • About
    • Privacy
  • VMware Cloud Foundation
    • VMware Cloud Foundation 9.1
    • VMware Cloud Foundation 9.0
  • VKS
  • Homelab
    • Hardware Options
    • Hardware Reviews
    • Lab Deployment Scripts
    • Nested Virtualization
    • Homelab Podcasts
  • VMware Nostalgia
  • Apple
You are here: Home / ESXi / How to enable passthrough for USB Network Adapters claimed by ESXi CDCE Driver?

How to enable passthrough for USB Network Adapters claimed by ESXi CDCE Driver?

03.30.2023 by William Lam // 12 Comments

As part of vSphere 7.0, ESXi now ships with a USB CDCE (Communication Device Class Ethernet) driver which can benefit customers with SB network adapters that support the CDCE specification as shared in this blog post HERE. This can especially be useful for those running a VMware Homelab where the onboard network adapter may not be supported and using a CDCE USB network adapter would allow you to install ESXi.

When a CDCE-supported USB network adapter is connected to an ESXi host, it will automatically be claimed by the CDCE driver as shown in the screenshot below.


If you are planning to use the USB network adapter for VMkernel traffic, then there is no workflow change like any other physical network adapter. However, if you intend to passthrough the USB network adapter to a VM, then you may find that it is not working as expected.


The reason for this is that ESXi has already claimed the USB device, assuming you wish to use it for VMkernel traffic. To change the behavior for a particular CDCE-supported USB network adapter, we just need to apply a USB Quirk which tells ESXi to ignore this adapter.

Step 1 - Run the following ESXCLI command to retrieve the desired USB network adapter and make a note of both the VendorID and ProductID (0xAAAA and 0xBBBB). In this example, the VendorID is 0x0bda and ProductID is 0x8153.

esxcli hardware usb passthrough device list

Step 2 - Next, we configure the USB Quirk and replace our VendorID and ProductID into the following string: 0xAAAA:0xBBB:0:0xffff:UQ_NET_IGNORE and then run this ESXCLI command:

esxcli system settings advanced set -o /USB/quirks -s 0x0bda:0x8153:0:0xffff:UQ_NET_IGNORE

Step 3 - Finally, we just need to reboot for the change to go into effect and after that, our CDCE USB network adapter can now be passthrough to a VM

Categories // ESXi, Home Lab, vSphere 7.0, vSphere 8.0 Tags // cdce, ESXi 7.0, ESXi 8.0, usb network adapter

Comments

  1. *protectedPaul says

    04/05/2023 at 7:33 am

    I'm having a similar problem with a Realtek RTL8153 USB based ethernet adapter. I've installed the fling drivers (based on what I read this was necessary for it to work properly). Using 'esxcli network mic list' I see the device:

    [root@esxi:~] esxcli network nic list
    Name PCI Device Driver Admin Status Link Status Speed Duplex MAC Address MTU Description
    ------ ------------ -------- ------------ ----------- ----- ------ ----------------- ---- -----------
    vmnic0 0000:56:00.0 cndi_igc Up Up 1000 Full 48:21:0b:3e:6e:05 1500 Intel Corporation Ethernet Controller I225-V
    vusb0 Pseudo uether Up Up 1000 Full 5c:85:7e:3e:4c:45 1500 CMI USB 101001000 LAN

    Looking at the passthrough status I see this:

    [root@esxi:~] esxcli hardware usb passthrough device list
    Bus Dev VendorId ProductId Enabled Can Connect to VM Name
    --- --- -------- --------- ------- ------------------------- ----
    2 2 bda 8153 false no (passthrough disabled) Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter
    2 3 8087 33 true yes Intel Corp.

    I can't get it set for passthrough so I can use it on one of my Linux VMs. What am I missing or doing wrong? Thank you!

    Reply
    • *protectedPaul says

      04/05/2023 at 9:16 am

      Finally got it to work. I was issuing the command to enable passthrough on the CLI but flipping over and using the web UI to reboot the device. That was apparently losing my change. As soon as I issued the command to enable passthrough THEN rebooted from the CLI it worked.

      Reply
  2. *protectedMichiel Rueter says

    07/13/2023 at 5:51 pm

    Just what I was looking for, thanks!
    As an extra tip for people trying to accomplish the same: I was able to set this by modifying "USB.quirks" key under "Advanced settings" of my ESXi host.

    Reply
  3. *protectedRegis says

    09/11/2023 at 9:02 am

    I'm having a problem with my Linux-USB Ethernet gadget (0x0525:0xa4a1).
    After settings the /USB/quirks, rebooting, I still get:
    1 3 525 a4a1 false no (passthrough disabled)

    manually enabling passthrough with:
    esxcli hardware usb passthrough device enable -d 1:3:525:a4a1
    gives no error, but changes nothing...

    When I connect the USB Ethernet gadget, it is immediately detected as vusb0...
    Any idea ?

    Reply
  4. *protectedFelix says

    09/27/2023 at 6:38 am

    Hi William,

    Nice sharing! In my case, I only have two same USB RTL8156 2.5G Network Adaptor which are compatible with the ESXi 8.0 host. I am planning to use one for the management port, andd passthrough another to the VM. I wonder if I can still use the similar command you posted here?

    esxcli system settings advanced set -o /USB/quirks -s 0x0bda:0x8156:0:0xffff:UQ_NET_IGNORE

    Will the USB Network Adaptor used as the management port still work as expected?

    Thanks.

    Reply
  5. *protectedJW Whitmarsh says

    11/01/2023 at 7:02 pm

    I was able to get a CableMatters adapter installed, and saw it listed in the web interface on the host. I got the IDs, enabled passthrough, and restarted the host. Now I don't see the adapter in the web interface, but I can still see that passthrough is enabled via the CLI. Any suggestions?

    Reply
  6. *protectedLoic says

    10/02/2024 at 5:53 am

    Hi William,
    Thanks for this great blog.

    I have an related issue:

    For lab purposes I use usb wifi dongles, so I can map these USB devices to a VM and run wifi tests (with usb passtrough). However, the latest adapter I've bought has a strange behavior: before installing the drivers, it presents itself as a cd drive, to directly propose the drivers.

    The problem is that ESX recognizes it as a USB CD drive and doesn't offer it as a passthrough device.

    So I tried a quirk: esxcli system settings advanced set -o /USB/quirks -s 0x0bda:0x1a2b:0:0xffff:UQ_MSC_IGNORE

    After the reboot, I saw it as “Passthrough disabled” with the command “esxcli hardware usb passthrough device list”, but I had to use the command to activate Passthrough, but nothing helped.

    Do you have an idea?

    Reply
  7. *protectedtree says

    03/04/2025 at 9:05 pm

    Hi William,
    I am encountering an issue where the virtual USB network port on the server BMC cannot be recognized on VMware 8.0U1. While lsusb can detect it, the esxcli network nic list command does not show this network port. However, it is recognized normally on VMware 8.0U2. Below is the relevant information, and I would greatly appreciate your guidance.

    [root@localhost:~] esxcli hardware usb passthrough device list
    Bus Dev VendorId ProductId Enabled Can Connect to VM Name
    --- --- -------- --------- ------- ----------------- ----
    1 4 46b ffb0 true yes American Megatrends, Inc.

    [root@localhost:~] lsusb
    Bus 001 Device 001: ID 0e0f:8003 VMware, Inc. Root Hub
    Bus 001 Device 002: ID 046b:ff01 American Megatrends, Inc.
    Bus 001 Device 003: ID 046b:ff10 American Megatrends, Inc. Virtual Keyboard and Mouse
    Bus 001 Device 004: ID 046b:ffb0 American Megatrends, Inc.--- this device
    [root@localhost:~]

    Reply
  8. *protectedJason says

    08/06/2025 at 5:17 am

    @william,

    You seem to have mixed up the Product ID and Vendor ID above

    Reply
    • William Lam says

      08/06/2025 at 7:07 am

      Thanks Jason, not sure how I missed that! Its now fixed

      Reply
  9. *protectedJimmy Chen says

    02/17/2026 at 7:31 am

    I am trying to passthrough my usb wifi adapter to a VM but it does't seem to be working. This is on a ESXi 8.0.3. I think it has to do with itself turning into Driver CDROM Mode.

    I am following this article

    https://knowledge.broadcom.com/external/article/409283/usb-passthrough-to-virtual-machine-for-m.html

    [root@hesxlab:~] lsusb

    Bus 001 Device 001: ID 0e0f:8003 VMware, Inc. Root Hub

    Bus 001 Device 002: ID 174c:2074 ASMedia Technology Inc. ASM1074 High-Speed hub

    Bus 001 Device 003: ID 1e71:300e NZXT

    Bus 001 Device 004: ID 1e71:2020 NZXT

    Bus 001 Device 005: ID 1e71:201d NZXT

    Bus 001 Device 006: ID 8087:0033 Intel Corp.

    Bus 001 Device 007: ID 174c:3074 ASMedia Technology Inc. ASM1074 SuperSpeed hub

    Bus 001 Device 008: ID 0781:5581 SanDisk Corp. Ultra

    Bus 001 Device 009: ID 0bda:1a2b Realtek Semiconductor Corp. RTL8188GU 802.11n WLAN Adapter (Driver CDROM Mode)

    [root@hesxlab:~] esxcli hardware usb passthrough device list

    Bus Dev VendorId ProductId Enabled Can Connect to VM Name

    --- --- -------- --------- ------- ------------------------- ----

    1 9 bda 1a2b false no (passthrough disabled) Realtek Semiconductor Corp. RTL8188GU 802.11n WLAN Adapter (Driv

    1 6 8087 33 true yes Intel Corp.

    1 8 781 5581 false no (passthrough disabled) SanDisk Corp. Ultra

    [root@hesxlab:~] esxcli hardware usb passthrough device enable -d 1:9:bda:1a2b

    [root@hesxlab:~] esxcli system settings advanced set -o /USB/quirks -s 0xbda:0x1a2b:0:0xffff:UQ_NET_IGNORE

    [root@hesxlab:~] reboot

    [root@hesxlab:~] Connection to 10.252.50.183 closed by remote host

    user@MM2018 ~ % ssh [email protected]

    ([email protected]) Password:

    [root@hesxlab:~] esxcli hardware usb passthrough device list

    Bus Dev VendorId ProductId Enabled Can Connect to VM Name

    --- --- -------- --------- ------- ------------------------- ----

    1 3 bda 1a2b false no (passthrough disabled) Realtek Semiconductor Corp. RTL8188GU 802.11n WLAN Adapter (Driv

    1 7 8087 33 true yes Intel Corp.

    1 9 781 5581 false no (passthrough disabled) SanDisk Corp. Ultra

    [root@hesxlab:~]

    Reply
    • William Lam says

      02/17/2026 at 4:08 pm

      Can you provide the output for the following commands:

      esxcfg-scsidevs -l and lsusb -v

      Reply

Thanks for the comment!Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Search

Thank Author

Author

William is Distinguished Platform Engineering Architect in the VMware Cloud Foundation (VCF) Division at Broadcom. His primary focus is helping customers and partners build, run and operate a modern Private Cloud using the VMware Cloud Foundation (VCF) platform.

Connect

  • Bluesky
  • Email
  • GitHub
  • LinkedIn
  • Mastodon
  • Reddit
  • RSS
  • Twitter
  • Vimeo

Recent

  • Clarifying Minimum Required ESX Hosts for VCF Deployments 06/18/2026
  • VCF 9.1 - Auditing VCF Management Services (VCFMS) IP Pool Usage  06/17/2026
  • VCF 9.1 - Auditing vCenter Server Connections using the Connection Utilization API 06/15/2026
  • Quick Tip: Resolving OVFTool "Failed to Send File" Errors on macOS 06/13/2026
  • VCF 9.1 - Are You Using the Correct ESXCLI Command to Enable NVMe Tiering? 06/12/2026
Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.

To find out more, including how to control cookies, see here: Cookie Policy

Copyright WilliamLam.com © 2026

Loading Comments...