audio - modprobe : ERROR: could not insert 'snd_aloop' : No such device

标签 audio kernel-module alsa gentoo jack

我试图在 gentoo 上建立一个 Jack-ALSA 桥,但我无法加载 snd_aloop 模块。

核心:

$ uname -a
Linux MalfattiTux 4.6.7-rt-rt11 #1 SMP Thu Sep 22 14:54:42 BRT 2016 x86_64 Intel(R) Core(TM) i7-4710HQ CPU @ 2.50GHz GenuineIntel GNU/Linux

snd_aloop 编译为模块:
$ cat /usr/src/linux-4.6.7-rt11/.config | grep ALOOP
CONFIG_SND_ALOOP=m

snd_aloop 信息:
$ sudo modinfo snd_aloop
filename:       /lib/modules/4.6.7-rt-rt11/kernel/sound/drivers/snd-aloop.ko
license:        GPL
description:    A loopback soundcard
author:         Jaroslav Kysela <perex@perex.cz>
depends:        snd-pcm
intree:         Y
vermagic:       4.6.7-rt-rt11 SMP mod_unload modversions 
parm:           index:Index value for loopback soundcard. (array of int)
parm:           id:ID string for loopback soundcard. (array of charp)
parm:           enable:Enable this loopback soundcard. (array of bool)
parm:           pcm_substreams:PCM substreams # (1-8) for loopback driver. (array of int)
parm:           pcm_notify:Break capture when PCM format/rate/channels changes. (array of int)

snd_aloop 模块的设置:
$ cat /etc/modprobe.d/alsa.conf | grep aloop
options snd-aloop id=Loopback index=0 pcm_substreams=2 enable=1
alias snd-card-0 snd-aloop

音频设备:
$ sudo lspci | grep -i audio
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)

$ sudo lspci -k -s 00:03.0
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
    Subsystem: Lenovo Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller
    Kernel driver in use: snd_hda_intel
    Kernel modules: snd_hda_intel

$ sudo lspci -k -s 00:1b.0
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)
    Subsystem: Lenovo 8 Series/C220 Series Chipset High Definition Audio Controller
    Kernel driver in use: snd_hda_intel
    Kernel modules: snd_hda_intel

一切看起来都很好。但是之后:
$ sudo modprobe snd_aloop
modprobe: ERROR: could not insert 'snd_aloop': No such device

我还尝试不将其编译为模块,而是包含在内核中。然后,我有环回设备,但我无法控制它们(例如,子流的数量)。

这个模块在gentoo上工作是否需要任何特定的设置?

谢谢 :)

最佳答案

index声音驱动程序的选项指定它应该使用的卡号。
但是,如果另一个驱动程序已在同一索引处加载,则此方法不起作用。

所以你必须设置匹配index使用的所有驱动程序上的选项(并且将来可能会使用,例如 USB 音频)。

一个更好的主意是删除所有 index选项,并使用 slots snd 的选项模块来指定只有特定的驱动程序可以使用特定的索引:

options snd slots=snd-aloop,snd-hda-intel,snd-hda-intel

或者如果环回驱动程序不应该是第一个(默认)驱动程序:
options snd slots=snd-hda-intel,snd-hda-intel,snd-aloop

关于audio - modprobe : ERROR: could not insert 'snd_aloop' : No such device,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39670007/

相关文章:

python - 如何使用 pyglet 播放流式音频?

java - 可以创建 Sound libgdx 的多个实例吗

c# - 用于合并音频和视频的 FFmpeg 命令不起作用 - C#

c - Slab缓存分配没有预定义函数的结构堆栈

linux - alsa,snd_pcm_drain(handle),流没有播放到最后

audio - 加入mp3文件以形成流

linux - 如何在 Gentoo Linux 中自动加载内核模块?

c - 如何从内核空间向数据包附加数据?

linux - PortAudio不可靠: Expression '…' failed

c++ - ALSA 捕获丢失的帧