Well, good news! This did in fact turn out to be an issue with the ShowMeWebcam software. It is using Raspberry Pi software which is based on a Debian Style Linux kernel. It turns out that the method used to configure the USB “gadget” was the issue. The issue only affected 12.0.1 Monterey, presumably because of stricter matching.
The USB gadget configuration contained a single configuration, however, the config had been named/numbered “c.2”. The Linux kernel documentation states that configurations should have the format “name.number”, where name can be any text that would be valid in a file system, and number should be the number of the configuration. Notice that there was a single defined configuration, but that configuration had been given the number 2. On earlier versions of Mac OS this did not seem to matter, but on Monterey it seems that the numbering of the configs is important. Monterey was reporting:
CurrentConfiguration : 2 NumberOfConfigurations: 1
error Failed to get configuration descriptor for interface
error Failed to setup UVC Device
Notice, “CurrentConfiguration: 2”, and “NumberOfConfigurations: 1”, followed by “Failed to get configuration descriptor for interface”…
it seems that Monterey is numerically iterating for the configuration, rather than “object” iterating. In other words knowing there is only one configuration, it’s looking for the configuration numbered one (c.1).
The ShowMeWebcam software was changed to write the configuration to the node named “c.1”. This has solved the issue.
It is logical, however, it does represent a change in behaviour between Monterey and earlier versions of Mac OS.