Hello.<br><br>I&#39;m having problems loading two identical sound-cards in my computer. I&#39;m using Ubuntu 9.10 and PulseAudio 0.9.19 coming with this release.<br><br>I have tried looking at the logs, and when using loglevel 4 I find these lines:<br>
<a href="mailto:pulseaudio-discuss@mail.0pointer.de"></a><br>(first card - failing scenario):<br>Aug  9 22:53:08 ivar-laptop pulseaudio[2573]: module.c: Loaded &quot;module-alsa-card&quot; (index: #24; argument: &quot;device_id=&quot;1&quot; name=&quot;usb-BeAutiful_Qing_Audioengine_AW1-00&quot; card_name=&quot;alsa_card.usb-BeAutiful_Qing_Audioengine_AW1-00&quot; tsched=yes ignore_dB=no card_properties=&quot;module-udev-detect.discovered=1&quot;&quot;).<br>
<br>(second card - failing scenario):<br>Aug  9 22:58:32 ivar-laptop pulseaudio[2573]: module.c: Failed to load  module &quot;module-alsa-card&quot; (argument: &quot;device_id=&quot;2&quot; name=&quot;usb-BeAutiful_Qing_Audioengine_AW1-00&quot; card_name=&quot;alsa_card.usb-BeAutiful_Qing_Audioengine_AW1-00&quot; tsched=yes ignore_dB=no card_properties=&quot;module-udev-detect.discovered=1&quot;&quot;): initialization failed.<br>
<br><br>I downloaded the source-code using &#39;apt-get source pulseaudio&#39; and was looking around a bit. What I found was that the pa__init() function in modules/alsa/module-alsa-card.c called a function pa_card_new() located in pulsecore/card.c which returned a null-pointer. This function again called pa_namereg_register() in pulsecore/namereg.c which returned NULL because it could find the card-name in the hashmap and the fail argument was set to TRUE. As a simple test, I changed the fail argument to FALSE, and the second module loaded as well:<br>
<br>(first card - working scenario):<br>Aug 21 18:10:03 ivar-laptop pulseaudio[3835]: module.c: Loaded &quot;module-alsa-card&quot; (index: #18; argument: &quot;device_id=&quot;2&quot; name=&quot;usb-BeAutiful_Qing_Audioengine_AW1-00&quot; card_name=&quot;alsa_card.usb-BeAutiful_Qing_Audioengine_AW1-00&quot; tsched=yes ignore_dB=no card_properties=&quot;module-udev-detect.discovered=1&quot;&quot;).<br>
<br>(second card - working scenario):<br>Aug 21 18:12:37 ivar-laptop pulseaudio[3835]: module.c: Loaded &quot;module-alsa-card&quot; (index: #19; argument: &quot;device_id=&quot;3&quot; name=&quot;usb-BeAutiful_Qing_Audioengine_AW1-00&quot; card_name=&quot;alsa_card.usb-BeAutiful_Qing_Audioengine_AW1-00&quot; tsched=yes ignore_dB=no card_properties=&quot;module-udev-detect.discovered=1&quot;&quot;).<br>
<br><br>Having this flag set to TRUE basically disables the functionality further down in the pa_namereg_register() which tries to add a &quot;.%u&quot; to the card-name, where %u starts at 2 and gives up at 99. Trying to figure out where this flag was set, I found that it had been set by a function set_card_name() called further up in pa__init(). If the module being loaded has the argument &quot;card_name&quot; or &quot;name&quot;, then data-&gt;namereg_fail is set to TRUE. Looking at the arguments given in the logfile, it actually provides both of these arguments, also at load-time:<br>
<br>(second card - failing scenario):<br>Aug  9 22:58:32 ivar-laptop pulseaudio[2573]: module-udev-detect.c: Loading module-alsa-card with arguments &#39;device_id=&quot;2&quot; name=&quot;usb-BeAutiful_Qing_Audioengine_AW1-00&quot; card_name=&quot;alsa_card.usb-BeAutiful_Qing_Audioengine_AW1-00&quot; tsched=yes ignore_dB=no card_properties=&quot;module-udev-detect.discovered=1&quot;&#39;<br>
<br><br>So my questions are:<br>Is there a way to load both these cards without modifying the source?<br>Can I configure something to make this work?<br>What is the reasoning behind setting this flag at all?<br>Which side-effect will I experience by simply ignoring this flag, and trying to add a &quot;.%u&quot; to the card-name anyway?<br>
<br>Thanks for any help provided.<br><br><br>Kind Regards,<br>Ivar Mossin<br>