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

¿Qué significan los dispositivos ALSA como "hw:0,0"? ¿Cómo puedo saber cuál utilizar?

He buscado una y otra vez y no encuentro ninguna explicación de lo que significa “hw:0,0”. ¿Cómo puedo determinar el número de mi tarjeta de audio USB? El MPD me pide que introduzca algo así:

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

Si hago “alsamixer -c 1” me abre el control de volumen de la tarjeta USB, pero eso realmente no me ayuda.

¿Dónde puedo encontrar una lista de nombres/números de dispositivos en mi sistema? ¿Son resistentes a los cambios de hardware? Si quito la tarjeta 2, ¿la tarjeta 3 se convierte en la 2? ¿Hay otras formas de identificar los dispositivos? ¿Dónde puedo encontrar documentación sobre todo esto?

Respuestas (2)

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

La respuesta de JohnT da una buena base. Voy a seguir con la forma de encontrar los dispositivos en su sistema. Usa “aplay -l” para obtener una lista de los dispositivos de tu sistema. El hw:X,Y viene de este mapeo de tu hardware – en este caso, X es el número de tarjeta, mientras que Y es el número de 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
  • *

Dado que se trata de dispositivos USB que pueden no tener siempre los mismos números de dispositivo cada vez que se conectan, el dispositivo hw:X,Y puede cambiar. La respuesta más sencilla es, para un sistema de escritorio, probar las herramientas de configuración de GNOME/KDE/Xfce, y ver si son lo suficientemente inteligentes como para recoger los cambios.

La forma compleja, si no estás haciendo esto con un sistema de escritorio, se pone… interesante. Usted podría ser capaz de salirse con la suya utilizando alias de dispositivos en lugar de la “hw:X,Y” – esto es lo que muestra la salida de “aplay -L”. Lo de “algo:CARD=FOO,DEV=Y” es el alias, y probablemente no cambiará entre diferentes plug-ins de dispositivos, mientras que la X en “hw:X,Y” sí podría hacerlo. (Asumiendo que estás usando el mismo dongle USB cada vez.)

$ 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

Así que tu comando aplay se convertiría en “aplay -D front:CARD=CK804,DEV=0 somefile.wav”, y puedes usar el mismo nombre de dispositivo en tu .asoundrc.

  • *

Si necesita algo más estable a un nivel aún más bajo, dispositivos reales del kernel, udev es lo que quiere – es el sistema que permite la conexión en caliente de dispositivos en el sistema. Puede escribir reglas para udev (y aquí está la página man ) que permitirá que los dispositivos obtengan el mismo nombre de dispositivo cuando se conecten.

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

hw:0,0 especifica el dispositivo por defecto, en la tarjeta de sonido por defecto. Para acceder al primer dispositivo de su segunda tarjeta de sonido, especificaría hw:1,0. Esto se especifica en su .asoundrc. Más sobre todo esto aquí .

Preguntas relacionadas

6
10
10
5
2