Suara saya berhenti bekerja hari ini, bagaimana saya bisa memperbaikinya?


19

Ini sepertinya menjadi masalah dengan pulseaudio. Saya login melalui VNC di ponsel saya dan mulai memutar video yang menyebabkan X mogok (seperti yang kadang-kadang terjadi). Saya memulai kembali dan tiba-tiba suaranya tidak bekerja.

  • Saya memiliki Intel HDA / Realtek ALC889

    00:1b.0 Audio device: Intel Corporation 82801JI (ICH10 Family) HD Audio Controller
    
  • alsamixer mendeteksi ini baik-baik saja.
  • PulseAudio tidak mendeteksi perangkat alsa ini sehingga digunakan auto_nullsebagai bak cuci default (log di bawah).
  • Ketika saya benar-benar membunuh PulseAudio (katakan untuk tidak memulai otomatis) komunikasi ALSA langsung dengan kartu suara berfungsi dengan baik. speaker-test, misalnya, berfungsi. Jadi perangkat keras dan lapisan ALSA IMO baik-baik saja.
  • Dalam log, tampaknya kartu itu mungkin "sibuk" tetapi saya benar-benar tidak tahu bagaimana atau mengapa sekarang (dan tidak pernah sebelumnya). Apakah ada file kunci ALSA di suatu tempat yang masih ada karena kecelakaan saya?
  • Saya hanya berlari sudo fuser /dev/snd/*dan melihat ini:

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

    Melihat daftar proses ( ps aux | grep 1884) memberitahu saya proses 1884 adalah arecord -c 1 -f S16_LE -r 8000 -t raw. Tidak tahu apa ini atau mengapa ini berjalan.

  • Ketika saya mencoba dan membunuh arecord(sebagai root), itu hanya respawn dan rebind pada perangkat keras.

Saya berada dalam situasi yang sangat menjengkelkan di mana saya tidak tahu apa yang sedang terjadi dan tidak tahu bagaimana mengetahuinya. Saya terbuka untuk semua saran agar ini berfungsi lagi. Menembakkan.

Dan inilah yang saya dapatkan ketika saya menghentikan pengisian otomatis PA, bunuh dan mulai dengan -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

Perhatikan satu bagian yang tampaknya menemukan perangkat keras tetapi mengatakan sedang sibuk (tidak tahu apakah ini relevan).

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.

mencoba mv ~ / .pulse?
Takkat

@ Takkat ya, saya rm -rfmelakukannya dan reboot untuk keberuntungan. Ternyata aku tidak beruntung hari ini :(
Oli

Jawaban:


10

SABAS

Kanan. arecordadalah elemen yang tampak cerdik di sini yang akhirnya saya temukan melalui fuserfile suara (lihat pertanyaan saya untuk proses saya). Tetapi saya tidak dapat menemukan apa yang menyebabkan arecordmulai sebagai root saat boot. Begini cara saya melakukan itu:

  1. Menjalankan pstree | less
  2. Di dalamnya, ketik /arecorddan tekan kembali untuk menemukan arecordproses.
  3. Tekan sekali dan Anda akan melihat induknya. Dalam kasus saya ini randomsound.

Saya memasang randomsoundbeberapa hari yang lalu untuk menghasilkan entropi ekstra (untuk regenerasi /dev/random) menggunakan kartu suara saya. Saya benar-benar lupa itu diinstal dan saya kira ini adalah pertama kalinya saya me-restart sejak menginstalnya.

Singkatnya sudo apt-get remove randomsoundmemperbaikinya. PulseAudio sekarang dapat mengambil kartu suara saya dan saya dapat mendengarkan beberapa europop sampah saat saya bekerja.



Apa f * ck ... Menjalankan perintah, dan boom, suara bekerja secara instan. Terima kasih banyak, saya tidak akan pernah tahu ini!
Rob

6

Ini sering terjadi pada saya saat bereksperimen bahwa pulseaudio menjadi pisang karena alasan yang tidak jelas. Saya menyimpan pengguna kedua di host saya yang saya gunakan untuk memeriksa silang apakah masalahnya terkait sistem atau terkait pengguna: dalam kasus pertama kedua pengguna akan menunjukkan masalah, di yang terakhir hanya satu atau yang lain. Jika masalahnya tergantung pada pengguna, maka itu akan menjadi sesuatu yang salah di folder rumah. Dengan audio pulsa kemudian ~/.pulseatau ~/.config/pulse. mengganti nama mereka, seperti misalnya _broken, memungkinkan pulseaudio untuk membuat ulang dengan benar jika Anda logout dan kembali. Ini berfungsi sebagian besar waktu dengan saya.


Ini bekerja untuk saya, dan tanpa perlu keluar / masuk. Saya mengganti nama folder ~ / .config / pulse, dan yang baru segera dibuat, dan saya bisa memilih perangkat output saya dan sekarang 100% berfungsi.
robm

0

Sementara saya mencari berjam-jam mencari jawaban, saya mencoba me-reboot dll. Tidak ada yang berhasil, sampai saya mengetik perintah ini:

sudo arecord killall

memperbaiki suara saya, saya telah mencari solusi untuk masalah ini di mana-mana, jadi saya pikir saya akan memposting solusi saya. Semoga berhasil!


3
Recording WAVE 'killall', bagus
Nearoo
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.