Cómo hacer que Raspberry Pi use una tarjeta de sonido USB externa como predeterminada

17

¿Alguien sabe cómo cambiar la prioridad de arranque de la tarjeta de sonido?

Todos los tutoriales me dicen que edite /etc/modprobe.d/alsa-base.conf, pero falta el archivo en Raspbian Jesse .

Carl Hudson
fuente
Votación a favor por venir en Google - junio de 2018
SDsolar

Respuestas:

10

El archivo que busca se encuentra en /usr/share/alsa/alsa.conf. No se llama alsa-base.confsoloalsa.conf

Todo el texto relevante está en ese archivo, solo ejecute, sudo nano /usr/share/alsa/alsa.confcambie la tarjeta de sonido predeterminada a 1 o la que prefiera, obviamente, 0 es predeterminada, por lo que no eliminé el # de la línea que dice ... load card-specific configuration files(a pedido) y ahora tengo el sonido proveniente de mi tarjeta de audio cirrus ejecutando debian 8 jessie en ras pi2

Breeskeeper
fuente
1
He hecho algunas correcciones de formato rápido. Quizás una copia de la parte relevante del archivo de configuración de alsa mejoraría aún más su respuesta.
Journeyman Geek
2
¿No es "cargar archivos de configuración específicos de la tarjeta (a pedido)" un comentario?
SILENCIOSO
De hecho, es solo un comentario para explicar el bloque de código debajo de él
PTS
Sí. Respuesta parcial No hay suficiente información autorizada aquí para que yo pueda decidir sobre la votación. ... y esa línea es un comentario que no es ejecutable. Y el bloque en sí no está comentado.
SDsolar
13

Esto funcionó para mí en Raspbian Jessie.

Si no necesita el chip de audio integrado (es decir, salida analógica o audio hdmi), desactívelo y luego el dispositivo de audio USB puede convertirse en el dispositivo principal:

  1. Deshabilitar audio a bordo.
    • Abrir /etc/modprobe.d/raspi-blacklist.confy agregar blacklist snd_bcm2835.
  2. Permita que el dispositivo de audio USB sea el dispositivo predeterminado.
    • Abre /lib/modprobe.d/aliases.confy comenta la líneaoptions snd-usb-audio index=-2
  3. Reiniciar
    • sudo reboot
  4. Pruébalo
    • $ aplay /usr/share/sounds/alsa/Front_Center.wav
leif81
fuente
Actualicé la respuesta para usar una estrategia diferente para deshabilitar el audio integrado. De esta manera es mejor porque no rompe el applet de audio de escritorio.
leif81
El primer paso es crucial pero no lo había encontrado en ningún otro lado. Voto a favor. El resto está desactualizado. Junio ​​de 2018: ya sabía que debía entrar /usr/share/alsa/alsa.confy cambiarlo para decir ambos default.ctl.card 1y default.pcm.card 1, luego de todo esto, reiniciar e intentar alsa -lver solo el USB que se muestra y que es la tarjeta n. ° 1. Lo instalé mplayerpara la prueba y es genial. Han bloqueado esta pregunta a las respuestas, así que aquí está.
SDsolar
@SDsolar Me alegro de ayudar. ¿Aunque no creo que el Paso 2 esté desactualizado? Tiene una forma alternativa de configurar el dispositivo como predeterminado. Bueno saber.
leif81
Podría ser un problema de versión. Por ejemplo, mis sistemas 16.04 LTS se actualizaron inmediatamente desde el CD de instalación 14.04. Por lo tanto, existen vestigios de ambas formas de hacer las cosas, particularmente las relacionadas con el proceso de arranque que cambió en v15. En mi caso, los archivos modprobe.d existen pero están en blanco. Así que al final es bueno que esta respuesta muestre ambas formas si incluye mi comentario. -> Definitivamente resolviste mi mayor problema con la alsamixerlista negra de bcm2835. Busqué por todas partes y solo tu respuesta tenía esa última pieza del rompecabezas. TNX MCH
SDsolar
3

Tuve problemas con esto en versiones recientes de Raspbian (Jessie).

Hay un archivo llamado aliases.confen /lib/modprobe.del que contiene la línea options snd-usb-audio index=-2. Esa línea anula los /etc/modprobe.d/archivos, por lo que debe cambiar esa. Comenta con un # la líneaoptions snd-usb-audio index=-2

En " /usr/share/alsa/alsa.confNo comenté" cargar archivos de configuración específicos de la tarjeta (a pedido) "y también reemplacé el contenido del .asoundrccual es un archivo oculto en su carpeta de inicio con:

pcm.!default plughw:Device
ctl.!default plughw:Device

La desventaja de esta solución es que el applet de sonido de escritorio no aparecerá. Entonces, para controlar el volumen, use la alsamixeraplicación o los botones de nivel de sonido físico en el dongle de sonido USB.

Referencias para esto:

  1. https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=124016&p=857433&hilit=usb+audio#p857433
  2. http://alsa.opensrc.org/Asoundrc#Default_PCM_device .
Digitalfix
fuente
2

El método descrito aquí en el Raspberry Pi StackExchange funcionó para mí. Estoy ejecutando Raspian Jessie.

La nueva información fue que tuve que crear un nuevo .confarchivo y no editarlo /usr/share/alsa/alsa.conf:

Para reordenar mis tarjetas, primero creo un archivo llamado /etc/modprobe.d/alsa base.conf. Se puede nombrar lo que quieras siempre que termine con .conf. Luego agregué lo siguiente:

# This sets the index value of the cards but doesn't reorder.
options snd_usb_audio index=0   
options snd_bcm2835 index=1

# Does the reordering.
options snd slots=snd_usb_audio,snd_bcm2835
Lennart Hennigs
fuente
2

No estaba satisfecho con las respuestas anteriores que daban instrucciones un poco ambiguas, así que pensé que documentaría una solución más clara.

Una buena publicación aquí muestra cómo probar qué dispositivo y tarjeta está buscando usar.

Encuentre su número de dispositivo de hardware y número de tarjeta usando aplay -lantes y después de enchufar su dispositivo usb.

Para mi sistema, el dispositivo usb aparece como card 1: CODEC [USB Audio CODEC], device 0 ...

Puede confirmar que el dispositivo funciona con

aplay -D hw:1,0 InsertYourWavFileHere.wav

Asegúrese de copiar un archivo de audio wav válido en su directorio actual y cambie el nombre adecuadamente. Si esto funciona, puede codificar estos valores para que se conviertan en valores predeterminados para la reproducción entre todos los demás audio manejados por alsa (la mayoría de los casos)

Para editar sus valores predeterminados, también debe configurar el archivo como otros han dicho:

sudo nano /usr/share/alsa/alsa.conf

Las líneas específicas que querrá cambiar están unas páginas abajo. Puede buscar con Cntl + W o simplemente desplazarse hacia abajo.

Cambio:

defaults.pcm.card 0 defaults.pcm.device 0

A:

defaults.pcm.card 1 defaults.pcm.device 0

Guarde el archivo de configuración presionando control + x, luego nano le pedirá que confirme sus ediciones y presione Y e Intro.

topher217
fuente
¿Puede explicar de qué está hablando cuando dice: "copie un archivo de audio wav válido en su directorio actual y cambie el nombre adecuadamente"? ¿Esto se refiere al aplaycomando para "confirmar que el dispositivo está funcionando"? ¿No es lo suficientemente bueno para especificar un archivo de audio wav válido por su nombre actual y ruta completa?
G-Man dice 'reinstalar a Monica' el
@ G-man Sí, especificar cualquier archivo de audio wav por su ruta completa o válida debería estar bien. En mi ejemplo particular que había usado, InsertYourWavFileHere.wavpero esto podría ser reemplazado fácilmente ./audio/test.wavsi tuviera un archivo wav en el subdirectorio de audio llamado test.wav, por ejemplo. Si ese fuera el caso, entonces aplay -D hw:1,0 ./audio/test.wav debería funcionar igual de bien.
topher217
0

Después de cambiar alsa.conf ( defaults.ctl.card 1 defaults.pcm.card 1) y ( load card-specific configuration files (on request)), debe modificar su archivo asoundrc e ingresar:

pcm.!default { type hw card 0 }
pcm.default.card 1.

Estará bien

bouziat jacques
fuente
0

He dado una reseña completa aquí que cubre todo lo anterior y mucho más. Incluyendo aclarar algunos conceptos erróneos y dificultades en los archivos de configuración de ALSA.

Lo esencial es deshabilitar el módulo de audio Broadcom llamado snd_bcm2835y asegurarse de que snd_usb_audioesté cargado solo. Esto se puede hacer de dos maneras.

  • En el /boot/config.txtarchivo
  • En el archivo de lista negra del módulo.

Luego configure su configuración de ALSA para que apunte al snd_usb_audioíndice.

not2qubit
fuente
-1

He probado las sugerencias de muchas personas para los cambios de configuración. Kodi continuó emitiendo audio a hdmi. Finalmente descubrí que Kodi tiene una configuración en Sistema | ¡Audio que le permite elegir a qué tarjeta de audio emitir! Tan obvio una vez que lo ves.

Pete .T.
fuente