我的整个问题所基于的总体问题是关于 Linux 中的声音。我应该使用 alsa 还是pulse 还是什么?我现在正在使用pulse,这是我的问题:当我重新启动awesome 并发现声音不再起作用时,我正在配置awesome 并同时播放一些音乐。经过调试和挫折后,我重新启动,声音仍然不起作用。当在超级详细模式下运行时,pulseaudio 会给出很多输出(参见帖子底部),但我认为关键是:
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: no
D: module-udev-detect.c: /dev/snd/controlC29 is accessible: no
有什么猜测吗?
完整日志:
rob@lennyubuntu:~$ pulseaudio -vvvv
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: i486-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 i686 2.6.32-24-generic-pae #42-Ubuntu SMP Fri Aug 20 15:37:22 UTC 2010
D: main.c: Found 2 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: Optimized build: yes
D: main.c: All asserts enabled.
I: main.c: Machine ID is 37b1a2935e121fd776c640534c92c393.
I: main.c: Session ID is 37b1a2935e121fd776c640534c92c393-1284741785.538707-879649589.
I: main.c: Using runtime directory /home/rob/.pulse/37b1a2935e121fd776c640534c92c393-runtime.
I: main.c: Using state directory /home/rob/.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! Bon appetit!
I: cpu-x86.c: CPU flags: CMOV MMX SSE SSE2 SSE3 SSSE3 SSE4_1
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 65496
D: database-tdb.c: Opened TDB database '/home/rob/.pulse/37b1a2935e121fd776c640534c92c393-device-volumes.tdb'
I: module-device-restore.c: Sucessfully opened database file '/home/rob/.pulse/37b1a2935e121fd776c640534c92c393-device-volumes'.
I: module.c: Loaded "module-device-restore" (index: #0; argument: "").
D: database-tdb.c: Opened TDB database '/home/rob/.pulse/37b1a2935e121fd776c640534c92c393-stream-volumes.tdb'
I: module-stream-restore.c: Sucessfully opened database file '/home/rob/.pulse/37b1a2935e121fd776c640534c92c393-stream-volumes'.
I: module.c: Loaded "module-stream-restore" (index: #1; argument: "").
D: database-tdb.c: Opened TDB database '/home/rob/.pulse/37b1a2935e121fd776c640534c92c393-card-database.tdb'
I: module-card-restore.c: Sucessfully opened database file '/home/rob/.pulse/37b1a2935e121fd776c640534c92c393-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: no
D: module-udev-detect.c: /dev/snd/controlC29 is accessible: no
I: module-udev-detect.c: Found 2 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': failure
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: #5; argument: "").
I: module.c: Loaded "module-native-protocol-unix" (index: #6; argument: "").
D: cli-command.c: Checking for existance of '/usr/lib/pulse-0.9.21/modules/module-gconf.so': failure
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: #7; argument: "").
I: module.c: Loaded "module-rescue-streams" (index: #8; 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 2ch 44100Hz and channel map front-left,front-right
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 2ch 44100Hz and channel map front-left,front-right
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: #9; argument: "sink_name=auto_null sink_properties='device.description="Dummy Output"'").
I: module.c: Loaded "module-always-sink" (index: #10; argument: "").
I: module.c: Loaded "module-intended-roles" (index: #11; 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: #12; argument: "").
D: dbus-util.c: Successfully connected to D-Bus system bus 37167102d347eef17e1632d54c939a90 as :1.19
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: #13; argument: "").
I: module.c: Loaded "module-position-event-sounds" (index: #14; argument: "").
D: dbus-util.c: Successfully connected to D-Bus session bus 72094675a23ec627dd2a6a7b4c939a9c as :1.8
D: main.c: Got org.pulseaudio.Server!
I: main.c: Daemon startup complete.
D: module-console-kit.c: dbus: interface=org.freedesktop.DBus, path=/org/freedesktop/DBus, member=NameAcquired
答案1
我的猜测(基于我对同一问题的解决方案)是某些应用程序正在锁定您的声音设备。 Flash 和 Pidgin 都是我的 gentoo 盒子上的罪魁祸首。尝试运行fuser -v /dev/snd/*
,并终止其中列出的所有进程。这可能足以让您的声音再次正常工作。
(也可以看看https://wiki.gentoo.org/wiki/PulseAudio#Troubleshooting)
答案2
我看到你正在使用 Ubuntu。我的工作笔记本电脑上也有类似的问题,有时声音设备会无缘无故地死掉,重新启动即可解决问题。您使用什么类型的声卡?
答案3
我在最新的 ubuntu 13.10 上使音频正常工作时也遇到了问题 - 事实上,我也无法访问无线、扫描仪等。
脉搏症状相似;我看到了以下几行:
D: module-udev-detect.c: /dev/snd/controlC0 is accessible: no
D: module-udev-detect.c: /dev/snd/controlC1 is accessible: no
事实证明这是一个 PAM 问题 - 我对 /etc/pam.d/ 中的一些文件做了一些小的更改,然后它们在发行版升级期间没有得到正确更新。
以下命令将 /etc/pam.d/ 文件恢复正常:
sudo pam-auth-update --force
对我来说,这使得音频、无线和扫描仪全部恢复正常。
答案4
/dev/snd/controlC0 is accessible: no
当我在一台机器上有多个 X 会话时,我也遇到类似的声音问题 ( )。第一个会话使用 KDE5,pulseaudio/alsamixer/pavucontrol 在其中工作正常。我无法在第二个会话(fluxbox)中启动pulseaudio守护进程,尽管我在第一个会话中停止了它并杀死了列出的所有进程fuser -v /dev/snd/*
。就我而言,解决方案是将用户添加到audio
组中。