使用 Intel HDA Realtek 887-VD 修复音频故障

mic*_*oks 5 sound pulseaudio alsa hda-intel drivers

我刚刚自己搭建了一个强大的新台式机,配备技嘉 Z97P-D3 主板、英特尔 i7-4790K、16GB 内存。我使用板载声音硬件 intel HDA (Realtek ALC887-VD) 进行音频输出。我正在运行 Ubuntu 14.04 LTS。

每隔几分钟我就能听到音频播放中的一小段跳跃,几乎就像丢了一帧一样。无论来源如何(VLC / Spotify / Chromium 浏览器),这都非常烦人。在跳过过程中的短暂时刻,声音首选项 > 输出选项卡的设备列表变灰,音量控制指示灯短暂闪烁,好像已静音,然后全部恢复正常。

ALSAmixer 在跳跃过程中也同样出现故障,音量条都消失了几分之一秒。

我已经尝试了以下解决方法(这些方法都不适合我):

1)/etc/modprobe.d/alsa-base.conf:Position_fix设置

options snd-hda-intel model=generic position_fix=1
Run Code Online (Sandbox Code Playgroud)

2)PulseAudio /etc/pulse/default.pa:关闭tsched

load-module module-udev-detect use_ucm=0 tsched=0
Run Code Online (Sandbox Code Playgroud)

3) PulseAudio /etc/pulse/default.pa: 调整默认值(下面的各种组合和值)

default-fragments = 2
default-fragment-size-msec = 250
default-sample-rate = 48000
realtime-scheduling = yes
realtime-priority = 5
Run Code Online (Sandbox Code Playgroud)

4)重新安装PulseAudio

5) 将内核升级到最新的稳定版 (4.4.2)

6) 使用 Jack2 代替 PulseAudio

7)购买新的声卡(SoundBlaster Live),它似乎不适用于Spotify等各种应用程序。

的输出cat /proc/asound/card*/codec* | grep Codec

编解码器:英特尔通用

编解码器:Realtek ALC887-VD

编解码器:Nvidia GPU 60 HDMI/DP

输出 cat /proc/asound/card*

0 [HDMI]: HDA-Intel - HDA Intel HDMI HDA Intel HDMI at 0xf7914000 irq 33

1 [PCH ]: HDA-Intel - HDA Intel PCH HDA Intel PCH at 0xf7910000 irq 32

2 [NVidia]: HDA-Intel - HDA NVidia HDA NVidia at 0xf7080000 irq 17

这是我正在使用的卡#1。

的输出uname -a

Linux alnitak 4.4.2-040402-generic #201602171633 SMP Wed Feb 17 21:35:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

我怀疑这与英特尔 HDA 驱动程序有关,因为 Pulse、ALSA 和 Jack 都受到了影响。

有没有我遗漏的修复程序?

mic*_*oks -1

好吧,我已经解决了...答案是:

1) 购买新声卡(在我的例子中是 Soundblaster Live)

2)安装音频插孔(jackd)

sudo apt-get install jackd qjackctl
Run Code Online (Sandbox Code Playgroud)

3)安装Jack-Pulseaudio桥接器(pulseaudio-module-jack)

sudo apt-get install pulseaudio-module-jack
Run Code Online (Sandbox Code Playgroud)

4) 启动插孔(我使用 qJackctl)并进行 Soundblaster 友好设置:

司机:阿尔萨

即时的

帧/周期:2048

周期/缓冲区:2

输入设备:hw:Live

输出设备:hw:Live

5) 确保插孔连接正在将 PulseAudio JACK Sink 连接到系统播放

jack_connect 'PulseAudio JACK Sink:front-left' 'system:playback_1'
jack_connect 'PulseAudio JACK Sink:front-right' 'system:playback_2'
Run Code Online (Sandbox Code Playgroud)

6) 确保 PulseAudio 使用 Jack Sink 作为输出

pacmd set-default-sink "jack_out" && pacmd set-default-source "jack_in"
Run Code Online (Sandbox Code Playgroud)

7) 重新启动 Spotify / VLC 或任何您用来播放声音的东西...它就会工作了!

这绝对是一种捏造的解决方法,但那是因为 Linux 中的英特尔 HDA 音频驱动程序非常劣质。问题在于 DMA 位置指针报告(已知问题: https: //www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt)。

Linux 音频是一团糟。我从 2010 年开始使用 Ubuntu,在过去的 6 年里,音频 clusterf##k 一直让我最头疼。PulseAudio 可能有一个可爱的桌面小部件,但它会导致很多问题。Jack 的记录很少,而 qjackctl 并没有给你带来太多帮助。似乎只有 ALSA 可以正常工作,但可惜的是,没有人编写出漂亮的桌面小部件,也没有人编写一个界面来控制与其绑定的程序。

带回家的信息是:

如果运行 Linux,请勿使用 intel HDA 板载音频。

Linux 音频是一团糟。如果开箱即用后无法正常工作,您将陷入痛苦的境地!