I have been trying to replace an overwhelmed raspberry pi with a Udoo to run a home audio system. The Pi is able to use 8 usb sound cards corresponding to 8 rooms, but is quickly overwhelmed. Plugging the Udoo into the same hubs, Pulseaudio was only able to recognize 6 of the 8 cards despite all 8 of them being listed when running `lsusb` I have now taken the Udoo and have it connected to a different hub with 5 sound cards on it. Here's what ALSA sees (aplay -l): Code: card 0: vt1613audio [vt1613-audio], device 0: HiFi vt1613-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: imxhdmisoc [imx-hdmi-soc], device 0: IMX HDMI TX mxc-hdmi-soc-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: Device [Generic USB Audio Device], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 card 3: Device_1 [USB PnP Sound Device], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 card 4: Device_2 [USB PnP Sound Device], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 card 5: Device_3 [USB PnP Sound Device], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 card 6: Device_4 [USB PnP Sound Device], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 and here's what Pulseaudio autodetects (pactl list sinks): Code: Sink #0 State: SUSPENDED Name: alsa_output.usb-0d8c_Generic_USB_Audio_Device-00-Device.analog-stereo Description: Audio Adapter (Planet UP-100, Genius G-Talk) Analog Stereo Driver: module-alsa-card.c Sample Specification: s16le 2ch 48000Hz Channel Map: front-left,front-right Owner Module: 0 Mute: no Volume: 0: 46% 1: 46% 0: -20.25 dB 1: -20.25 dB balance 0.00 Base Volume: 100% 0.06 dB Monitor Source: alsa_output.usb-0d8c_Generic_USB_Audio_Device-00-Device.analog-stereo.monitor Latency: 0 usec, configured 0 usec Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY Properties: alsa.resolution_bits = "16" device.api = "alsa" device.class = "sound" alsa.class = "generic" alsa.subclass = "generic-mix" alsa.name = "USB Audio" alsa.id = "USB Audio" alsa.subdevice = "0" alsa.subdevice_name = "subdevice #0" alsa.device = "0" alsa.card = "2" alsa.card_name = "Generic USB Audio Device" alsa.long_card_name = "Generic USB Audio Device at usb-fsl-ehci.1-1.1, full speed" alsa.driver_name = "snd_usb_audio" device.bus_path = "platform-fsl-ehci.1-usb-0:1.1:1.0" sysfs.path = "/devices/platform/fsl-ehci.1/usb2/2-1/2-1.1/2-1.1:1.0/sound/card2" udev.id = "usb-0d8c_Generic_USB_Audio_Device-00-Device" device.bus = "usb" device.vendor.id = "0d8c" device.vendor.name = "C-Media Electronics, Inc." device.product.id = "000e" device.product.name = "Audio Adapter (Planet UP-100, Genius G-Talk)" device.serial = "0d8c_Generic_USB_Audio_Device" device.string = "front:2" device.buffering.buffer_size = "384000" device.buffering.fragment_size = "192000" device.access_mode = "mmap+timer" device.profile.name = "analog-stereo" device.profile.description = "Analog Stereo" device.description = "Audio Adapter (Planet UP-100, Genius G-Talk) Analog Stereo" alsa.mixer_name = "USB Mixer" alsa.components = "USB0d8c:000e" module-udev-detect.discovered = "1" device.icon_name = "audio-card-usb" Ports: analog-output-speaker: Speakers (priority: 10000) Active Port: analog-output-speaker Formats: pcm Sink #1 State: SUSPENDED Name: alsa_output.platform-soc-audio.analog-stereo Description: vt1613-audio Analog Stereo Driver: module-alsa-card.c Sample Specification: s16le 2ch 48000Hz Channel Map: front-left,front-right Owner Module: 5 Mute: no Volume: 0: 50% 1: 50% 0: -18.00 dB 1: -18.00 dB balance 0.00 Base Volume: 63% -12.00 dB Monitor Source: alsa_output.platform-soc-audio.analog-stereo.monitor Latency: 0 usec, configured 0 usec Flags: HARDWARE HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY Properties: alsa.resolution_bits = "16" device.api = "alsa" device.class = "sound" alsa.class = "generic" alsa.subclass = "generic-mix" alsa.name = "" alsa.id = "HiFi vt1613-0" alsa.subdevice = "0" alsa.subdevice_name = "subdevice #0" alsa.device = "0" alsa.card = "0" alsa.card_name = "vt1613-audio" alsa.long_card_name = "vt1613-audio" device.bus_path = "platform-soc-audio" sysfs.path = "/devices/platform/soc-audio/sound/card0" device.string = "hw:0" device.buffering.buffer_size = "65536" device.buffering.fragment_size = "16384" device.access_mode = "mmap+timer" device.profile.name = "analog-stereo" device.profile.description = "Analog Stereo" device.description = "vt1613-audio Analog Stereo" module-udev-detect.discovered = "1" device.icon_name = "audio-card" Ports: analog-output: Analog Output (priority: 9900) Active Port: analog-output Formats: pcm Where's the rest of them? Why do I only get 2 sinks this time? How can I get it to detect ALL 8 usb cards (I do not wish to use the built in audio, so I'd like to prevent it from loading, if possible. The Pi has a built-in limit of 8 ALSA devices, so pulse cannot detect more than 8. I think this is standard on all systems unless you recompile ALSA) Pulseaudio is running as a system daemon (system is headless). Here is the /etc/pulse/system.pa file I use on my Pi that I also tried to use on the Udoo. Works on the pi, does not work on udoo. Code: #!/usr/bin/pulseaudio -nF # # This file is part of PulseAudio. # # PulseAudio is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # PulseAudio is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with PulseAudio; if not, write to the Free Software Foundation, # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. # This startup script is used only if PulseAudio is started in system # mode. ### Automatically load driver modules depending on the hardware available .ifexists module-udev-detect.so load-module module-udev-detect .else ## Use the static hardware detection module (for systems that lack udev/hal support) load-module module-detect .endif ### Load several protocols .ifexists module-esound-protocol-unix.so load-module module-esound-protocol-unix .endif load-module module-native-protocol-unix ### Automatically restore the volume of streams and devices load-module module-stream-restore load-module module-device-restore load-module module-card-restore ### Automatically augment property information from .desktop files ### stored in /usr/share/application load-module module-augment-properties ### Automatically restore the default sink/source when changed by the user ### during runtime ### NOTE: This should be loaded as early as possible so that subsequent modules ### that look up the default sink/source get the right value load-module module-default-device-restore .ifexists module-dbus-protocol.so ### If you want to allow TCP connections, set access to "remote" or "local,remote". load-module module-dbus-protocol access=local,remote #load-module module-dbus-protocol .endif ### Automatically move streams to the default sink if the sink they are ### connected to dies, similar for sources load-module module-rescue-streams ### Make sure we always have a sink around, even if it is a null sink. load-module module-always-sink ### Automatically suspend sinks/sources that become idle for too long load-module module-suspend-on-idle ### Enable positioned event sounds load-module module-position-event-sounds ### Network access load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.1.0/24 auth-anonymous=1 load-module module-zeroconf-publish ### Modules to allow autoloading of filters (such as echo cancellation) ### on demand. module-filter-heuristics tries to determine what filters ### make sense, and module-filter-apply does the heavy-lifting of ### loading modules and rerouting streams. load-module module-filter-heuristics load-module module-filter-apply