Я пытаюсь записать аудио из приложения на сервере с FFmpeg. По-видимому, мне нужен петлевой драйвер Alsa для этого. Я считал, что это должно работать над Ubuntu 14.04:
modprobe snd-aloop
К сожалению, это не доступно на моем ядре:
modprobe: ФАТАЛЬНЫЙ: Модуль snd-aloop не найденный.
Действительно ли вот в чем разница между сервером и настольными дистрибутивами Ubuntu?
Как я мог установить этот драйвер?
Поиск с помощью Google приводит меня сюда: https://wiki.ubuntu.com/Audio/InstallingLinuxAlsaDriverModules
Та страница затем говорит, что я должен пойти сюда: https://wiki.ubuntu.com/Audio/UpgradingAlsa
Та страница разумно говорит для использования DKMS: https://wiki.ubuntu.com/Audio/UpgradingAlsa/DKMS
Однако инструкции DKMS только перечисляют драйверы Intel: https://code.launchpad.net / ~ ubuntu-audio-dev / + archive/ubuntu/alsa-daily / + пакеты
Я пропускаю что-то?
Ну, я мог попытаться загрузить его в Ubuntu 16.04 Desktop Edition (VirtualBox с отключенной звуковой картой). Как Вы видите, это установлено с linux-image-extra
пакет, который может быть Вами, уже не имеет.
~$ modinfo snd-aloop
filename: /lib/modules/4.4.0-42-generic/kernel/sound/drivers/snd-aloop.ko
license: GPL
description: A loopback soundcard
author: Jaroslav Kysela <perex@perex.cz>
srcversion: 0A4CE16C028DAB4BC8260D3
depends: snd-pcm,snd
intree: Y
vermagic: 4.4.0-42-generic 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)
~$ dpkg -S /lib/modules/4.4.0-42-generic/kernel/sound/drivers/snd-aloop.ko
linux-image-extra-4.4.0-42-generic: /lib/modules/4.4.0-42-generic/kernel/sound/drivers/snd-aloop.ko
~$ sudo modprobe snd-aloop
~$ alsa-info.sh --stdout
upload=true&script=true&cardinfo=
!!################################
!!ALSA Information Script v 0.4.64
!!################################
!!Script ran on: Thu Mar 23 10:28:23 UTC 2017
!!Linux Distribution
!!------------------
Ubuntu 16.04 LTS \n \l DISTRIB_ID=Ubuntu DISTRIB_DESCRIPTION="Ubuntu 16.04 LTS" NAME="Ubuntu" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 16.04 LTS" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" UBUNTU_CODENAME=xenial
!!DMI Information
!!---------------
Manufacturer: innotek GmbH
Product Name: VirtualBox
Product Version: 1.2
Firmware Version: VirtualBox
!!Kernel Information
!!------------------
Kernel release: 4.4.0-42-generic
Operating System: GNU/Linux
Architecture: x86_64
Processor: x86_64
SMP Enabled: Yes
!!ALSA Version
!!------------
Driver version: k4.4.0-42-generic
Library version: 1.1.0
Utilities version: 1.1.0
!!Loaded ALSA modules
!!-------------------
snd_aloop
!!Sound Servers on this system
!!----------------------------
Pulseaudio:
Installed - Yes (/usr/bin/pulseaudio)
Running - Yes
!!Soundcards recognised by ALSA
!!-----------------------------
0 [Loopback ]: Loopback - Loopback
Loopback 1
!!PCI Soundcards installed in the system
!!--------------------------------------
!!Advanced information - PCI Vendor/Device/Subsystem ID's
!!-------------------------------------------------------
!!Modprobe options (Sound related)
!!--------------------------------
snd_pcsp: index=-2
snd_usb_audio: index=-2
snd_atiixp_modem: index=-2
snd_intel8x0m: index=-2
snd_via82xx_modem: index=-2
snd_atiixp_modem: index=-2
snd_intel8x0m: index=-2
snd_via82xx_modem: index=-2
snd_usb_audio: index=-2
snd_usb_caiaq: index=-2
snd_usb_ua101: index=-2
snd_usb_us122l: index=-2
snd_usb_usx2y: index=-2
snd_cmipci: mpu_port=0x330 fm_port=0x388
snd_pcsp: index=-2
snd_usb_audio: index=-2
!!Loaded sound module options
!!---------------------------
!!Module: snd_aloop
enable : Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N
id : (null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)
index : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
pcm_notify : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
pcm_substreams : 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
!!ALSA Device nodes
!!-----------------
crw-rw----+ 1 root audio 116, 2 Mar 23 11:18 /dev/snd/controlC0
crw-rw----+ 1 root audio 116, 4 Mar 23 11:18 /dev/snd/pcmC0D0c
crw-rw----+ 1 root audio 116, 3 Mar 23 11:18 /dev/snd/pcmC0D0p
crw-rw----+ 1 root audio 116, 6 Mar 23 11:18 /dev/snd/pcmC0D1c
crw-rw----+ 1 root audio 116, 5 Mar 23 11:18 /dev/snd/pcmC0D1p
crw-rw----+ 1 root audio 116, 1 Mar 23 11:18 /dev/snd/seq
crw-rw----+ 1 root audio 116, 33 Mar 23 11:18 /dev/snd/timer
/dev/snd/by-path:
total 0
drwxr-xr-x 2 root root 60 Mar 23 11:18 .
drwxr-xr-x 3 root root 200 Mar 23 11:18 ..
lrwxrwxrwx 1 root root 12 Mar 23 11:18 platform-snd_aloop.0 -> ../controlC0
!!Aplay/Arecord output
!!--------------------
APLAY
**** List of PLAYBACK Hardware Devices ****
card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
ARECORD
**** List of CAPTURE Hardware Devices ****
card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
!!Amixer output
!!-------------
!!-------Mixer controls for card 0 [Loopback]
Card hw:0 'Loopback'/'Loopback 1'
Mixer name : 'Loopback Mixer'
Components : ''
Controls : 97
Simple ctrls : 1
Simple mixer control 'PCM',0
Capabilities: pvolume
Playback channels: Front Left - Front Right
Limits: Playback 0 - 255
Mono:
Front Left: Playback 255 [100%] [0.00dB]
Front Right: Playback 255 [100%] [0.00dB]
...
Для общего решения посмотрите на:
Просто проверенный новый Сервер Ubuntu 16.04.1. Это имеет snd-aloop
модуль. linux-image-extra*
пакет был установлен как зависимость linux-image-generic
пакет meta, который является также зависимостью linux-generic
пакет meta. Так быстрое исправление:
sudo apt install linux-generic
Вы способный выполнить это
alsactl restore -P
, Если не способный, может Вы пытаться установить
сервер Ubuntu: установите звук Alsa и MOC (Музыка На Консоли)
, Если не способный установить от APT, можно попытаться скомпилировать его из источника, соответственно здесь
, Если никакие другие не работают, я предлагаю читать это:
Если ls /lib/modules/$(uname -r)/kernel/sound/drivers
не содержит snd-aloop.ko
затем попробуйте следующую команду для установки дополнительных модулей:
$ sudo apt install linux-modules-extra-$(uname -r)
$ sudo reboot
Поскольку дистрибутив Linux облачного провайдера не имеет некоторых модулей по умолчанию, и его необходимо добавить в нашу систему, зависит от наших потребностей.
После перезагрузки попробуйте ту же команду ls, упомянутую выше, и вы увидите файл snd-aloop.ko
.