如何在 Linux 服务器中创建虚拟声卡设备?

ssa*_*ota 24 linux alsa ubuntu

我想在没有声卡的服务器上运行需要声卡的 Linux 程序。是否可以创建一个虚拟声卡?我完全不知道 Linux 声音系统的内部结构。请指出我正确的方向。

我遵循了这个例子:http : //alsa.opensrc.org/.asoundrc但它没有奏效。

PS:有类似的问题:如何在Linux中创建虚拟声音设备?. 但是这在用户为已经可用的声卡创建别名的上下文中是完全不同的。


编辑:
我想在 /dev/.. 中创建一个虚拟设备,以便任何需要声音设备的应用程序都能找到它。
我完全不知道 alsa 是如何工作的。所以我只是按照这个例子。我创建了 /etc/asound.conf :

pcm.card0 {
    type hw
    card 0
}
ctl.card0 {
    type hw
    card 0
}
Run Code Online (Sandbox Code Playgroud)

aplay -L给我:

null
    Discard all samples (playback) or generate zero samples (capture)
Run Code Online (Sandbox Code Playgroud)

hai*_*img 14

您需要加载一个虚拟声音驱动程序。有关详细信息,请参阅Alsa Wiki,但以下是基础知识:

  1. 加载驱动程序:

    modprobe snd-dummy ; modprobe snd-pcm-oss ; modprobe snd-mixer-oss ; modprobe snd-seq-oss

  2. 有合适的 .asoundrc 文件(你有它)

  3. 配置驱动程序的自动加载。将此添加到/etc/modules.conf

    # OSS/免费部分 - card #1
    alias sound-slot-0 snd-card-0
    alias sound-service-0-0 snd-mixer-oss
    alias sound-service-0-1 snd-seq-oss
    alias sound-service -0-3 snd-pcm-oss
    别名 sound-service-0-8 snd-seq-oss
    别名 sound-service-0-12 snd-pcm-oss

实际上涉及的东西很多,我建议您访问上面的 Wiki 页面以获得更详细的解释。


小智 11

在尝试让 Dummy Sound 设备在运行 Raspian(Debian 的衍生版本)的 Raspberry Pi 上工作时,我也遇到了这个问题。Pi on 有一个音频输出但没有输入,我想使用一个寻找两者的应用程序,即使我只需要一个输出 (PJSIP)。

但是,上面的信息对我不起作用,WiKi 页面也没有。在与 ALSA 邮件列表的用户交谈后,他们建议 WikI 页面上的信息已过时,但是,他们给了我有关如何解决此问题的指示。

首先,我只需要使用以下命令加载“snd-dummy”模块:

sudo modprobe snd-dummy
Run Code Online (Sandbox Code Playgroud)

但是,设备在重新启动后不会保持存在。在 Pi 上,可以通过“/etc/modules”文件加载此模块,编辑此文件以加载驱动程序,产生所需的结果:

sudo nano /etc/modules
Run Code Online (Sandbox Code Playgroud)

我的 /etc/modules 文件看起来像这样:

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

snd-bcm2835
snd-dummy
Run Code Online (Sandbox Code Playgroud)

因此,首先加载默认驱动程序,然后加载虚拟驱动程序。任务完成!

祝你好运

克里斯