Linuxサーバーでダミーのサウンドカードデバイスを作成する方法は?


20

サウンドカードのないサーバーで、サウンドカードを必要とするLinuxプログラムを実行したい。ダミーのサウンドカードを作成することは可能ですか?私はLinuxサウンドシステムの内部を全く知りません。私を正しい方向に向けてください。

私はこの例に従っています:http : //alsa.opensrc.org/.asoundrcですが、うまくいきませんでした。

PS:同様の質問がありますLinuxで仮想サウンドデバイスを作成する方法。しかし、これは、ユーザーが既に利用可能なサウンドカードのエイリアスを作成しているという文脈ではまったく異なります。


編集:
/ dev / ..にダミーデバイスを作成して、サウンドデバイスを必要とするアプリケーションがそれを見つけられるようにします。
アルザがどのように機能するのか、私はまったく知らない。だから、私は単に例に従った。/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-dummy; modprobe snd-pcm-oss; modprobe snd-mixer-oss; modprobe snd-seq-oss

  2. 適切な.asoundrcファイルがある(カバーされている)

  3. ドライバーの自動読み込みを構成します。これを追加/etc/modules.conf

    #OSS /空き部分-カード#1
    エイリアスsound-slot-0 snd-card-0
    エイリアスsound-service-0-0 snd-mixer-oss
    エイリアスsound-service-0-1 snd-seq-oss
    エイリアスsound-service -0-3 snd-pcm-oss
    エイリアスsound-service-0-8 snd-seq-oss
    エイリアスsound-service-0-12 snd-pcm-oss

実際には、かなり多くのことが関係しています。詳細な説明については、上記のWikiページをご覧になることをお勧めします。


質問。Linux、そしてalsa、OSSなどのサウンドカードをシミュレートするLinuxカーネルデバイスドライバーを作成することは可能ですか?Linuxデバイスを読んで、可能かどうかを自問しています。
deFreitas

シーケンサーのコアモジュールは、現在snd-seq-dummyと表示されているようです。
DBrown

11

Raspian(Debianの派生物)を実行しているRaspberry PiでDummy Soundデバイスを動作させようとすると、これにも問題がありました。Pi onにはオーディオ出力がありますが、入力はありません。出力(PJSIP)のみが必要な場合でも、両方を検索するアプリケーションを使用したいと思います。

しかし、上記の情報は私にとっては機能せず、WiKiページも機能しませんでした。ALSAメーリングリストのユーザーと話した後、彼らはWikIページの情報が古いことを提案しましたが、これを解決する方法についての指針を与えてくれました。

まず、以下を使用して 'snd-dummy'モジュールをロードするだけです。

sudo modprobe snd-dummy

ただし、デバイスは再起動後も存在しません。Piでは、このモジュールは「/ etc / modules」ファイルを介してロードできます。このファイルを編集してドライバーをロードすると、目的の結果が生成されます。

sudo nano /etc/modules

/ 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

したがって、最初にデフォルトのドライバーがロードされ、次にダミーのドライバーがロードされます。仕事完了!

がんばろう

クリス


@logoffは、Dockerコンテナでもrasberry piでも動作すると思いますか?
ザタスティン

@thataustinハードウェアへのアクセスをDockerコンテナに与える必要があると思います。Dockerを使用せずに最初に試してみてください。成功した場合は、Dockerで試してください。
ログオフ

0

入力デバイスが必要なので、RaspberryPiのLinphoneにも使用しますが、fake_buffer = 0 paramを追加する必要があります。そうしないと、ダミーキャプチャデバイスが大量のランダムノイズを取得し、それが奇妙になります...それが好きです:

sudo modprobe snd-dummy fake_buffer=0
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.