Linux sunucusunda kukla ses kartı aygıtı nasıl oluşturulur?


20

Ses kartı gerektiren Linux programını, ses kartı olmayan bir sunucuda çalıştırmak istiyorum. Sahte bir ses kartı oluşturmak mümkün mü? Tamamen Linux ses sistemi içindekilerinden habersizim. Lütfen beni doğru yöne çevirin.

Bu örneği takip ettim: http://alsa.opensrc.org/.asoundrc ama işe yaramadı.

Not: Benzer bir soru var: Linux'ta sanal bir ses cihazı nasıl oluşturulur? . Ancak bu, kullanıcının zaten mevcut ses kartına bir takma ad oluşturması bağlamında tamamen farklıdır.


Düzenleme:
/ dev / .. içinde sahte bir aygıt oluşturulmasını istiyorum, böylece ses aygıtı gerektiren herhangi bir uygulama onu bulacaktır.
Alsa'nın nasıl çalıştığını tamamen bilmiyorum. Bu yüzden sadece örneği takip ettim. /Etc/asound.conf dosyasını şurada oluşturdum:

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

Ve aplay -Lbana verir:

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

Evet, Alsa'da "sahte" ses cihazı gibi bir şey var. Ama sizin için tam olarak "neyin işe yaramadığını" açıklamalısınız. Hata mesajı, yazılım vb tarafından algılanmadı. Ayrıca, "linux programı" hedefi de ALSA kullanıyor mu? Olmazsa, ALSA yapılandırma dosyalarıyla uğraşmak size fazla bir şey vermez.
04

Sanal bir ses aygıtının / dev / ...
ssapkota'da

Daha fazlası için düzenlemeye bakın.
ssapkota

Yanıtlar:


14

Sahte bir ses sürücüsü yüklemeniz gerekir . Lütfen ayrıntılı bilgi için Alsa Wiki'ye bakın , ancak temel bilgiler:

  1. Sürücüyü yükleyin:

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

  2. Düzgün .asoundrc dosyanız var (kapatabilirsiniz)

  3. Sürücülerin otomatik yüklenmesini yapılandırın. Şunu ekle /etc/modules.conf:

    # OSS / Ücretsiz bölüm - kart # 1
    takma ad ses yuvası-0 snd kart-0
    takma ad ses servisi-0-0 snd-karıştırıcı-oss
    takma ad ses servisi-0-1 snd-seq-oss
    takma ad ses servisi -0-3 snd-pcm-oss
    diğer adı ses hizmeti-0-8 snd-seq-oss
    diğer adı ses hizmeti-0-12 snd-pcm-oss

Aslında epey bir şey var, daha ayrıntılı açıklama için yukarıdaki Wiki sayfasını ziyaret etmenizi öneriyorum.


Bir soru. Bir ses kartını Linux'a, ardından alsa, OSS, vb. Taklit eden bir Linux çekirdek aygıt sürücüsü oluşturmak mümkün mü? Linux cihazını okuyorum ve mümkün olup olmadığını kendime soruyorum.
deFreitas,

Sıralayıcı için çekirdek modül şimdi snd-seq-dummy olarak görünüyor.
DBrown

11

Ben de Raspian (Debian türevi) çalışan Raspberry Pi üzerinde çalışan bir Kukla Ses cihazı almaya çalışırken de bu konuda sorun yaşadım. Pi'nin ses çıkışı var ancak girişi yok ve yalnızca bir çıkışa (PJSIP) ihtiyacım olsa da, her ikisini de arayan bir uygulama kullanmak istiyorum.

Ancak, yukarıdaki bilgiler benim için işe yaramadı ve WiKi sayfa da. Bir kullanıcıyla ALSA posta listesinden konuştuktan sonra, WikI sayfasındaki bilgilerin güncel olmadığını söylediler, ancak bunun nasıl çözüleceğine dair bana ipuçları verdiler.

Öncelikle, yalnızca 'snd-dummy' modülünü aşağıdakileri kullanarak yüklemem gerekiyor:

sudo modprobe snd-dummy

Ancak, yeniden başlatma sonrasında cihaz hazır kalmıyor. Pi'de, bu modül '/ etc / module' dosyası üzerinden yüklenebilir, istenen dosyayı üretilen sürücüyü yüklemek için bu dosyayı düzenleyebilir:

sudo nano /etc/modules

Benim / etc / module dosyalarım şuna benzer:

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

Bu nedenle, varsayılan sürücü önce yüklenir, sonra Dummy sürücüsü ikinci yüklenir. İş bitmiş!

İyi şanslar

Chris


@logoff, ahududu pi'nin yanı sıra bir liman işçisi konteynerinde de çalışacağını düşünüyor musunuz?
thataustin

@thataustin Docker konteynerine donanıma erişim izni vermeniz gerektiğini düşünüyorum. İlk önce Docker olmadan denemenizi öneririm ve başarılı olursanız Docker ile deneyin.
logoff

0

RaspberryPi'deki Linphone için de kullanıyorum, çünkü bir giriş aygıtı gerektiriyordu, ancak fake_buffer = 0 param eklemek zorunda kaldım, aksi halde kukla yakalama aygıtı çok fazla rastgele gürültü kapardı ve bu garip olurdu ... o gibi:

sudo modprobe snd-dummy fake_buffer=0
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.