Ubuntu 16.04 cambia el dispositivo de sonido después de suspender, ¿cómo solucionarlo?

17

Entonces, mi configuración actualmente está usando un monitor conectado a mi computadora portátil a través de HDMI y usando los altavoces para audio, no los portátiles incorporados. Cuando la máquina arranca, usa HDMI de forma predeterminada, pero a menudo suspenderé la computadora portátil durante todo el día y cada vez que se reanude, cambiará el dispositivo de sonido a los altavoces incorporados.

No es un gran problema como se puede imaginar, pero es molesto, me pregunto si hay un script que pueda usar para forzarlo a volver a seleccionar HDMI después de reanudar o deshabilitar los altavoces incorporados, o configurarlo de manera predeterminada de alguna manera. Para su información, ambos altavoces incorporados están en la misma 'tarjeta de sonido' pero son dos dispositivos diferentes

¡Gracias por cualquier ayuda!

MattJC
fuente
¿Cuál es tu tarjeta de video? ¿Utiliza algún controlador propietario?
Marcos Silveira

Respuestas:

17

Si no desea reiniciar, simplemente reinicie pulseaudio:

pulseaudio --kill; pulseaudio --start
rubo77
fuente
1
esto no funciona para mí
Elliott
1
Esto ayudó sin el segundo comando de inicio ya. Tuve que esperar un par de segundos y tuve que silenciar la salida .
try-catch-finally
¡ESTE PRIMER MANDO FUNCIONA! BOOM está de vuelta!
markackerman8-gmail.com
7

Tuve el mismo problema en Ubuntu 17.10. Después de suspender, o incluso después de atenuar la pantalla, siempre cambiaría mi salida de audio de Salida digital (deseada) a HDMI, aunque mi pantalla no tenga altavoces. Comentando la línea

load-module module-switch-on-port-available

en /etc/pulse/default.paresolvieron el problema que se describe en sonido a través de HDMI Desactivar permanentemente .

Tenga en cuenta que establecer los sumideros predeterminados como se indicó anteriormente no cambió el comportamiento. Además, el script proporcionado anteriormente para establecer el perfil de la tarjeta de audio después de la suspensión es específico del usuario.

sambura
fuente
1
Sé que esto es bastante antiguo, pero este cambio automático desactivado al enchufar auriculares en mi sistema.
AmbientCyan
3

Solucioné este problema estableciendo un perfil de pulso fijo para la salida: hdmi-stereo en el currículum.

Para obtener una lista de perfiles de pulso: pacmd list-cards. Para cambiar el perfil de pulso por ejemplo: pacmd set-card-profile 0 output:hdmi-stereo.

Acerca de ejecutar script después de suspender: ¿ Ejecutar script en Wakeup?

Acerca de ejecutar pacmd como root: [Resuelto] Controle pulseaudio con script de shell a través de pacmd / Newbie Corner / Arch Linux Forums:

Grzegorz
fuente
2

Correr:

$ pacmd list-cards

Para mostrar el índice de sus tarjetas. Por ejemplo, mi tarjeta de sonido pci está en el índice 2. Se llama al perfil de sonido para salida analógica (nuevamente como ejemplo) output:analog-stereo.

Luego:

$ pacmd set-card-profile 2 output:analog-stereo

Para establecer esto como la salida (pruébalo). Para hacerlo permanente, edite /etc/pulse/default.pay agregue:

set-card-profile 2  output:analog-stereo
set-default-sink 2

Reinicie pulseaudio o reinicie para verificar la persistencia.

Jonathan Deal
fuente
El audio HDMI siempre fue persistente como predeterminado al reiniciar, solo cambia a los altavoces incorporados después de un reinicio del modo de suspensión. Hacer lo que dice no impide que el hdmi cambie a altavoces incorporados después de despertarse. ¿Hay alguna manera de ejecutar el comando set-card-profile cuando el sistema se reanuda de la suspensión?
MattJC
2

Este problema puede estar relacionado con un problema con Pulseaudio, versión 8, como se describe en este hilo de error (largo) en freedesktop.org .

Básicamente, Pulseaudio redirige el sonido cuando pierde contacto con HDMI y no lo devuelve después de que HDMI se vuelve a conectar. Está arreglado en la versión 9.

Para devolver la versión 8 al comportamiento de versiones anteriores, siga estas instrucciones y reinicie.

editar /etc/pulse/default.papara comentar (agregar #al inicio de) la línea:

#load-module module-switch-on-port-available

Luego configure la salida de sonido en Configuración de sonido y verifique que persista suspendiendo / reanudando o borrando la pantalla. A mí me funcionó.

Paul H.
fuente
@PaulH. , @Toilal ¿Cómo editaste el /etc/pulse/default.paarchivo? sudo geditno funciona para mi
Py-ser
usogksu gedit /etc/pulse/default.pa
rubo77
Ya estaba comentado - ¡SNIF! pero el comando ... pulseaudio --kill ..... funciona bien!
markackerman8-gmail.com
1

Lo mismo me sucede, pero solo si el monitor HDMI no está "despierto" cuando el sistema operativo se inicia o se reanuda: la lista de dispositivos en Configuración> Sonido ya ni siquiera muestra HMDI / DisplayPort - Audio incorporado .

La solución para mí es suspender la sesión, asegurar que el monitor HDMI esté encendido, reanudar la sesión.

Suspender en Ubuntu 18.04 LTS está algo oculto detrás del botón PowerOff en el menú desplegable: mantenga presionado el mouse sobre él o presione Altpara convertir el botón PowerOff en Suspender. ¡Habla sobre navegación oculta!

mr0
fuente
+1, y gracias por describir cómo encontrar la suspensión oculta. ¡Algunos (que tal vez tengan una terminal abierta tal vez) pueden preferir ejecutar el comando en su systemctl suspendlugar!
Zanna
Lo siento amigos, tengo que votar en contra de mi propio comentario, ya que parece completamente aleatorio: si HDMI Audio aparece en la lista de dispositivos de sonido o no :(
mr0
1

Arreglando PulseAudio apagando el sonido HDMI en Suspender

Esta "característica no documentada" apareció con Ubuntu 16.04 y la nueva versión de PulseAudio 8.

Cree un nuevo archivo /lib/systemd/system-sleep/tv-soundy copie en:

#!/bin/sh

case $1/$2 in
  pre/*)
    echo "Going to $2..."
    # Place your pre suspend commands here, or `exit 0`
    # if no pre suspend action required
    sleep 1
    ;;
  post/*)
    echo "Waking up from $2..."
    # Place your post suspend (resume) commands here, or `exit 0` 
    # if no post suspend action required
    sleep 2
    export PULSE_RUNTIME_PATH="/run/user/1000/pulse/"
    sudo -u rick -E pacmd set-card-profile 0 output:hdmi-stereo
    ;;
esac

NOTA: reemplace el nombre de usuario rick(tercera línea desde abajo) con su nombre de usuario.

Luego márquelo como ejecutable con el comando:

sudo chmod +x /lib/systemd/system-sleep/tv-sound

Es posible que se requiera un paso adicional si output:hdmi-stereo(el dispositivo para la mayoría de las personas) es diferente en su sistema.

WinEunuuchs2Unix
fuente
lo siento, pero esto no lo solucionó. ¿Tengo que hacer más que esto? reiniciar algo? (No quiero reiniciar, porque eso soluciona el problema en mi sistema de todos modos)
rubo77
@ rubo77 ¿Cambió su ID de usuario ricka su propia ID de usuario?
WinEunuuchs2Unix
Seguro. Como dijiste 😃
rubo77
0

He tenido este problema desde Ubuntu 9.04. Nunca ha funcionado y ahora que los niños que acaban de recibir HDMI o Ubuntu obtienen que el problema es algo nuevo, las personas que intentan ver los últimos cambios en la configuración están siendo engañados. Permítanme aclarar esto: este problema siempre ha estado presente y nadie está trabajando en ello. He pasado al menos 20 horas investigando este problema. Entonces, lo que he hecho en el pasado:

  1. Reiniciar
  2. Al encender el televisor (objetivo HDMI), si muevo el mouse en el momento justo, restaura el sonido tal vez el 50% del tiempo. Este es un problema relacionado con el tiempo / apretón de manos.
  3. En Ubuntu 14, cambiaría la resolución de la pantalla a algo diferente y luego volvería. Esto no parece funcionar con Ubuntu 16
  4. No dejes que hiberne. Una alternativa es simplemente hacer un apagado programado. Más tarde, simplemente inicia su computadora en lugar de reiniciar. Recuerde que este es un problema de TEMPORIZACIÓN, por lo que supongo que cualquiera de las ideas aquí puede funcionar si la temporización activa su sistema correctamente.
Invitado
fuente