2009-10-11 17:32:47 +0000 2009-10-11 17:32:47 +0000
67
67

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

Ho cercato più e più volte e non riesco a trovare alcuna spiegazione di cosa significhi “hw:0,0”. Come faccio a determinare il numero della mia scheda audio USB? MPD mi richiede di inserire qualcosa come questo:

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 davvero non mi aiuta.

Dove posso trovare un elenco di nomi/numeri di dispositivi sul mio sistema? Sono resistenti ai cambiamenti dell'hardware? Se rimuovo la scheda 2, la scheda 3 diventa la scheda 2? Ci sono altri modi per identificare i dispositivi? Dove posso trovare la documentazione per tutto questo?

Risposte (2)

53
53
53
2009-10-11 18:12:29 +0000

La risposta di JohnT dà una buona base. La seguirò con come trovare i dispositivi sul vostro sistema. Usa “aplay -l” per ottenere una lista dei dispositivi sul tuo sistema. Il 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é questi sono dispositivi USB che potrebbero non avere sempre gli stessi numeri di dispositivo ogni volta che vengono collegati, il dispositivo hw:X,Y potrebbe cambiare. La risposta più semplice è, per un sistema desktop, provare gli strumenti di configurazione di GNOME/KDE/Xfce, e vedere se sono abbastanza intelligenti da rilevare i cambiamenti.

Il modo complesso, se non lo stai facendo con un sistema desktop, diventa… interessante. Potresti riuscire a cavartela con usando device alias invece di “hw:X,Y” – questo è ciò che mostra l'output di “aplay -L”. La roba “something:CARD=FOO,DEV=Y” è l'alias, e probabilmente non cambierà tra diversi plug-in di dispositivi, mentre la X in “hw:X,Y” potrebbe.

$ 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 del dispositivo nel tuo .asoundrc.


Se hai bisogno di qualcosa di più stabile ad un livello ancora più basso, dispositivi reali del kernel, udev è ciò che vuoi – è il sistema che permette di inserire dispositivi a caldo nel sistema. Puoi scrivere regole per udev (e qui c'è la man page ) che permetteranno ai dispositivi di ottenere lo stesso nome del dispositivo quando vengono inseriti.

19
19
19
2009-10-11 17:40:05 +0000

hw:0,0 specifica il dispositivo di default, sulla scheda audio di default. Per accedere al primo dispositivo della tua seconda scheda audio, dovresti specificare hw:1,0. Questi sono specificati nel tuo .asoundrc. Per saperne di più su tutto questo qui .