The question you ask is basically: can there be more than 32 sound cards in a system controlled by ALSA? Obviously, although your USB controllers know all the sound cards you plugged in, the ALSA system does not.
Go to kernel sources to check what happens here. /sound/core/sound.c more information on maximizing sound cards:
39 static int cards_limit = 1; 40 41 MODULE_AUTHOR("Jaroslav Kysela < perex@perex.cz >"); 42 MODULE_DESCRIPTION("Advanced Linux Sound Architecture driver for soundcards."); 43 MODULE_LICENSE("GPL"); 44 module_param(major, int, 0444); 45 MODULE_PARM_DESC(major, "Major # for sound driver."); 46 module_param(cards_limit, int, 0444); 47 MODULE_PARM_DESC(cards_limit, "Count of auto-loadable soundcards."); 48 MODULE_ALIAS_CHARDEV_MAJOR(CONFIG_SND_MAJOR); 49 50 54 int snd_ecards_limit; 55 EXPORT_SYMBOL(snd_ecards_limit);
From the code and its comments, I read two things:
The variable card_limit is a module parameter. I assume that setting this parameter is set to 32. If ALSA support is built into the kernel, you can create your own kernel in which you change this setting. If ALSA support is not built-in but loaded as a module, you can set this parameter during module loading. To do this, you either change the system configuration ( man modprobe.d ) or unload the module, then reboot it using the ( man modprobe ) option.
The described limit limits the number of automatically loaded sound cards. To overcome this limit, you may need to manually download the module that is responsible for your sound cards. There are no restrictions in the kernel for adding sound cards manually.
Source: Kernel 2.8 Git
source share