
내 로그에 다음 오류가 표시됩니다.
kernel: snd_hda_intel 0000:00:1b.0: IRQ timing workaround is
activated for card #0. Suggest a bigger bdl_pos_adj
Google에서 오래된 게시물을 찾았습니다.여기그리고여기같은 문제를 다루고 있습니다. 제공된 솔루션은 커널 모듈의 값을 변경하는 것을 제안합니다.
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
누군가 이 모든 숫자의 의미와 오류를 제거하기 위해 숫자를 변경하는 방법을 설명해 줄 수 있습니까?
답변1
커널 문서에는 bdl_pos_adj
다음 내용이 설명되어 있습니다(참조:ALSA 드라이버 구성 가이드그리고HD-Audio 드라이버에 대한 추가 정보):
bdl_pos_adj
- 샘플의 DMA IRQ 타이밍 지연을 지정합니다. -1을 전달하면 드라이버가 컨트롤러 칩에 따라 적절한 값을 선택하게 됩니다.
(원문). Intel 컨트롤러에서 기본값은 1입니다(귀하의 컨트롤러에서 확인할 수 있음 /sys/module/snd_hda_intel/parameters/bdl_pos_adj
). 숫자가 여러 개인 이유는 모듈이 여러 HDA 장치를 지원하기 때문입니다(기본값은 8이고 SNDRV_CARDS
위치는커널 소스 코드). 잠시 동안 이 문자가 무엇인지 잘 모르겠습니다. 카드 번호와 일치할 것으로 예상했지만 카드 #0에 대해 오류가 발생했습니다. 그 bdl_pos_adj
값을 두 번째로 두라고 제안하셨습니다.
문제 해결에 관해서는 문서가 많지 않고 코드에서도 많은 내용을 알 수 없습니다. 제가 제안하는 유일한 제안은 지침을 따르고 유효한 결과를 얻을 때까지 값을 늘려보는 것입니다.
options snd-hda-intel enable_msi=1 bdl_pos_adj=2,2
2,2
( 처음 두 가지 중 어느 것이 귀하의 장치에서 작동할지 확신할 수 없기 때문에 여기서는 이것을 사용하고 있습니다 .)