mi asoundrc se modifica cada reinicio

Tengo una raspberry pi 3 con usb dac para conectar mi micrófono y también tengo un altavoz usb.

Lo instalé en mi pi, mopidy y otros proyectos pequeños.

Modifiqué mi ~/.asoundsrc para

pcm.!default { type asym playback.pcm { type plug slave.pcm "hw:1,0" } capture.pcm { type plug slave.pcm "hw:0,0" } } 

Todo funciona y cuando reinicio tengo una nueva configuración agregada al final de mi .asoundrc archivo

pcm.!default { type asym playback.pcm { type plug slave.pcm "hw:1,0" } capture.pcm { type plug slave.pcm "hw:0,0" } } pcm.!default { type hw card 2 } ctl.!default { type hw card 2 } 

Con esta modificación, mi pequeño proyecto no funciona, debo eliminar

pcm.!default { type hw card 2 } ctl.!default { type hw card 2 } 

¿Sabes por qué, esta configuración se agrega cada reiniciar?

Tal vez esto, ¿pueden ayudarme a ayudarme 🙂

cat /proc/asound/modules 0 snd_usb_audio 1 snd_usb_audio 2 snd_bcm2835 

Gracias

Comentarios

  • Solo para probar, me gustaría que probaras esto. Vamos a deshabilitar el audio integrado. Para hacer eso, escribe esto en tu terminal: sudo nano / boot / config.txt Desplácese hasta la parte inferior del archivo y busque dos líneas que digan: # Habilitar audio (carga snd_bcm2835) dtparam = audio = on Coloque un (signo de almohadilla #) delante de la línea que dice: dtparam = audio = on Para que se vea así: # dtparam = audio = on Presione CTRL + xy luego presione Enter para guardar su archivo. Además, deberá reiniciar. Lo que queremos saber es si hay un conflicto con el audio USB y el integrado. ¡Buena suerte!
  • Hola, gracias por tu respuesta y ayuda. su modificación no ‘ resuelve mi problema, pero ahora, cuando reinicio pcm.!default y ctl.!default no ‘ no tengo tarjeta 2 pero tarjeta 0.

Respuesta

Deshaga lo que le pedí que hiciera. Después de eso, reinicie. Una vez que haya realizado una copia de seguridad de su RPi, creemos un archivo:

sudo nano /etc/asound.conf 

En ese archivo, coloque esto en él:

pcm.!default { type asym playback.pcm { type plug slave.pcm "hw:1,0" } capture.pcm { type plug slave.pcm "hw:0,0" } } 

Una vez hecho esto, guarde su archivo, luego reinicie.

Comentarios

  • Gracias Jason pero no. nadie cambia Ya tengo pcm.!default y ctl.!default Intento eliminar /home/pi/.asoundrc pero pcm et ctl volver sin mi configuración en /etc/asound.conf

Responder

El La forma en que resolví este problema fue ejecutar sudo raspi-config, luego ir a Opciones avanzadas y luego a Audio. Esto se configuró en Automático. Cuando cambié esta opción a «Forzar conector de auriculares de 3.5 mm», dejé de sobrescribir mi archivo .asoundrc al reiniciar.

Comentarios

  • Intenté esto, algo aún sobrescribe mi .asoundrc en cada arranque.

Respuesta

Este es un viejo problema que reaparecerán regularmente, más recientemente después de una actualización al último kernel y firmware, para Raspian Stretch , 4.14.30-v7+.

Parece que puede tener algo que ver con la forma en que las Raspberry Pi están usando los servicios systemd al arrancar y al cerrar y cómo se han configurado inicialmente los demonios y servicios ALSA (o después de la actualización del sistema). Mi mejor suposición es que los scripts posteriores a la instalación para algo no reconocen que ya tienes un archivo /home/pi/.asoundrc y luego intenta restaurarlo a algunos valores predeterminados. No está claro de dónde proviene este valor predeterminado. Ciertamente no lo que está escrito en los comentarios de los muchos archivos de configuración de ALSA o servicios del sistema o páginas de manual relacionadas. Pero parece provenir de un error en el subprograma de volumen de lxpanels.

En mi caso, el lo siguiente parece haber resuelto el problema:

  • Primero elimine el subprograma de volumen del lxpanel , luego:
 # Make sure your .asoundrc is correct, then do: alsactl kill save_and_quit sudo shutdown now  

PD. También parece importante usar shutdown , y no reboot !


Intentos de depuración

Si lo anterior no funciona, lea esto.

Como lado, parece haber un error en cómo systemctl maneja los servicios. El FS en pi es diferente (porque faltan partes) de otros sistemas basados en Debian, por lo que el lugar donde se ubican y manejan los scripts de servicio no se corresponde con sus propias páginas de manual.

Para ver los servicios relacionados con ALSA relevantes , haz:

sudo systemctl status alsa-restore alsa-state 

En circunstancias normales, deberías poder cerrar los servicios estáticos sospechosos mediante algo como:

sudo systemctl mask --system alsa-state.service --now sudo systemctl mask --system alsa-restore.service --now 

Sin embargo, las ubicaciones de tiempo de ejecución de [system,user,runtime, global] que son:

/etc/systemd/system-preset/*.preset /run/systemd/system-preset/*.preset /lib/systemd/system-preset/*.preset /etc/systemd/user-preset/*.preset /run/systemd/user-preset/*.preset /usr/lib/systemd/user-preset/*.preset 

no se respetan como se describe en man systemd.preset.
Para ver todos los servicios y su estado actual, use:

systemctl list-unit-files -t service -all 

También puede invertir las dependencias con:

systemctl list-dependencies --reverse alsa-restore.service alsa-restore.service ● └─basic.target ● └─multi-user.target ● └─graphical.target 

En cualquier caso, al deshabilitar el servicio con mask, debe reemplazar el archivo con un enlace simbólico a /dev/null, solo que esto no sucede en el lugar correcto (de acuerdo con lo anterior). Por lo tanto, tenemos que eliminar el archivo manualmente (hacer una copia de seguridad antes) y luego crear el enlace.

 cp /etc/systemd/system/alsa-restore.service ~/alsa-restore_service.bak cd /etc/systemd/system/ sudo rm alsa-restore.service sudo ln -s /dev/null alsa-restore.service # It should look something like: ls -al /lib/systemd/system |grep alsa lrwxrwxrwx 1 root root 9 Apr 25 13:23 alsa-restore.service -> /dev/null lrwxrwxrwx 1 root root 9 Apr 25 13:26 alsa-state.service -> /dev/null lrwxrwxrwx 1 root root 9 Jan 23 2017 alsa-utils.service -> /dev/null  

Ahora asegúrese de repetir lo anterior también para alsa-state.service, y los mismos archivos en el directorio: /lib/systemd/system/ si aún no está allí.

DESCARGO DE RESPONSABILIDAD

Lo anterior probablemente no sea la forma correcta de hacerlo. esto, por lo tanto, considérelo como una solución muy experimental hasta que se resuelva el comportamiento defectuoso. Es muy probable que rompa la funcionalidad de ALSA por completo.

Respuesta

He resuelto una situación similar actualizando el entorno de Raspberry pi. los pasos son,

  • Haga una copia de seguridad de sus datos desde Raspberry pi
  • verifique su versión actual $ uname -a
  • actualice la información del paquete $ sudo apt-get actualizar
  • actualizar paquetes instalados $ sudo apt-get upgrade
  • actualizar a la última distribución $ sudo apt-get dist-upgrade
  • actualizar raspberry pi firm ware $ sudo rpi-update
  • reboot $ sudo reboot
  • verifica tu última versión $ uname -a

Después de eso, en mi Raspberry pi se resolvió tal como «.asoundrc modificado se reescribió después de reiniciar». La versión de NOOBS se actualizó a 2.8.1 el 2018-4-24. Solo mi opinión, que fue una especie de error ALSA porque intenté y fracasé y recopilé información sobre ese fenómeno.

Respuesta

Ok, tuve un problema similar, me estaba conectando a mi Pi con un altavoz bluetooth, si el altavoz no estaba encendido antes de arrancar, se restablecería el archivo .asoundrc. Muy irritante. Probé todo lo anterior y luego pensé qué pasa si solo configuro la configuración correcta y luego lo hago de solo lectura. Por extraño que parezca, esto funcionó. Todo lo que hice fue: sudo chmod 0444 ./.asoundrc y eso es todo. Todo está bien ahora.

Comentarios

  • Esto funcionó para mí en Raspbian Stretch. Es extraño que la configuración de permisos funcione, ya que habría pensado que era el sistema (es decir, la raíz) cambiando el archivo.
  • Aunque ahora recibo el siguiente error al llamar a pyaudio. Las cosas todavía parecen funciona. » Expresión ‘ alsa_snd_pcm_hw_params_set_period_size_near (pcm, hwParams, alsames & dir) ‘ falló en ‘ src / hostapi / alsa / pa_linux_alsa.c ‘, línea: 924 »

Respuesta

Si cambia el dispositivo de audio predeterminado desde el menú> preferencias> Configuración del dispositivo de audio> Tarjeta de sonido, seleccione Tarjeta de sonido> haga que su archivo ~ / .asoundrc predeterminado se cambie

Comentarios

  • Este parece ser mi problema. Sobrescritura de .asoundrc al reiniciar con Stretch. ¿Alguna idea en la que pueda ‘ deshacer ‘ la marcación de esta casilla para que el sistema ya no sobrescriba?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *