Як створити фіктивний пристрій звукової карти на сервері Linux?


20

Я хочу запустити програму 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
}

І aplay -Lдає мені:

null
    Discard all samples (playback) or generate zero samples (capture)

Так, в Alsa є таке поняття, як «фіктивний» звуковий пристрій. Але вам потрібно детальніше розповісти про те, що саме "не вийшло" для вас. Повідомлення про помилку, не виявлене програмним забезпеченням тощо. Також цільова "програма Linux" взагалі використовує ALSA? Тому що, якщо цього не відбувається, возитися з конфігураційними файлами ALSA не дасть вам багато чого.
haimg

Я хочу створити віртуальний звуковий пристрій в / dev / ...
ssapkota

Додаткову інформацію див. У редакції.
ssapkota

Відповіді:


14

Вам потрібно завантажити драматичний звуковий драйвер. Будь ласка, дивіться Alsa Wiki для детальної інформації, але ось основні відомості:

  1. Завантажте драйвер:

    modprobe snd-манекен; modprobe snd-pcm-oss; modprobe snd-mixer-oss; modprobe snd-seq-oss

  2. Мати належний файл .asoundrc (у вас він охоплений)

  3. Налаштування автозавантаження драйверів. Додайте це до /etc/modules.conf:

    # OSS / Безкоштовна частина - картка №1
    псевдонім звуковий слот-0 snd-карта-0
    псевдонім звукова служба-0-0 snd-змішувач-oss
    псевдонім sound-service-0-1 snd-seq-oss
    псевдонім звуковий сервіс -0-3 snd-pcm-oss
    псевдонім звук-сервіс-0-8 snd-seq-oss
    псевдонім звуковий сервіс-0-12 snd-pcm-oss

Насправді є дуже багато речей, я пропоную вам відвідати сторінку Вікі вище для більш детального пояснення.


Питання. Чи можливо створити драйвер пристрою ядра Linux, який імітує звукову карту для Linux, а потім alsa, OSS тощо? Я читаю пристрій Linux і запитую себе, чи це можливо.
deFreitas

Основний модуль для секвенсора, схоже, зараз відображається як snd-seq-фіктивний файл.
DBrown

11

У мене теж були проблеми з цим при спробі отримати пристрій Dummy Sound, що працює на Raspberry Pi, що працює під управлінням Raspian (похідна від Debian). У Pi on є аудіо вихід, але немає входу, і я хочу використовувати додаток, який шукає і те, і інше, хоча мені потрібен лише вихід (PJSIP).

Однак інформація, наведена вище, не працювала для мене, а також сторінка WiKi. Після розмови з користувачем із списку розсилки ALSA вони запропонували, щоб інформація на сторінці WikI застаріла, однак вони дали мені вказівки, як це вирішити.

По-перше, мені потрібно лише завантажити модуль 'snd-dummy', використовуючи:

sudo modprobe snd-dummy

Однак пристрій не залишається присутним після перезавантаження. У Pi цей модуль можна завантажувати через файл '/ etc / module', редагуючи цей файл, щоб завантажити драйвер, що дав потрібні результати:

sudo nano /etc/modules

Мій файл / etc / module просто виглядає так:

# /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

Отже, драйвер за замовчуванням завантажується спочатку, потім драйвер Dummy завантажує другий. Робота виконана!

Щасти

Кріс


@logoff, ти думаєш, буде працювати в докер-контейнері так само, як і в rasberry pi?
thataustin

@thataustin Я думаю, вам потрібно надати доступ до обладнання до контейнера Docker. Я пропоную спробувати спершу без Докера, а якщо вам це вдасться, спробуйте з Docker.
вихід з системи

0

Я також використовую його для Linphone на RaspberryPi, оскільки він вимагає пристрою введення, однак мені довелося додати fake_buffer = 0 парам, інакше пристрій фіктивного захоплення захопить багато випадкового шуму, і це було б дивно ... ви можете зробити це як:

sudo modprobe snd-dummy fake_buffer=0
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.