it-swarm-eu.dev

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

Ho cercato ripetutamente e non riesco a trovare alcuna spiegazione su cosa significa "hw: 0,0". Come posso determinare il numero della mia scheda audio USB? MPD mi richiede di inserire qualcosa di simile a questo:

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

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

Dove posso trovare un elenco di nomi/numeri di dispositivi sul mio sistema? Sono resilienti alle modifiche hardware? Se rimuovo la carta 2, la carta 3 diventa la carta 2? Ci sono altri modi per identificare i dispositivi? Dove posso trovare la documentazione per tutto ciò?

60
endolith

La risposta di JohnT dà una buona base. Lo seguirò su come trovare i dispositivi sul tuo sistema. Usa "aplay -l" per ottenere un elenco dei dispositivi sul tuo sistema. Il hw: X, Y proviene da questa mappatura del tuo hardware - in questo caso, X è il card number, mentre Y è il device number.

$ 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 dispositivi USB potrebbero non ricevere 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 GNOME/KDE/Xfce e vedere se sono abbastanza intelligenti da captare le modifiche.

Il modo complesso, se non stai facendo questo con un sistema desktop, diventa ... interessante. Potresti riuscire a scappare con usando alias di dispositivo invece di "hw: X, Y" - questo è ciò che mostra l'output di "aplay -L". La roba "qualcosa: CARD = FOO, DEV = Y" è l'alias e probabilmente non cambierà tra i diversi plug-in del dispositivo, dove potrebbe essere la X in "hw: X, Y". (Supponendo che tu 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 di aplay diventerebbe "aplay -D front: CARD = CK804, DEV = 0 somefile.wav", e puoi usare lo stesso nome di dispositivo nel tuo .asoundrc.


Se hai bisogno di qualcosa di più stabile a un livello ancora più basso, i dispositivi del kernel attuali, udev è ciò che vuoi: è il sistema che consente il collegamento di dispositivi hotplug nel sistema. Puoi scrivere regole per udev (ed ecco la pagina man ) che permetterà ai dispositivi di ottenere lo stesso nome di dispositivo quando collegato.

45
quack quixote

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

18
John T