20 votes

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é par VNC sur mon téléphone et j'ai commencé à lire une vidéo, ce qui a fait planter 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 évier par défaut (logs ci-dessous).

  • Lorsque je tue correctement PulseAudio (en lui disant de ne pas se lancer automatiquement), la communication ALSA directe avec la carte son fonctionne parfaitement. speaker-test par exemple, fonctionne. Donc, les couches matérielles et ALSA sont bonnes, selon l'IMO.

  • 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). Y a-t-il un fichier de verrouillage ALSA quelque part qui est toujours là à cause de mon crash ?

  • J'ai juste couru sudo fuser /dev/snd/* et j'ai vu ça :

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

    Un coup d'œil à 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 fonctionne.

  • Quand j'essaie de tuer arecord (en tant que root), il se réinitialise et se réinscrit sur le matériel.

Je suis dans une situation très ennuyeuse où je ne sais pas ce qui se passe et je ne sais pas comment le découvrir. Je suis ouvert à toutes les suggestions pour que cela fonctionne à nouveau. Envoyez vos suggestions.

Et voici ce que j'obtiens quand j'arrête le chargement automatique de PA, que je le tue et que je le démarre 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 qui indique qu'elle est occupée (je ne sais pas si c'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.

11voto

Mufaka Points 54

HUZZAH

Bien. arecord était l'élément à l'aspect douteux que j'ai fini par trouver grâce à fuser les fichiers sonores (voir ma question pour connaître ma démarche). Mais je n'ai pas pu trouver ce qui causait arecord pour démarrer en tant que root au démarrage. Voici comment j'ai fait :

  1. Ejecutar pstree | less
  2. Dans ce cas, tapez /arecord et appuyez sur retour pour trouver le arecord processus.
  3. Appuyez une fois sur le haut et vous verrez son parent. Dans mon cas, c'était randomsound .

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

En bref sudo apt-get remove randomsound Je l'ai réparé. PulseAudio peut maintenant s'emparer de ma carte son et je peux écouter de l'europop trash pendant que je travaille.

6voto

wickdninja Points 101

Il m'arrive souvent en expérimentant que pulseaudio se déchaîne 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 montreront des problèmes, dans le second, seulement l'un ou l'autre. Si le problème dépend de l'utilisateur, alors il s'agira d'un problème dans le dossier personnel. Avec pulse audio, c'est alors ~/.pulse o ~/.config/pulse . les renommer, comme par exemple _broken, permet à pulseaudio de les régénérer correctement si vous vous déconnectez et vous reconnectez. Cela fonctionne la plupart du temps avec moi.

0voto

Linuxxer28 Points 1

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

sudo killall arecord

J'ai cherché des solutions pour ce problème partout, alors j'ai pensé poster ma solution. Bonne chance !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X