snd-aloop driver must be built inside the kernel, not as a module
Activity
Walt Miner August 16, 2018 at 7:52 PM
Close for FF RC3
Jan-Simon Moeller July 17, 2018 at 2:09 PM
@Thierry Bultel : did you at least try the modules.load.d option loads it early enough ?
Thierry Bultel July 17, 2018 at 12:59 PM
Hi Geogios
given that:
1) the default number of subdevices is 8 (which is far enough for the needs in a car)
2) the snd-aloop driver is the vanilla one, we are not modifying it at all, so this is something we are not likely to debug
I can't see the need to unload it at any time. Having it built-in makes us save time for integration and testing. That would be a bad idea to change that now, but maybe something that we could do later in the future, if needed.
Cheers
Thierry
Stephane Desneux July 17, 2018 at 12:47 PM
Due to how alsa devices and sound drivers work, one issue we currently have is the automatic detection of sound cards in hal manager. As the current detection algorithm is based on the presence of audio devices in /dev/snd/by-/ with known names, changing the load order of various modules could lead to bad detections and errors that could be difficult to reproduce.
So in principle, yes, that could be a module but ATM it's just a bad idea because it makes things more difficult in the current integration phase for FF.
George Kiagiadakis July 17, 2018 at 12:15 PM
I don't see a reason to make it built-in as well. It can make things more complex for debugging when you want to unload it, or load another instance of it. Apart from being in /etc/modules-load.d, 4a-smixer could also attempt to load it if necessary.
When 4A is enabled, the softmixer binding depends on snd-aloop. This driver must be always present and inserted at the same place in the soundcards list. So having it builtin in the kernel is mandatory.
Currently on FF.rc2, the configuration doesn't seem homogeneous:
Correct setup on M3:
m3ulcb:~# zcat /proc/config.gz | grep -i ALOOP CONFIG_SND_ALOOP=y
Bad setup on Qemu:
qemux86-64:~# zcat /proc/config.gz | grep -i ALOOP CONFIG_SND_ALOOP=m
All machine builds should be checked (the script ikconfig located in the kernel tree may help to check the option on a non-running kernel binary)