Mi sonido dejó de funcionar hoy, ¿cómo puedo solucionarlo?

19

Esto parece ser un problema con pulseaudio. Estaba conectado a través de VNC en mi teléfono y comencé a reproducir un video que causó que X se bloqueara (como a veces sucede). Reinicié y de repente el sonido no funciona.

  • Tengo un Intel HDA / Realtek ALC889

    00:1b.0 Audio device: Intel Corporation 82801JI (ICH10 Family) HD Audio Controller
    
  • alsamixer está detectando esto muy bien.
  • PulseAudio no detecta este dispositivo, por lo que lo está utilizando auto_nullcomo el sumidero predeterminado (registra a continuación).
  • Cuando elimino correctamente PulseAudio (le digo que no se inicie automáticamente), la comunicación directa de ALSA con la tarjeta de sonido funciona bien. speaker-test, por ejemplo, obras. Por lo tanto, las capas de hardware y ALSA están bien IMO.
  • En los registros, parece que la tarjeta podría estar "ocupada", pero realmente no sé cómo ni por qué estaría ahora (y nunca antes). ¿Hay un archivo de bloqueo ALSA en algún lugar que todavía esté allí debido a mi bloqueo?
  • Simplemente corrí sudo fuser /dev/snd/*y vi esto:

    oli@bert:~$ sudo fuser /dev/snd/*
    /dev/snd/controlC0:   1884
    /dev/snd/pcmC0D0c:    1884m
    /dev/snd/timer:       1884
    

    Un vistazo a la lista de procesos ( ps aux | grep 1884) me dice que el proceso 1884 es arecord -c 1 -f S16_LE -r 8000 -t raw. No tengo idea de qué es esto o por qué se está ejecutando.

  • Cuando intento matar arecord(como root), solo reaparece y se vuelve a unir en el hardware.

Estoy en una situación muy molesta en la que no sé qué está pasando y no sé cómo averiguarlo. Estoy abierto a todas las sugerencias para que esto vuelva a funcionar. Disparar lejos.

Y esto es lo que obtengo cuando detengo la carga automática de PA, lo mato y luego lo inicio -vvvv.

oli@bert:~$ pulseaudio -vvvvv
I: main.c: setrlimit(RLIMIT_NICE, (31, 31)) failed: Operation not permitted
I: main.c: setrlimit(RLIMIT_RTPRIO, (9, 9)) failed: Operation not permitted
D: core-rtclock.c: Timer slack is set to 50 us.
D: core-util.c: RealtimeKit worked.
I: core-util.c: Successfully gained nice level -11.
I: main.c: This is PulseAudio 0.9.21-63-gd3efa-dirty
D: main.c: Compilation host: x86_64-pc-linux-gnu
D: main.c: Compilation CFLAGS: -g -O2 -g -Wall -O3 -Wall -W -Wextra -pipe -Wno-long-long -Winline -Wvla -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing=2 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option
D: main.c: Running on host: Linux x86_64 2.6.38-rc3 #1 SMP Tue Feb 1 10:53:04 GMT 2011
D: main.c: Found 8 CPUs.
I: main.c: Page size is 4096 bytes
D: main.c: Compiled with Valgrind support: no
D: main.c: Running in valgrind mode: no
D: main.c: Running in VM: no
D: main.c: Optimised build: yes
D: main.c: All asserts enabled.
I: main.c: Machine ID is 8310740c4729ef474fe5ecec4bbf5a6b.
I: main.c: Session ID is 8310740c4729ef474fe5ecec4bbf5a6b-1297338553.571075-1050119523.
I: main.c: Using runtime directory /home/oli/.pulse/8310740c4729ef474fe5ecec4bbf5a6b-runtime.
I: main.c: Using state directory /home/oli/.pulse.
I: main.c: Using modules directory /usr/lib/pulse-0.9.21/modules.
I: main.c: Running in system mode: no
I: main.c: Fresh high-resolution timers available! Enjoy ol' chap!
I: cpu-x86.c: CPU flags: CMOV MMX SSE SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 
I: svolume_mmx.c: Initialising MMX optimized functions.
I: remap_mmx.c: Initialising MMX optimized remappers.
I: svolume_sse.c: Initialising SSE2 optimized functions.
I: remap_sse.c: Initialising SSE2 optimized remappers.
I: sconv_sse.c: Initialising SSE2 optimized conversions.
D: memblock.c: Using shared memory pool with 1024 slots of size 64.0 KiB each, total size is 64.0 MiB, maximum usable slot size is 65472
D: database-tdb.c: Opened TDB database '/home/oli/.pulse/8310740c4729ef474fe5ecec4bbf5a6b-device-volumes.tdb'
I: module-device-restore.c: Sucessfully opened database file '/home/oli/.pulse/8310740c4729ef474fe5ecec4bbf5a6b-device-volumes'.
I: module.c: Loaded "module-device-restore" (index: #0; argument: "").
D: database-tdb.c: Opened TDB database '/home/oli/.pulse/8310740c4729ef474fe5ecec4bbf5a6b-stream-volumes.tdb'
I: module-stream-restore.c: Sucessfully opened database file '/home/oli/.pulse/8310740c4729ef474fe5ecec4bbf5a6b-stream-volumes'.
I: module.c: Loaded "module-stream-restore" (index: #1; argument: "").
D: database-tdb.c: Opened TDB database '/home/oli/.pulse/8310740c4729ef474fe5ecec4bbf5a6b-card-database.tdb'
I: module-card-restore.c: Sucessfully opened database file '/home/oli/.pulse/8310740c4729ef474fe5ecec4bbf5a6b-card-database'.
I: module.c: Loaded "module-card-restore" (index: #2; argument: "").
I: module.c: Loaded "module-augment-properties" (index: #3; argument: "").
D: cli-command.c: Checking for existance of '/usr/lib/pulse-0.9.21/modules/module-udev-detect.so': success
D: module-udev-detect.c: /dev/snd/controlC0 is accessible: yes
D: module-udev-detect.c: /devices/pci0000:00/0000:00:1b.0/sound/card0 is busy: yes
I: module-udev-detect.c: Found 1 cards.
I: module.c: Loaded "module-udev-detect" (index: #4; argument: "").
D: cli-command.c: Checking for existance of '/usr/lib/pulse-0.9.21/modules/module-bluetooth-discover.so': success
D: dbus-util.c: Successfully connected to D-Bus system bus ba7c9a1f90b3d49d930bca2100000015 as :1.62
D: bluetooth-util.c: dbus: interface=org.freedesktop.DBus, path=/org/freedesktop/DBus, member=NameAcquired
D: bluetooth-util.c: Bluetooth daemon is apparently not available.
I: module.c: Loaded "module-bluetooth-discover" (index: #5; argument: "").
D: cli-command.c: Checking for existance of '/usr/lib/pulse-0.9.21/modules/module-esound-protocol-unix.so': success
I: module.c: Loaded "module-esound-protocol-unix" (index: #6; argument: "").
I: module.c: Loaded "module-native-protocol-unix" (index: #7; argument: "").
D: cli-command.c: Checking for existance of '/usr/lib/pulse-0.9.21/modules/module-gconf.so': success
I: module.c: Loaded "module-gconf" (index: #8; argument: "").
I: module-default-device-restore.c: Saved default sink 'auto_null' not existant, not restoring default sink setting.
I: module-default-device-restore.c: Saved default source 'auto_null.monitor' not existant, not restoring default source setting.
I: module.c: Loaded "module-default-device-restore" (index: #9; argument: "").
I: module.c: Loaded "module-rescue-streams" (index: #10; argument: "").
D: module-always-sink.c: Autoloading null-sink as no other sinks detected.
I: sink.c: Created sink 0 "auto_null" with sample spec s16le 6ch 44100Hz and channel map front-left,front-left-of-center,front-center,front-right,front-right-of-center,rear-center
I: sink.c:     device.description = "Dummy Output"
I: sink.c:     device.class = "abstract"
I: sink.c:     device.icon_name = "audio-card"
D: core-subscribe.c: Dropped redundant event due to change event.
I: source.c: Created source 0 "auto_null.monitor" with sample spec s16le 6ch 44100Hz and channel map front-left,front-left-of-center,front-center,front-right,front-right-of-center,rear-center
I: source.c:     device.description = "Monitor of Dummy Output"
I: source.c:     device.class = "monitor"
I: source.c:     device.icon_name = "audio-input-microphone"
D: module-null-sink.c: Thread starting up
I: module.c: Loaded "module-null-sink" (index: #11; argument: "sink_name=auto_null sink_properties='device.description="Dummy Output"'").
I: module.c: Loaded "module-always-sink" (index: #12; argument: "").
I: module.c: Loaded "module-intended-roles" (index: #13; argument: "").
D: module-suspend-on-idle.c: Sink auto_null becomes idle, timeout in 5 seconds.
I: module.c: Loaded "module-suspend-on-idle" (index: #14; argument: "").
I: client.c: Created 0 "ConsoleKit Session /org/freedesktop/ConsoleKit/Session1"
D: module-console-kit.c: Added new session /org/freedesktop/ConsoleKit/Session1
I: module.c: Loaded "module-console-kit" (index: #15; argument: "").
I: module.c: Loaded "module-position-event-sounds" (index: #16; argument: "").
D: dbus-util.c: Successfully connected to D-Bus session bus efbffc6788fad56cfd64d40c00000018 as :1.182
D: main.c: Got org.pulseaudio.Server!
I: main.c: Daemon startup complete.
I: client.c: Created 1 "Native client (UNIX socket client)"
I: client.c: Created 2 "Native client (UNIX socket client)"
D: protocol-native.c: Protocol version: remote 16, local 16
I: protocol-native.c: Got credentials: uid=1000 gid=1000 success=1
D: protocol-native.c: SHM possible: yes
D: protocol-native.c: Negotiated SHM: yes
D: protocol-native.c: Protocol version: remote 16, local 16
I: protocol-native.c: Got credentials: uid=1000 gid=1000 success=1
D: protocol-native.c: SHM possible: yes
D: protocol-native.c: Negotiated SHM: yes
D: module-augment-properties.c: Looking for .desktop file for gnome-volume-control-applet
D: module-augment-properties.c: Looking for .desktop file for gnome-settings-daemon
D: core-subscribe.c: Dropped redundant event due to change event.
I: module-suspend-on-idle.c: Sink auto_null idle for too long, suspending ...
D: sink.c: Suspend cause of sink auto_null is 0x0004, suspending

Tenga en cuenta la sección que parece encontrar el hardware pero dice que está ocupado (no tengo idea si esto es relevante).

D: cli-command.c: Checking for existance of '/usr/lib/pulse-0.9.21/modules/module-udev-detect.so': success
D: module-udev-detect.c: /dev/snd/controlC0 is accessible: yes
D: module-udev-detect.c: /devices/pci0000:00/0000:00:1b.0/sound/card0 is busy: yes
I: module-udev-detect.c: Found 1 cards.
Oli
fuente
intentado mv ~ / .pulse?
Takkat
@Takkat sí, lo hice rm -rfy reinicié por suerte. Resulta que hoy no tengo suerte :(
Oli

Respuestas:

10

HUZZAH

Correcto. arecordfue el elemento de aspecto dudoso aquí que finalmente encontré a través fuserde los archivos de sonido (vea mi pregunta para mi proceso). Pero no pude encontrar lo que estaba causando arecordque se iniciara como root en el arranque. Así es como hice eso:

  1. correr pstree | less
  2. En eso, escriba /arecordy presione Intro para buscar el arecordproceso.
  3. Presione hacia arriba una vez y verá su padre. En mi caso esto fue randomsound.

Lo instalé randomsoundhace unos días para generar entropía adicional (para regenerar /dev/random) usando mi tarjeta de sonido. Había olvidado por completo que estaba instalado y creo que esta fue la primera vez que reinicié desde que lo instalé.

En resumen lo sudo apt-get remove randomsoundarregló. PulseAudio ahora puede tomar mi tarjeta de sonido y puedo escuchar un europop basura mientras trabajo.

Oli
fuente
Qué demonios ... Ejecuté el comando, y boom, el sonido funciona al instante. ¡Muchas gracias, nunca habría descubierto esto!
Rob el
6

Me sucede mucho mientras experimento que pulseaudio se vuelve loco por razones oscuras. Mantengo un segundo usuario en mi host que utilizo para verificar si el problema está relacionado con el sistema o con el usuario: en el primer caso, ambos usuarios mostrarán problemas, en el último solo uno u otro. Si el problema depende del usuario, entonces habrá algo mal en la carpeta de inicio. Con pulso de audio es entonces ~/.pulseo ~/.config/pulse. renombrarlos, como por ejemplo _broken, permite que pulseaudio los regenere correctamente si cierra la sesión y vuelve a ingresar. Funciona la mayor parte del tiempo conmigo.

Andrea Borga
fuente
Esto funcionó para mí y sin la necesidad de cerrar sesión / iniciar sesión. Cambié el nombre de la carpeta ~ / .config / pulse, y se generó una nueva de inmediato, y pude seleccionar mi dispositivo de salida y ahora funciona al 100%.
robo
0

Mientras buscaba horas y horas en línea para obtener una respuesta, intenté reiniciar ect. Nada funcionó, hasta que escribí este comando:

sudo arecord killall

arreglé mi sonido, he estado buscando soluciones para este problema en todas partes, así que pensé en publicar mi solución. ¡Buena suerte!

Linuxxer28
fuente
3
Recording WAVE 'killall', agradable
Nearoo