我的计算机上有一个非常烦人的问题,我无法解决。
我在两个发行版中遇到了同样的问题,首先是 Ubuntu,现在是 Fedora。
我的电脑过去在 Ubuntu 下运行良好,但在更新一些内核后声音停止工作。我迁移到 Fedora 21,因为我找不到解决方案,令人惊讶的是,我遇到了同样的问题。
所以我猜这与某些硬件/内核不兼容有关。
问题是,在使用语音 IP(例如 Skype)或通过浏览器(Firefox 或 Chrome)观看视频后几分钟,我的系统声音就会静音。
如果我重新启动,我就会再次有声音。但是,例如,一旦我开始 Skype 对话,声音就会停止工作。我开始了teleconf
,但几分钟后我没有声音。但是,麦克风继续工作。
此问题的第二个影响是,一旦静音(因为观看视频或使用语音 IP 协议),浏览器视频(例如来自 YouTube)将无法正常显示。它们以慢动作显示,中间有几毫秒的中断。
我更新了 Fedora 21,显卡是 NVIDIA GeForce 9500 GT(使用免费驱动程序)。
我尝试了多种方法(pulseaudio -k
、alsamixer
等),但没有成功。我真的很感激任何帮助。如果您需要一些额外信息,请告诉我?
额外信息:
我的音频设备列于此处:
$ /sbin/lsmod | grep snd
snd_hda_codec_realtek 90112 0
snd_hda_codec_generic 73728 2 snd_hda_codec_realtek
snd_hda_intel 32768 4
snd_hda_controller 32768 1 snd_hda_intel
snd_hda_codec 110592 4 snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_intel,snd_hda_controller
snd_hda_core 36864 4 snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_codec,snd_hda_controller
snd_hwdep 16384 1 snd_hda_codec
snd_seq 69632 0
snd_seq_device 16384 1 snd_seq
snd_pcm 118784 3 snd_hda_codec,snd_hda_intel,snd_hda_controller
snd_timer 32768 2 snd_pcm,snd_seq
snd 81920 17 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_pcm,snd_seq,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_seq_device
soundcore 16384 1 snd
$ lspci | grep Audio
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 05)
硬件设备:
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: MID [HDA Intel MID], device 0: ID 889 Analog [ID 889 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: MID [HDA Intel MID], device 1: ID 889 Digital [ID 889 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
我也尝试过使用替代桌面(我使用的是 gnome3),例如 xfce 或 cinnamon,但它不起作用。事情也一样。
输入有或没有声音的pulsaudio 会给我:
E: [pulseaudio] pid.c: Daemon already running.
E: [pulseaudio] main.c: pa_pid_file_create() failed.
同样的更多信息:
$ modinfo snd-hda-intel
filename: /lib/modules/4.1.13-100.fc21.x86_64/kernel/sound/pci/hda/snd-hda-intel.ko.xz
description: Intel HDA driver
license: GPL
depends: snd-hda-controller,snd-hda-codec,snd-pcm,snd
intree: Y
vermagic: 4.1.13-100.fc21.x86_64 SMP mod_unload
signer: Fedora kernel signing key
sig_key: F3:54:63:EF:F6:27:ED:52:16:79:72:BC:8F:3C:71:2E:D1:C9:E4:F0
sig_hashalgo: sha256
parm: index:Index value for Intel HD audio interface. (array of int)
parm: id:ID string for Intel HD audio interface. (array of charp)
parm: enable:Enable Intel HD audio interface. (array of bool)
parm: model:Use the given board model. (array of charp)
parm: position_fix:DMA pointer read method.(-1 = system default, 0 = auto, 1 = LPIB, 2 = POSBUF, 3 = VIACOMBO, 4 = COMBO). (array of int)
parm: bdl_pos_adj:BDL position adjustment offset. (array of int)
parm: probe_mask:Bitmask to probe codecs (default = -1). (array of int)
parm: probe_only:Only probing and no codec initialization. (array of int)
parm: jackpoll_ms:Ms between polling for jack events (default = 0, using unsol events only) (array of int)
parm: single_cmd:Use single command to communicate with codecs (for debugging only). (bool)
parm: enable_msi:Enable Message Signaled Interrupt (MSI) (bint)
parm: patch:Patch file for Intel HD audio interface. (array of charp)
parm: beep_mode:Select HDA Beep registration mode (0=off, 1=on) (default=1). (array of bool)
parm: power_save:Automatic power-saving timeout (in second, 0 = disable). (xint)
parm: power_save_controller:Reset controller in power save mode. (bool)
parm: align_buffer_size:Force buffer and period sizes to be multiple of 128 bytes. (bint)
parm: snoop:Enable/disable snooping (bint)
如果我运行 alsamixer,默认卡是 Pulseaudio 和芯片 Pulseaudio。如果我用F6换卡,选择HDA Intel MID,那么芯片是Realtek ID 889。即使系统声音不起作用,也没有任何静音。
答案1
有几个领域您可以尝试。我使用 Debian,但总体思路也应该适用于您的系统。
- 您是否尝试过名为 的实用程序
pavucontrol
?它可以让您更好地了解 Pulse 设置。 - 默认情况下,Pulse 服务器将重生,因此被杀死的服务器实例
pulseaudio -k
将被另一个实例替换。要检查您的问题在真正停止 Pulse 后是否有所改善,请修改/etc/pulse/client.conf
或~/.config/pulse/client.conf
from
autospawn = yes
至
autospawn = no
然后停止 Pulse。 - 您可能需要按照中描述的步骤进行操作https://wiki.archlinux.org/index.php/PulseAudio/Troubleshooting#Audio_quality
snd_hda_intel
,特别是在模块解决方法部分。 - 最后,我建议一些不太直观的建议:使用非免费版本更新驱动程序,包括视频驱动程序。 Nvidia 发布了可从其网站下载的 Linux 驱动程序,但您应该能够通过您的发行版获取它们。在 Debian 上,我总是追加
contrib non-free
到我的/etc/apt/sources.list
行中,以便非自由软件(如固件和 Nvidia 驱动程序)定期更新。就我而言,相关行是:
deb http://pubmirrors.dal.corespace.com/debian/ testing main contrib non-free