ログに次のエラーが表示されます。
kernel: snd_hda_intel 0000:00:1b.0: IRQ timing workaround is
activated for card #0. Suggest a bigger bdl_pos_adj
Googleは、同じ問題を扱っている古い投稿 here および here を見つけました。提供されているソリューションは、カーネルモジュールの値を変更することを提案しています。
options snd-hda-intel enable_msi=1 bdl_pos_adj=1,48
しかし、数字が何を意味するのかはどこにも説明されていません。さらに、私が現在持っている現在の(デフォルト)値には複数の数値があります。
# cat /sys/module/snd_hda_intel/parameters/bdl_pos_adj
-1,1,-1,-1,-1,-1,-1,-1
誰かがこれらすべての数値の意味と、エラーを取り除くためにそれらを変更する方法を説明できますか?
カーネルのドキュメントでは、bdl_pos_adj
を次のように説明しています( ALSA-Configuration.txt および HD-Audio.txt を参照):
bdl_pos_adj
-DMA IRQタイミング遅延をサンプルで指定します。-1を渡すと、ドライバーはコントローラーチップに基づいて適切な値を選択します。
(原文のまま)。 Intelコントローラでは、デフォルトは1です(これは自分の/sys/module/snd_hda_intel/parameters/bdl_pos_adj
で確認できます)。モジュールが複数のHDAデバイスをサポートしているため、複数の数値が存在します(デフォルトでは8個で、これは カーネルソース のSNDRV_CARDS
です)。私は、通信が何であるかを手放しで確信していません。カード番号と一致することを期待していましたが、bdl_pos_adj
が2番目の位置で値を取得していることを示唆しているときに、カード#0のエラーが発生しています...
問題を修正する限り、ドキュメントはあまりなく、コードもあまり言いません。私が持っている唯一の提案は、指示に従って、うまくいくものが得られるまで値を増やしてみることです:
options snd-hda-intel enable_msi=1 bdl_pos_adj=2,2
(ここでは2,2
を使用しています。これは、最初の2つのうちどちらがデバイスに使用されるのかわからないためです。)