Co oznaczają urządzenia ALSA, takie jak „hw: 0,0”? Jak wymyślić, którego użyć?


63

Szukałem w kółko i nie mogę znaleźć żadnego wyjaśnienia, co oznacza „hw: 0,0”. Jak określić numer mojej karty dźwiękowej USB? MPD wymaga ode mnie wprowadzenia czegoś takiego:

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

Jeśli zrobię „alsamixer -c 1”, otworzy się regulacja głośności na karcie USB, ale to naprawdę mi nie pomaga.

Gdzie mogę znaleźć listę nazw / numerów urządzeń w moim systemie? Czy są odporne na zmiany sprzętu? Jeśli usunę kartę 2, czy karta 3 stanie się kartą 2? Czy istnieją inne sposoby identyfikacji urządzeń? Gdzie mogę znaleźć dokumentację na dowolny z tych tematów?


więc co w końcu działało?
quack quixote

Przejście na PulseAudio działało w pewnym sensie. :) Ale musiałem być zalogowany lokalnie i zmodyfikować routing audio. Potem zdecydowałem, że MPD jest do bani i poddałem się.
endolith,

Właściwie „hw: 1,0” prawdopodobnie działało, ale powiedziało, że urządzenie jest w użyciu (przez Pulse?) Nie próbowałem innej metody, ale mam nadzieję, że to pomoże innym.
endolith,

Odpowiedzi:


48

Odpowiedź JohnT daje dobre podstawy. Sprawdzę, jak znaleźć urządzenia w twoim systemie. Użyj „aplay -l”, aby uzyskać listę urządzeń w systemie. Hw: X, Y pochodzi z tego odwzorowania sprzętu - w tym przypadku X jest karta numer, a Y to urządzenie numer.

$ 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

Ponieważ są to urządzenia USB, które nie zawsze otrzymują te same numery urządzeń przy każdym podłączeniu, urządzenie hw: X, Y może się zmienić. Najprostsza odpowiedź brzmi: w przypadku systemu stacjonarnego wypróbuj narzędzia konfiguracyjne GNOME / KDE / Xfce i sprawdź, czy są wystarczająco inteligentne, aby odebrać zmiany.

Złożony sposób, jeśli nie robisz tego z systemem stacjonarnym, staje się ... interesujący. Być może uda Ci się uniknąć użycia aliasów urządzeń zamiast „hw: X, Y” - tak pokazuje wyjście „aplay -L”. „Coś: CARD = FOO, DEV = Y” to alias i prawdopodobnie nie zmieni się pomiędzy różnymi wtyczkami urządzeń, gdzie X w „hw: X, Y” może. (Zakładając, że za każdym razem używasz tego samego klucza USB).

$ 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

Więc twoje polecenie aplay zmieni się w „aplay -D front: CARD = CK804, DEV = 0 somefile.wav”, i możesz użyć tej samej nazwy pliku w .asoundrc.


Jeśli potrzebujesz czegoś bardziej stabilnego na jeszcze niższym poziomie, rzeczywistych urządzeń jądra, udev jest tym, czego chcesz - to system, który pozwala na podłączanie urządzeń do systemu. Możesz napisać reguły dla udev (i tutaj jest strona podręcznika ), które pozwolą urządzeniom uzyskać tę samą nazwę urządzenia po podłączeniu.


3
Aha! Powiedziano mi aplay -L, że nie zapewnia takiej samej wydajności jak aplay -l. westchnienie
endolith

1
Jak można powiedzieć, że surround40:CARD=CK804,DEV=0jest hw:0,1? O ile mogę powiedzieć, podam hw:0,0, że odnosi się do DEV=0, ale w innej konfiguracji (4 kanały zamiast 2 jak w front:CARD=CK804,DEV=0).
zpon

19

hw:0,0określa domyślne urządzenie na domyślnej karcie dźwiękowej. Aby uzyskać dostęp do pierwszego urządzenia drugiej karty dźwiękowej, należy określić hw:1,0. Są one określone w twoim .asoundrc. Więcej o tym wszystkim tutaj .


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.