it-swarm.com.de

Mein Sound hat heute aufgehört zu funktionieren. Wie kann ich ihn beheben?

Dies scheint ein Problem mit pulseaudio zu sein. Ich war über VNC auf meinem Telefon angemeldet und habe angefangen, ein Video abzuspielen. Dies führte zum Absturz von X (wie es manchmal vorkommt). Ich habe neu gestartet und plötzlich funktioniert der Ton nicht mehr.

  • Ich habe einen Intel HDA/Realtek ALC889

    00:1b.0 Audio device: Intel Corporation 82801JI (ICH10 Family) HD Audio Controller
    
  • alsamixer erkennt dies in Ordnung.
  • PulseAudio erkennt dieses alsa Gerät nicht und verwendet auto_null als Standardsenke (Protokolle unten).
  • Wenn ich PulseAudio richtig beendet habe (weise es an, nicht automatisch zu starten), funktioniert die direkte ALSA-Kommunikation mit der Soundkarte einwandfrei. speaker-test funktioniert beispielsweise. Also die Hardware- und ALSA-Schichten sind in Ordnung, IMO.
  • In den Protokollen scheint es, dass die Karte "beschäftigt" ist, aber ich weiß wirklich nicht, wie oder warum sie jetzt (und nie zuvor) sein würde. Gibt es irgendwo eine ALSA-Sperrdatei, die es wegen meines Absturzes noch gibt?
  • Ich habe gerade Sudo fuser /dev/snd/* ausgeführt und Folgendes gesehen:

    [email protected]:~$ Sudo fuser /dev/snd/*
    /dev/snd/controlC0:   1884
    /dev/snd/pcmC0D0c:    1884m
    /dev/snd/timer:       1884
    

    Ein Blick auf die Prozessliste (ps aux | grep 1884) zeigt mir, dass Prozess 1884 arecord -c 1 -f S16_LE -r 8000 -t raw ist. Keine Ahnung was das ist oder warum es läuft.

  • Wenn ich versuche, arecord (als root) zu töten, wird die Hardware neu gestartet und neu gebunden.

Ich bin in einer sehr ärgerlichen Situation, in der ich nicht weiß, was los ist und nicht weiß, wie ich es herausfinden soll. Ich bin offen für alle Vorschläge, um dies wieder zum Laufen zu bringen. Feuer weg.

Und hier ist, was ich bekomme, wenn ich das automatische Laden von PA stoppe, töte und es dann mit -vvvv starte.

[email protected]:~$ 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

Beachten Sie den einen Abschnitt, der die Hardware zu finden scheint, aber angibt, dass sie ausgelastet ist (keine Ahnung, ob dies relevant ist).

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

Richtig. arecord war das zwielichtig aussehende Element hier, das ich schließlich durch fuser die Sounddateien gefunden habe (siehe meine Frage für meinen Prozess). Aber ich konnte nicht finden, was dazu führte, dass arecord beim Booten als root gestartet wurde. So habe ich das gemacht:

  1. pstree | less ausführen
  2. Geben Sie /arecord ein und drücken Sie die Eingabetaste, um den arecord -Prozess zu suchen.
  3. Drücken Sie einmal nach oben und Sie sehen das übergeordnete Element. In meinem Fall war dies randomsound.

Ich habe randomsound vor einigen Tagen installiert, um mithilfe meiner Soundkarte eine zusätzliche Entropie (zum Regenerieren von /dev/random) zu erzeugen. Ich hatte völlig vergessen, dass es installiert wurde und ich denke, dies war das erste Mal, dass ich seit der Installation neu gestartet habe.

Kurz, Sudo apt-get remove randomsound hat es behoben. PulseAudio kann jetzt meine Soundkarte greifen und ich kann mir während der Arbeit trashiges Europop anhören.

10
Oli

Es passiert mir oft beim Experimentieren, dass pulseaudio aus obskuren Gründen zu Bananen wird. Ich behalte einen zweiten Benutzer auf meinem Host, mit dem ich überprüfe, ob das Problem system- oder benutzerbezogen ist: Im ersten Fall zeigen beide Benutzer Probleme, im letzteren nur den einen oder anderen. Wenn das Problem benutzerabhängig ist, liegt ein Fehler im Basisordner vor. Bei Pulse ist Audio dann ~/.Pulse oder ~/.config/Pulse. Das Umbenennen dieser Dateien, wie zum Beispiel _broken, ermöglicht pulseaudio, sie korrekt zu regenerieren, wenn Sie sich abmelden und wieder anmelden. Es funktioniert die meiste Zeit mit mir.

6
Andrea Borga

Während ich stundenlang online nach einer Antwort suchte, versuchte ich ect neu zu starten. Nichts funktionierte, bis ich diesen Befehl eingab:

Sudo arecord killall

mein Sound wurde repariert. Ich habe überall nach Lösungen für dieses Problem gesucht, also dachte ich, ich würde meine Lösung posten. Viel Glück!

0
Linuxxer28