I have connected two identical USB DACs to my Raspberry Pi and everything seems to work well. Because these are identical, in ALSA (using aplay -lL) they are referred to as DAC and DAC_1. It seems that one is recognized by the OS (Raspbian) first, and then it finds the second DAC and assigns the device the "DAC_1" name.

For my application, I would need the order that these devices are registered and named by the OS to remain the same after each reboot. Is that behavior to be expected, or will the OS randomly recognize one before the other? I would keep both DACs plugged into the same USB ports each time (they would never be removed; its a permanent install).

Thanks for any info or resources on this you can give to me, or direct me to.

EDIT: Before diving into udev I thought I would see what would happen if I rebooted several times, keeping the same physical location (USB port) for each device, each time, e.g. I did not move them to different USB ports. After each reboot, the devices were registered in the same order. This looks encouraging, and I will continue to test this behavior through more reboot cycles. It looks like there is no race condition and peripherals are simply registered in the order of the logical port on which they are found.

  • They're quite pricey tools those DAC's, so perhaps there is a serial number baked into them? Don't know how to extract it though.
    – EDP
    Commented Jul 23, 2015 at 9:41

1 Answer 1


Not a complete solution, but I'd try an udev rule to assign device names based on the USB port where the device is plugged in. On askubuntu, there is a similar question about USB-to-serial converters.. Here is another similar question, with an answer suggesting to use DEVPATH in the udev rule.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.