“Hw: 0,0” gibi ALSA cihazları ne anlama geliyor? Hangisini kullanacağımı nasıl bulurum?


63

Tekrar tekrar aradım ve "hw: 0,0" ifadesinin ne anlama geldiğine dair hiçbir açıklama bulamadım. USB ses kartımın sayısını nasıl belirlerim? MPD benden böyle bir şey girmemi istiyor:

audio_output {
        type                    "alsa"
        name                    "Sound Card"
        device                  "hw:0,0"     # optional
        format                  "44100:16:2" # optional
}

Eğer "alsamixer -c 1" yaparsam, USB kartının ses kontrolünü açar, ancak bu gerçekten bana yardımcı olmuyor.

Sistemimdeki cihaz adlarının / numaralarının listesini nerede bulabilirim? Donanım değişikliklerine karşı dayanıklılar mı? Kart 2'yi çıkarırsam, kart 3 kart 2 olur mu? Cihazları tanımlamanın başka yolları var mı? Bunlardan herhangi birinin belgelerini nerede bulabilirim?


Peki ne işe yaradı?
quack quixote

PulseAudio'ya geçmek bir çeşit işe yaradı. :) Ancak yerel olarak oturum açmam ve ses yönlendirmesini değiştirmem gerekti. Sonra MPD'nin berbat olduğuna karar verdim.
Endolith

Aslında "hw: 1,0" muhtemelen işe yaradı, ancak cihazın kullanımda olduğunu söyledi (Pulse?) Diğer yöntemi denemedim, ama umarım bu diğerlerine yardımcı olacaktır.
Endolith

Yanıtlar:


48

JohnT'un cevabı iyi bir temel verir. Sisteminizdeki cihazları nasıl bulacağınızı izleyeceğim. Sisteminizdeki cihazların bir listesini görmek için "aplay -l" kullanın. Hw: X, Y donanımınız bu haritalama geliyor - bu durumda, X kart numarası, Y ise, cihaz sayısı.

$ aplay -l   # note lower-case "L" option
**** List of PLAYBACK Hardware Devices ****
card 0: T71Space [Terratec Aureon 7.1-Space], device 0: ICE1724 [ICE1724]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: T71Space [Terratec Aureon 7.1-Space], device 1: IEC1724 IEC958 [IEC1724 IEC958]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: T71Space [Terratec Aureon 7.1-Space], device 2: ICE1724 Surrounds [ICE1724 Surround PCM]
  Subdevices: 3/3
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2

Bunlar, her takıldıklarında daima aynı cihaz numaralarını elde etmeyebilecek USB cihazları oldukları için, hw: X, Y cihazı değişebilir. En basit cevap, bir masaüstü sistemi için GNOME / KDE / Xfce konfigürasyon araçlarını denemek ve değişiklikleri alacak kadar akıllı olup olmadıklarına bakmaktır.

Karmaşık bir şekilde, bunu bir masaüstü sistemiyle yapmıyorsanız, ilginçleşir. Sen ile kurtulmak mümkün olabilir kullanılarak cihaz takma adları yerine "hw: X, Y" - bu ne "aplay L" gösterileri çıktı. "Bir şey: CARD = FOO, DEV = Y" öğesi takma addır ve muhtemelen "hw: X, Y" deki X'in farklı aygıt eklentileri arasında değişmeyecektir. (Her seferinde aynı USB donanım kilidini kullandığınızı varsayalım.)

$ aplay -L
default:CARD=CK804
    NVidia CK804, NVidia CK804
    Default Audio Device
front:CARD=CK804,DEV=0                 # hw:0,0
    NVidia CK804, NVidia CK804
    Front speakers
surround40:CARD=CK804,DEV=0            # hw:0,1
    NVidia CK804, NVidia CK804
    4.0 Surround output to Front and Rear speakers

Böylece aplay komutunuz "aplay -D front: CARD = CK804, DEV = 0 somefile.wav" olur ve aynı cihaz adını .asoundrc içinde kullanabilirsiniz.


Daha düşük bir seviyede daha kararlı bir şeye ihtiyacınız olursa, gerçek çekirdek cihazları, udev istediğiniz şeydir - sisteme cihazların çalışırken takılmasını sağlayan sistemdir. Sen edebilirsiniz udev kuralları yazmasına (ve burada adam sayfası ) takılı iken cihazlar aynı aygit ad almak için izin verecektir.


3
Aha! Bana söylendiği aplay -Lgibi aynı çıktıyı sağlamıyor aplay -l. sigh
endolith

1
Bunu nasıl söyleyebilir surround40:CARD=CK804,DEV=0olduğunu hw:0,1? Söyleyebileceğim kadarıyla, hw:0,0bunun belirtildiği DEV=0, ancak farklı bir yapılandırmada verildiği (içinde olduğu gibi 2 yerine 4 kanal front:CARD=CK804,DEV=0) verilmiştir.
zpon

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.