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

19

Cela semble être un problème avec pulseaudio. J'étais connecté via VNC sur mon téléphone et j'ai commencé à lire une vidéo, ce qui a provoqué le crash de X (comme cela arrive parfois). J'ai redémarré et tout à coup le son ne fonctionne pas.

  • J'ai un Intel HDA / Realtek ALC889

    00:1b.0 Audio device: Intel Corporation 82801JI (ICH10 Family) HD Audio Controller
    
  • alsamixer détecte très bien cela.
  • PulseAudio ne détecte pas cet appareil alsa et l'utilise donc auto_nullcomme récepteur par défaut (journaux ci-dessous).
  • Lorsque je tue correctement PulseAudio (dites-lui de ne pas démarrer automatiquement), la communication directe ALSA avec la carte son fonctionne très bien. speaker-test, par exemple, fonctionne. Ainsi, le matériel et les couches ALSA sont très bien OMI.
  • 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 qu'il est toujours là à cause de mon crash?
  • Je viens de courir 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 regard sur 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.

  • Lorsque j'essaie de tuer arecord(en tant que root), il réapparaît et se réassigne simplement 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. Tirez loin.

Et voici ce que j'obtiens lorsque j'arrête le chargement automatique de l'AP, le tue puis 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 seule section qui semble trouver le matériel mais qui dit qu'elle est occupée (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.
Oli
la source
essayé mv ~ / .pulse?
Takkat
@Takkat ouais, je rm -rfl' ai fait et redémarré pour la chance. Il s'avère que je n'ai pas de chance aujourd'hui :(
Oli

Réponses:

10

HUZZAH

Droite. arecordétait l'élément douteux ici que j'ai finalement trouvé grâce fuseraux fichiers audio (voir ma question pour mon processus). Mais je n'ai pas trouvé ce qui provoquait arecordle démarrage en tant que root au démarrage. Voici comment j'ai fait ça:

  1. Courir pstree | less
  2. Dans cela, tapez /arecordet appuyez sur Retour pour trouver le arecordprocessus.
  3. Appuyez une fois et vous verrez son parent. Dans mon cas, c'était le cas randomsound.

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

En bref, sudo apt-get remove randomsoundil l'a corrigé. PulseAudio peut maintenant saisir ma carte son et je peux écouter de l'europop trash pendant que je travaille.

Oli
la source
What the f * ck ... Ran la commande, et boom, le son fonctionne instantanément. Merci beaucoup, je n'aurais jamais compris ça!
Rob
6

Cela m'arrive beaucoup en expérimentant que pulseaudio devient 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 ce dernier seulement l'un ou l'autre. Si le problème dépend de l'utilisateur, il y aura un problème dans le dossier d'accueil. Avec impulsion audio est alors ~/.pulseou ~/.config/pulse. renommer ceux-ci, 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.

Andrea Borga
la source
Cela a fonctionné pour moi, et sans avoir besoin de se déconnecter / se connecter. J'ai renommé le dossier ~ / .config / pulse, et un nouveau a été immédiatement généré, et j'ai pu sélectionner mon périphérique de sortie et fonctionne maintenant à 100%.
robm
0

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 arecord killall

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

Linuxxer28
la source
3
Recording WAVE 'killall', agréable
Nearoo