web-dev-qa-db-ja.com

Intel HDA Realtek 887-VDでオーディオの不具合を修正

Gigabyte Z97P-D3 mobo、Intel i7-4790K、16GB RAMを備えた、強力な新しいデスクトップを自己構築しました。オーディオ出力にオンボードサウンドハードウェアIntel HDA(Realtek ALC887-VD)を使用しています。 Ubuntu 14.04 LTSを実行しています。

数分ごとに、オーディオ再生の短いスキップが聞こえます。まるで1つのフレームがドロップされているかのようです。これは非常に面倒で、ソース(VLC/Spotify/Chromiumブラウザ)に関係なく発生します。スキップ中の短い瞬間に、[サウンド設定]> [出力]タブのデバイスのリストがグレー表示になり、ボリュームコントロールインジケーターがミュートになったように短時間点滅してから、すべてが通常に戻ります。

ALSAmixerも同様にスキップの間にグリッチを発生し、ボリュームバーはすべて一瞬のうちに消えます。

私は次の回避策を試しました(私にとってはうまくいきません):

1)/etc/modprobe.d/alsa-base.conf:Position_fix設定

options snd-hda-intel model=generic position_fix=1

2)PulseAudio /etc/Pulse/default.pa:tschedをオフにする

load-module module-udev-detect use_ucm=0 tsched=0

3)PulseAudio /etc/Pulse/default.pa:デフォルトの調整(以下のあらゆる種類の組み合わせと値)

default-fragments = 2
default-fragment-size-msec = 250
default-sample-rate = 48000
realtime-scheduling = yes
realtime-priority = 5

4)PulseAudioの再インストール

5)カーネルを最新の安定版(4.4.2)にアップグレードする

6)PulseAudioの代わりにJack2を使用する

7)新しいサウンドカード(SoundBlaster Live)の購入。Spotifyなどのさまざまなアプリケーションでは機能しないようです。

cat /proc/asound/card*/codec* | grep Codecの出力:

コーデック:Intel Generic

コーデック: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

これは、Pulse、ALSA、およびJackがすべて影響を受けていると考えているIntel HDAドライバーと関係があると思われます。

不足している修正はありますか?

4
michaeljtbrooks

OK、私はそれを解決しました...答えは:

1)新しいサウンドカード(私の場合はSoundblaster Live)を購入する

2)Jack Audio(jackd)をインストールします

Sudo apt-get install jackd qjackctl

3)Jack-Pulseaudioブリッジをインストールします(pulseaudio-module-jack)

Sudo apt-get install pulseaudio-module-jack

4)ファイアブラストジャック(私はqJackctlを使用しました)とSoundblasterに優しい設定:

ドライバー:alsa

リアルタイム

フレーム/期間:2048

期間/バッファ:2

入力デバイス:hw:Live

出力デバイス:hw:Live

5)ジャックの接続がPulseAudioジャックシンクをシステム再生にパッチしていることを確認します

jack_connect 'PulseAudio JACK Sink:front-left' 'system:playback_1'
jack_connect 'PulseAudio JACK Sink:front-right' 'system:playback_2'

6)PulseAudioが出力としてJack Sinkを使用していることを確認します

pacmd set-default-sink "jack_out" && pacmd set-default-source "jack_in"

7)Spotify/VLCまたはサウンドの再生に使用しているものを再起動します...動作します!

これは回避策の絶対的なファッジですが、それはLinuxのIntel HDAオーディオドライバーが見苦しいためです。問題は、DMA Position Pointerレポートにあります(既知の問題: https://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt )。

Linuxオーディオは混乱しています。私は2010年からUbuntuを使用してきましたが、過去6年間で一貫して最大の頭痛の種となっているのはオーディオclusterf ## kです。 PulseAudioには素敵なデスクトップウィジェットがあるかもしれませんが、非常に多くの問題を引き起こします。ジャックの文書化は不十分であり、qjackctlを使用しても大したことはありません。 ALSAだけが動作しているように見えますが、残念ながら、Niceデスクトップウィジェットや、それにバインドされたプログラムを制御するためのインターフェイスを書いた人はいません。

持ち帰りメッセージは次のとおりです。

Linuxを実行している場合は、Intel HDAオンボードオーディオを使用しないでください。

Linuxオーディオは混乱しています。箱から出して正常に動作しない場合は、苦痛の世界が広がっています!

0
michaeljtbrooks

Snd-hda-intelと呼ばれるLinuxデバイスドライバーは、少なくとも2010年11月に悪化したユーザーがPulseAudioMicrophoneGuide.pdfを作成して以来、明らかに大量の悪化を引き起こしています。

ここに私がこれまでに見つけたものがあります:PulseAudioは、Alsaの上で実行されるソフトウェア層です。 Alsaは、多数のドライバーソフトウェアパッケージを読み込むソフトウェアレイヤーです。 Alsaは、電子信号の単なるドライバーではありません。 Alsaは、ミキサーや、マイクからバイトを読み取ったり、ヘッドフォンアンプにバイトを書き込んだりするソフトウェアのように、電気信号ごとにいくつかの小さなソフトウェアをロードします。

2015年のLenovo S21eラップトップには「内蔵マイクから音が出ない」という問題があり、その結果、SkypeもGoogleHangouts Chatも内蔵マイクで動作しません。

短期的な修正は、マイク付きのWebカメラを接続するか、Plantonics USBヘッドセットを使用することです。

ここに私がする必要があると思うものがあります。私はCプログラマーではありません(Python、Perl、Arduinoのみ)。ハードウェアと通信しているデバイスドライバー内で、ソースコード内で、オーディオデータがマイクのメモリの場所からコピーされている場所を見つけます。出力チャネルの1つであるRightまたはLeftが、ソフトウェアで何らかの形で反転されています。私の推測では、信号からある種のノイズをキャンセルすることを期待して、信号を反転させました。そのため、元のプログラマーが反転を強制した理由を把握することがコツです。それ以外の場合は、反転を削除して、右チャネルと左チャネルが正常になるかどうかを確認します。

2
Lee McKusick