I have 9 identical soundcards connected via USB to a PC running various audio rendering servers.

Each card is loaded in /etc/pulse/default.pa by disabling module-udev-dectect and manually loading module-alsa-card with device_id=[0-8] and card_name=various descriptive names e.g. sink_a.

These audio rendering servers need to connect to pulse sinks with the name corresponding to the function they provide (e.g. server_a needs to connect to sink_a, not sink_b,c,d...etc. so that audio is routed played on card_a to room_a)

The problem is that the cards change their device_id every boot, so if sink_a was device_id=0 on one boot, it might be device_id=1 on the next, causing playback through the wrong physical card.

What can I do to ensure that cards loaded with descriptive names in default.pa remain the same physical device on EVERY boot?

  • No idea, but it sounds like something that would be handled by udev rules - something I am just starting to look into. – Joe Sep 20 '14 at 3:35
  • The pactl and pacmd command line tools may help as well. I discovered these very recently and still don't know much about them. – Joe Sep 20 '14 at 4:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.