如何在 GCP 提供的公共 Debian 10(buster)映像上添加“snd-aloop”内核模块?

如何在 GCP 提供的公共 Debian 10(buster)映像上添加“snd-aloop”内核模块?

背景

snd-aloop我正在尝试在运行 GCP 提供的公共 Debian 10(buster)映像的 Compute Engine 实例上启用模块。

输出uname -a

Linux *** 4.19.0-18-cloud-amd64 #1 SMP Debian 4.19.208-1 (2021-09-29) x86_64 GNU/Linux

问题

我尝试通过运行来安装此模块modprobe snd-aloop。但是我收到以下错误:

modprobe: FATAL: Module snd-aloop not found in directory /lib/modules/4.19.0-18-cloud-amd64

看起来该模块不存在。

因此我尝试寻找合适的软件包。在此之前,我通过运行来更新软件包存储库sudo apt-get update。我尝试安装的软件包:

  • linux-modules-extra-gcp
  • linux-image-generic
  • linux-modules-extra-$(uname -r)

不幸的是,这些包都找不到。

而且我在互联网上找不到任何解决此问题的相关资源。

问题

  • 如何snd-aloop在 Debian 10(buster)上添加内核模块?
  • 是否有包含此模块的包?

如果可能的话,我希望避免从源代码构建和安装此模块。如果没有其他方法,我将尝试此作为最后的选择。

答案1

默认情况下,GCP 提供的 Debian 10 映像不支持声音; 当您运行find /lib/modules/$(uname -r) -type f -name '*.ko' | grep snd列出所有可加载模块时,根本没有声音模块。

此外,当您安装alsa-utils并运行它时,您将看到:

wb@deb10:~$ sudo alsactl init
alsactl: init:1757: No soundcards found...

我尝试寻找解决方案,但两个小时后我放弃了,转而寻找一种变通方法。

如果你对 Ubuntu 18.04 LTS 满意 - 那么你很幸运 - 这个模块就在那里:

wb@ubuntu18:~$ modinfo snd-aloop
filename:       /lib/modules/5.4.0-1063-gcp/kernel/sound/drivers/snd-aloop.ko
license:        GPL
description:    A loopback soundcard
author:         Jaroslav Kysela <[email protected]>
srcversion:     9401A0B894527BA1238B364
depends:        snd-pcm,snd
retpoline:      Y
intree:         Y
name:           snd_aloop
vermagic:       5.4.0-1063-gcp SMP mod_unload modversions 
signat:         PKCS#7
signer:         
sig_key:        
sig_hashalgo:   md4
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)

然后modprobe snd-aloop我们可以看到它和所有依赖项一起加载:

wb@ubuntu18:~$ lsmod | grep snd
Module                  Size  Used by
snd_aloop              24576  0
snd_pcm               102400  1 snd_aloop
snd_timer              36864  1 snd_pcm
snd                    86016  3 snd_timer,snd_aloop,snd_pcm
soundcore              16384  1 snd

如果我跑

wb@ubuntu18:~$ sudo alsactl init
Found hardware: "Loopback" "Loopback Mixer" "" "" ""
Hardware is initialized using a generic method

我们可以看到存在一些音频“硬件”。

有问题的模块在 Centos8 中也是“开箱即用的”。

另一方面,它缺失了:

  • Debian 10
  • Debian 11
  • Ubuntu > 20

相关内容