Bagaimana cara membuat perangkat kartu suara dummy di server Linux?


20

Saya ingin menjalankan program Linux yang memerlukan kartu suara, di server, yang tidak memiliki kartu suara. Apakah mungkin membuat kartu suara dummy? Saya sama sekali tidak mengetahui internal sistem suara Linux. Tolong tunjukkan saya ke arah yang benar.

Saya telah mengikuti contoh ini: http://alsa.opensrc.org/.asoundrc tetapi tidak berhasil.

PS: Ada pertanyaan serupa: Bagaimana cara membuat perangkat suara virtual di Linux? . Tapi ini sangat berbeda dalam konteks bahwa pengguna membuat alias untuk kartu suara yang sudah tersedia.


Sunting:
Saya ingin perangkat dummy dibuat di / dev / .. sehingga aplikasi apa pun yang memerlukan perangkat suara akan menemukannya.
Saya sama sekali tidak sadar, bagaimana alsa bekerja. Jadi saya hanya mengikuti contohnya. Saya membuat /etc/asound.conf dengan:

pcm.card0 {
    type hw
    card 0
}
ctl.card0 {
    type hw
    card 0
}

Dan aplay -Lmemberi saya:

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

Ya, ada yang namanya perangkat suara "dummy" di Alsa. Tetapi Anda perlu menjelaskan tentang apa yang sebenarnya "tidak berhasil" untuk Anda. Pesan kesalahan, tidak terdeteksi oleh perangkat lunak, dll. Juga, apakah target "program linux" menggunakan ALSA sama sekali? Karena jika tidak, mengacaukan file konfigurasi ALSA tidak akan memberi Anda banyak.
haimg

Saya ingin perangkat suara virtual dibuat di / dev / ...
ssapkota

Lihat hasil edit untuk lebih lanjut.
ssapkota

Jawaban:


14

Anda perlu memuat driver suara tiruan . Silakan lihat Alsa Wiki untuk info terperinci, tetapi inilah dasar-dasarnya:

  1. Muat driver:

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

  2. Memiliki file .asoundrc yang tepat (Anda telah membahasnya)

  3. Konfigurasikan autoloading driver. Tambahkan ini ke /etc/modules.conf:

    # OSS / Gratis porsi - kartu # 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
    alias sound-service-0-8 snd-seq-oss
    alias sound-service-0-12 snd-pcm-oss

Sebenarnya ada beberapa hal yang terlibat, saya sarankan Anda mengunjungi halaman Wiki di atas untuk penjelasan lebih rinci.


Pertanyaan. Apakah mungkin untuk membuat driver perangkat kernel Linux yang mensimulasikan kartu suara ke Linux kemudian alsa, OSS, dll? Saya membaca perangkat Linux dan bertanya pada diri sendiri apakah itu mungkin.
deFreitas

Modul inti untuk sequencer tampaknya tampil sebagai snd-seq-dummy sekarang.
DBrown

11

Saya juga punya masalah dengan ini ketika mencoba untuk membuat perangkat Dummy Sound bekerja pada Raspberry Pi menjalankan Raspian (turunan dari Debian). Pi on memiliki output audio tetapi tidak ada input, dan saya ingin menggunakan aplikasi yang mencari keduanya, meskipun saya hanya membutuhkan output (PJSIP).

Namun, info di atas tidak bekerja untuk saya dan begitu pula halaman WiKi. Setelah berbicara dengan pengguna dari mailing list ALSA, mereka menyarankan bahwa info di halaman WikI sudah ketinggalan zaman, namun, mereka memberi saya petunjuk bagaimana menyelesaikannya.

Pertama, saya hanya perlu memuat modul 'snd-dummy' menggunakan:

sudo modprobe snd-dummy

Namun, perangkat tidak tetap ada setelah reboot. Pada Pi, modul ini dapat dimuat melalui file '/ etc / modules', mengedit file ini untuk memuat driver yang menghasilkan hasil yang diinginkan:

sudo nano /etc/modules

File / etc / modules saya terlihat seperti ini:

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

Jadi, driver default dimuat terlebih dahulu, kemudian driver Dummy memuat kedua. Pekerjaan selesai!

Semoga berhasil

Chris


@logoff menurut Anda akan bekerja di wadah buruh pelabuhan serta pada rasberry pi?
thataustin

@ thustaustin Saya kira Anda perlu memberikan akses ke perangkat keras ke wadah Docker. Saya sarankan coba dulu tanpa Docker, dan jika Anda berhasil, coba dengan Docker.
logoff

0

Saya juga menggunakannya untuk Linphone di RaspberryPi, karena membutuhkan perangkat input, namun saya harus menambahkan fake_buffer = 0 param, jika tidak perangkat penangkap tiruan akan mengambil banyak suara acak, dan itu akan aneh ... Anda dapat melakukannya itu seperti:

sudo modprobe snd-dummy fake_buffer=0
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.