Según el Wiki de ALSA , bajo el título que dice " Cómo elegir un orden particular para múltiples tarjetas instaladas ", establece lo siguiente:
Qué tarjeta es el número de tarjeta 0, 1 y, por lo tanto, está determinada de manera predeterminada por el orden de carga del módulo. Esto es particularmente útil para elegir qué tarjeta se convierte en la predeterminada.
En teoría, por lo tanto, es posible elegir cuál de varias tarjetas instaladas se convierte en la tarjeta 0, la predeterminada, asegurando que su módulo de controlador se cargue primero. (Nota: esto supone que cada tarjeta de sonido requiere un controlador diferente. Si tiene dos tarjetas de sonido del mismo tipo, pase a la siguiente sección).
Hay dos maneras de lograr esto, la opción "antigua" index = del módulo del controlador de la tarjeta y la opción alternativa (y nueva) slots = del módulo snd.
Documenta dos métodos para hacer esto:
- El antiguo método "index ="
- El nuevo método "slots ="
Lo primero es lo que recomiendan las instrucciones de instalación de Jasper. También es de lo que habla la mayoría de las soluciones. Sin embargo, este es el método más antiguo y puede no funcionar en imágenes Raspbian Jessie más actuales.
Una combinación de ambos métodos es lo que funcionó para mí.
En primer lugar, verifique en qué orden se han cargado sus tarjetas:
$ cat /proc/asound/modules
0 snd_bcm2835
1 snd_usb_audio
El recuento de tarjetas comienza de 0
modo que el valor predeterminado bcm2835
se carga primero y mi tarjeta USB que tiene mi micrófono se carga en segundo lugar.
Para reordenar mis tarjetas, primero creo un archivo llamado /etc/modprobe.d/alsa-base.conf
. Se le puede poner el nombre que desee siempre que termine .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
Los comentarios deben explicar qué hace cada línea. Una vez que hagas eso, parece que tienes que reiniciar tu máquina para que funcione.
Una vez que reinicie, debería poder grabar algo de audio con la tarjeta predeterminada que ahora debería ser su micrófono:
$ arecord temp.wav
y luego reproducirlo, especificando la tarjeta como 1 y el dispositivo como 0, que es donde debe estar la salida de su altavoz:
aplay -D plughw:1,0 temp.wav
Inicialmente solo agregué la línea con slots
ella. Esto funcionó para hacer que mi tarjeta USB sea la tarjeta predeterminada pero se indexó incorrectamente. Por ejemplo, una vez que hice eso, así es /proc/asound/modules
como se veía mi :
$ cat /proc/asound/modules
1 snd_usb_audio
2 snd_bcm2835
Idealmente, debería verse así:
0 snd_usb_audio
1 snd_bcm2835
Y es por eso que también uso el index
método para lograr esto.
snd_usb_audio
, por desgracia.Después de intentar depurar todos los problemas de este proyecto y hacer que AMBOS micrófonos usb y altavoces bcm2835 funcionen, creo que hay un problema básico que TODOS los consejos de ALSA que recibí no resuelven.
El directorio / usr / share / alsa / cards no tiene un archivo bcm2835.conf. El archivo de directorio / usr / share / alsa alsa.conf deja MUCHOS stubs que deben especificarse. A menos que se suministre una tarjeta para bcm2835, la activación de Jasper.py muestra muchos mensajes de error supuestamente no fatales. Al elaborar un archivo bcm2835.conf, puede deshacerse de los mensajes irritantes.
Me parece que este es un error de Jessie; Realmente debería haber un archivo que resuelva estos mensajes de error. Parece un poco flojo para el programador jessie que se ocupa de ALSA de no haber creado uno que haya sido probado.
No he trabajado a través de todos los mensajes de error, pero sospecho que otros mensajes también son causados por esto.
Otro caso de no tener una versión madura es la falla para verificar el firmware antiguo durante el arranque. El firmware antiguo en mi jessie resultó en un escritorio que no respondía al teclado o al mouse, lo cual es un excelente ejemplo para usar jessie con firmware antiguo, a menos que sepa ssh. No es una situación de usuario ingenua.
fuente