web-dev-qa-db-fra.com

Mon son a cessé de fonctionner aujourd'hui, comment puis-je le réparer?

Cela semble être un problème avec pulseaudio. J'étais connecté via VNC sur mon téléphone et la lecture d'une vidéo entraînait le blocage de X (comme cela arrive parfois). J'ai redémarré et soudain le son ne fonctionne plus.

  • J'ai un Intel HDA/Realtek ALC889

    00:1b.0 Audio device: Intel Corporation 82801JI (ICH10 Family) HD Audio Controller
    
  • alsamixer le détecte très bien.
  • PulseAudio ne détecte pas ce périphérique alsa et utilise donc auto_null comme récepteur par défaut (journaux ci-dessous).
  • Lorsque je supprime correctement PulseAudio (lui dit de ne pas démarrer automatiquement), la communication directe ALSA avec la carte son fonctionne très bien. speaker-test, par exemple, fonctionne. Donc, le matériel et les couches ALSA conviennent parfaitement.
  • Dans les journaux, il semble que la carte soit "occupée" mais je ne sais vraiment pas comment ni pourquoi elle le serait maintenant (et jamais auparavant). Existe-t-il un fichier de verrouillage ALSA quelque part qui existe toujours à cause de mon plantage?
  • Je viens de lancer Sudo fuser /dev/snd/* et j'ai vu ceci:

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

    Un coup d’oeil à la liste des processus (ps aux | grep 1884) me dit que le processus 1884 est arecord -c 1 -f S16_LE -r 8000 -t raw. Aucune idée de ce que c'est ou pourquoi ça marche.

  • Lorsque j'essaie de tuer arecord (en tant que root), il ne fait que respawns et rebind sur le matériel.

Je suis dans une situation très agaçante où je ne sais pas ce qui se passe et comment savoir. Je suis ouvert à toutes les suggestions pour que cela fonctionne à nouveau. Feu loin.

Et voici ce que je reçois quand j'arrête le chargement automatique de PA, le tue et le lance ensuite avec -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

Notez la section qui semble trouver le matériel mais dit qu'il est occupé (aucune idée si cela est pertinent).

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.
19
Oli

HUZZAH

Droite. arecord est l'élément louche que j'ai finalement trouvé grâce à fusering dans les fichiers son (voir ma question pour mon traitement). Mais je ne pouvais pas trouver ce qui causait arecord à démarrer en tant que root au démarrage. Voici comment j'ai fait ça:

  1. Exécutez pstree | less
  2. Dans cela, tapez /arecord et appuyez sur Entrée pour rechercher le processus arecord.
  3. Appuyez une fois et vous verrez son parent. Dans mon cas, c'était randomsound.

J'ai installé randomsound il y a quelques jours pour générer une entropie supplémentaire (pour régénérer le /dev/random) à l'aide de ma carte son. J'avais complètement oublié qu'il était installé et je suppose que c'est la première fois que je le redémarre depuis son installation.

En bref, Sudo apt-get remove randomsound l'a corrigé. PulseAudio peut maintenant récupérer ma carte son et je peux écouter un peu d'europop trash pendant que je travaille.

10
Oli

Il m’arrive beaucoup en expérimentant que pulseaudio se lance dans la banane pour des raisons obscures. Je garde un deuxième utilisateur sur mon hôte que j'utilise pour vérifier si le problème est lié au système ou à l'utilisateur: dans le premier cas, les deux utilisateurs afficheront des problèmes, dans le dernier cas, l'un ou l'autre. Si le problème dépend de l'utilisateur, il y aura un problème dans le dossier de base. Avec Pulse, audio est alors ~/.Pulse ou ~/.config/Pulse. renommer ceux-ci, comme par exemple _broken, permet à pulseaudio de les régénérer correctement si vous vous déconnectez puis revenez. Cela fonctionne la plupart du temps avec moi.

6
Andrea Borga

Pendant que je cherchais une réponse en ligne pendant des heures et des heures, j'ai essayé de redémarrer ect .. Rien ne fonctionnait, jusqu'à ce que je tape cette commande:

Sudo arecord killall

j'ai réparé mon son, je cherchais partout des solutions à ce problème et j'ai donc pensé poster ma solution. Bonne chance!

0
Linuxxer28