Note that since I managed to brick one adapter trying to do this I disclaim responsibility if you, dear reader, try it and fail. On the other hand, I searched the Internet high and low for anyone else that was successful flashing these adapters without a physical Windows machine. Finding nothing, it seemed wise to write up my success.
- Start Fusion 12 and a Windows 10 VM.
- Download the drivers for the adapter and the updated firmware onto the Windows VM
- Install the drivers for the adapter in Windows before plugging it in.
- Plug in the adapter. MacOS will claim it.
- Unload the driver and the ECM kext bundle from a Terminal prompt:
sudo kextunload /System/Library/DriverExtensions/AppleUserECM.dext sudo kextunload -v -c com.apple.driver.usb.cdc.ecm
Finally, attach the adapter to the VM with the Virtual Machine->Bluetooth and USB menu option in Fusion. Run the autorun.bat file as an Administrator and it should flash successfully.
The long story.
I am in the process of reconstructing my home lab and have several NUC-form-factor machines that don’t have any free PCIe slots, but do have USB 3.1. As I just upgraded to a Mikrotik 10 GbE switch, I would like to have faster than 1 Gb ethernet to them, so I purchased 4 QNA-UC5G1T adapters. William Lam’s excellent website had an article on them indicating they should have their firmware flashed to 3.1.6 (available here) to get the best performance. Unfortunately the flash utility only works under Windows.
My first attempt at flashing the adapter under VMware Fusion 11 was a failure. I bricked the device, and QNAP was kind enough to RMA it for me and send me a new one.
I’ve since upgraded to Fusion 12. Starting my Windows 10 VM, I plugged the adapter in and told Fusion to attach it to the VM instead of the Mac. I was greeted with a message indicating the host machine had already claimed the device.
I found the device in the Network PrefPane and removed it, but that did not help. I realized I would have to go a little deeper.
MacOS’s System Information tool showed me that the driver being used for the adapter was /System/Library/DriverExtensions/AppleUserECM.dext. I unloaded this kext from the terminal
sudo kextunload /System/Library/DriverExtensions/AppleUserECM.dext
and also unloaded the ECM bundle
sudo kextunload com.apple.driver.usb.cdc.ecm
At that point I was able to attach the adapter to the Fusion VM. Following the instructions in the firmware zip file, I successfully flashed the adapter.