On Tue, Jan 19, 2021 at 10:20:34AM -0800, Doug Kingston wrote: > I am doing some work setting up some radio data nodes that use USB > soundcard devices to attach to radios. I am building a system with > two radios and two identical soundcard devices attached to a Raspberry > Pi running Raspbian. The devices are discovered at boot time by the > hid-generic subsystem: > > (see dmesg output below) > > I am accessing the sound devices from Wine via the ALSA stack. The > problem I have is that > the product string is identical for both devices and they show up > identically to the Windows app ("USB PnP Sound Device"). I need to > find a way to alter this string so that they are different. If they > were processed by udev I might be able to do something there. Why do you need the string to be changed? And why can't you write a udev rule for this? > The options seem to be: > 1) fix at kernel usb discovery Not going to change :) > 2) somehow fix in the ALSA library (snd_*) > 3) fix in Wine (mmsys.drv / winealsa.drv/mmdevdrv.c > 4) somewhere else? Why not trigger off of the topology of the USB device? That's what tools do today for multiple devices of the same exact type, which is really common. All of that can be done in userspace, with a udev rule, or a script that is run when accessing a USB device by querying where in the USB physical tree it is located. > And, we need to do this in a supportable fashion that does not break > existing users of this subsystem. Userspace is the key, you have control over that, so why can't it detect this? thanks, greg k-h