One more data point. I see the same failure using VirtualBox
I realize now that I did not include my test.
The command I'm running is esptool.py -p /dev/ttyUSB0 read_mac. When it works (on my Mac), it should look something like this:
esptool.py v3.1
Serial port /dev/tty.usbserial-D200C0Q3
Connecting...
Failed to get PID of a device on /dev/tty.usbserial-D200C0Q3, using standard reset sequence.
.
Detecting chip type... ESP32
Chip is ESP32-D0WD-V3 (revision 3)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 40:f5:20:51:a6:50
Uploading stub...
Running stub...
Stub running...
MAC: 40:f5:20:51:a6:50
Hard resetting via RTS pin...
On a VM, it fails and looks more like this:
esptool.py -p /dev/ttyUSB0 read_mac
esptool.py v3.2
Serial port /dev/ttyUSB0
Connecting......................................
A fatal error occurred: Failed to connect to Espressif device: Wrong boot mode detected (0x17)! The chip needs to be in download mode.
For troubleshooting steps visit: https://github.com/espressif/esptool#troubleshooting