Cosa significano dispositivi ALSA come "hw: 0,0"? Come faccio a capire quale usare?


65

Ho cercato più volte e non riesco a trovare alcuna spiegazione del significato di "hw: 0,0". Come posso determinare il numero della mia scheda audio USB? MPD mi richiede di inserire qualcosa del genere:

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

Se faccio "alsamixer -c 1" si apre il controllo del volume della scheda USB, ma questo non mi aiuta davvero.

Dove posso trovare un elenco di nomi / numeri di dispositivo sul mio sistema? Sono resistenti alle modifiche hardware? Se rimuovo la carta 2, la carta 3 diventa la carta 2? Esistono altri modi per identificare i dispositivi? Dove posso trovare la documentazione per uno di questi?


quindi cosa ha finito per funzionare?
Quack Quixote,

Passare a PulseAudio ha funzionato, in un certo senso. :) Ma ho dovuto accedere localmente e modificare il routing audio. Poi ho deciso che MPD fa schifo e ho rinunciato.
endolith

In realtà "hw: 1,0" probabilmente ha funzionato, ma ha detto che il dispositivo era in uso (da Pulse?) Non ho provato l'altro metodo, ma spero che questo possa aiutare gli altri.
endolith,

Risposte:


50

La risposta di JohnT fornisce una buona base. Lo seguirò con come trovare i dispositivi sul tuo sistema. Usa "aplay -l" per ottenere un elenco dei dispositivi sul tuo sistema. L' hw: X, Y deriva da questa mappatura del tuo hardware - in questo caso, X è il numero della carta , mentre Y è il numero del dispositivo .

$ 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

Poiché si tratta di dispositivi USB che potrebbero non ottenere sempre gli stessi numeri di dispositivo ogni volta che sono collegati, il dispositivo hw: X, Y potrebbe cambiare. La risposta più semplice è, per un sistema desktop, provare gli strumenti di configurazione GNOME / KDE / Xfce e vedere se sono abbastanza intelligenti da rilevare le modifiche.

Il modo complesso, se non lo fai con un sistema desktop, diventa ... interessante. Potresti essere in grado di cavartela usando alias di dispositivo invece di "hw: X, Y" - questo è ciò che mostra l'output di "aplay -L". Il "qualcosa: CARD = FOO, DEV = Y" è l'alias e probabilmente non cambierà tra i diversi plug-in di dispositivi, dove la X in "hw: X, Y" potrebbe. (Supponendo che si stia utilizzando lo stesso dongle USB ogni volta.)

$ 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

Quindi il tuo comando aplay diventerebbe "aplay -D front: CARD = CK804, DEV = 0 somefile.wav", e puoi usare lo stesso nome devic nel tuo .asoundrc.


Se hai bisogno di qualcosa di più stabile a un livello ancora più basso, dispositivi kernel reali, udev è quello che vuoi: è il sistema che consente di collegare a caldo i dispositivi nel sistema. Puoi scrivere regole per udev (ed ecco la pagina man ) che consentiranno ai dispositivi di ottenere lo stesso nome devic quando sono collegati.


3
Aha! Mi era stato detto aplay -L, che non fornisce lo stesso risultato di aplay -l. sigh
endolith,

1
Come si può dire che surround40:CARD=CK804,DEV=0è hw:0,1? Per quanto posso dire è hw:0,0dato che si riferisce a DEV=0, ma in una configurazione diversa (4 canali anziché 2 come in front:CARD=CK804,DEV=0).
Zpon,

19

hw:0,0specifica il dispositivo predefinito, sulla scheda audio predefinita. Per accedere al primo dispositivo della seconda scheda audio, è necessario specificare hw:1,0. Questi sono specificati nel tuo .asoundrc. Maggiori informazioni su tutto questo qui .


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.