Bonjour,
Dans le cadre d'un projet du traitement du signal j'aurais besoin d'une centaine de loopback alsa.
Cela fait plusieurs année que je travail avec ceci.
Actuellement lorsque l'on ajoute une carte son ou une loopback (carte son virtuelle), l'on spécifie également un ID. Cet index est limité à 32 maximum.
J'ai bien essayé de recompiler le noyaux en augmentant cet index mais cela ne semble pas fonctionner.
sudo add-apt-repository universe
ajouter: deb-src [url]http://archive.ubuntu.com/ubuntu[/url] bionic main universe dans /etc/apt/source.list
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y flex kernel-wedge build-essential fakeroot libncurses5-dev ccache kernel-package libncurses5-dev fakeroot wget bzip2
libssl-dev gawk libudev-dev ocl-icd-opencl-dev libpci-dev libelf-dev libusb-* dpkg-dev screen kernel-wedge git linux-headers-4.15.0-38-generic linux-headers-4.15.0-38-lowlatency git flex bison bc libssl-dev gawk libudev-dev ocl-icd-opencl-dev libpci-dev libelf-dev python2.7 libncurses-dev fakeroot kernel-wedge binfmt-support ksh lsscsi binfmt-support libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libsepol1-dev libattr1-dev libblkid-dev libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libselinux1-dev libsepol1-dev uuid-dev debugedit libarchive13 libdw1 liblua5.2-0 liblzo2-2 libnspr4 libnss3 librpm8 librpmbuild8 librpmio8 librpmsign8 rpm rpm-common rpm2cpio spl-dkms asciidoc default-jdk
cd /tmp
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-bionic.git
cd ubuntu-bionic
[b]#ceci me sert à augmenter les sample rates[/b]
sed -i 's/SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_192000,/SNDRV_PCM_RATE_CONTINUOUS,/g' ./sound/drivers/aloop.c
sed -i 's/192000/768000/g' ./sound/drivers/aloop.c
[b]
#ceci me permet normalement d'augmenter l'ID jusqu'à 256 cartes[/b]
grep -rnl './' -e "CONFIG_SND_MAX_CARDS=32" | xargs -i@ sed -i 's/CONFIG_SND_MAX_CARDS=32/CONFIG_SND_MAX_CARDS=256/g' @
fakeroot debian/rules clean
fakeroot debian/rules binary
=> avec le numéro du noyaux:
dpkg -i linux*4.15.0-88*.deb
Mais cela ne semble pas fonctionner, lorsque je déclare plus de 32 cartes.
sudo nano /etc/modprobe.d/alsa-base.conf
#j'ajoute :
options snd-aloop \
index=10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32 \
id=lp0,lp1,lp2,lp3,lp4,lp5,lp6,lp7,lp8,lp9,lp10,lp11,lp12,lp13,lp14,lp15,lp16,lp17,lp18,lp19,lp20,lp21,lp22 \
enable=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 \
pcm_substreams=2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 /
Quand je fais un aplay -L cela s’arrête à lp21.
Par contre lorsque je fais
ls /proc/asound/
card10
card11
card12
card13
card14
card15
card16
card17
card18
card19
card20
card21
card22
card23
card24
card25
card26
card27
card28
card29
card30
card31
card32
cards
devices
lp0->card10
lp1->card11
lp10->card20
lp11->card21
lp12->card22
lp13->card23
lp14->card24
lp15->card25
lp16->card26
lp17->card27
lp18->card28
lp19->card29
lp2->card12
lp20->card30
lp21->card31
lp22->card32
lp3->card13
lp4->card14
lp5->card15
lp6->card16
lp7->card17
lp8->card18
lp9->card19
modules
oss
pcm
seq
timers
version
Donc je retrouve bien ma carte son avec ID à 32.
Lorsque je fait :
$ speaker-test -D hw:lp21,1
speaker-test 1.1.3
Playback device is hw:lp21,1
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 32 to 1048576
Period size range from 32 to 524288
Using max buffer size 1048576
Periods = 4
was set period_size = 262144
was set buffer_size = 1048576
0 - Front Left
^CTime per period = 0,878061
Mais quand j’essaie sur la 32ème:
$ speaker-test -D hw:lp22,0
speaker-test 1.1.3
Playback device is hw:lp22,0
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
ALSA lib pcm_hw.c:1713:(_snd_pcm_hw_open) Invalid value for card
Playback open error: -19,No such device
Quelqu'un peut-il me dire où cela bloque?
(pareil avec alsacap il me retourne que jusqu'à la 21)
En vous remerciant par avance.