/sys/module/snd_hda_intel/parameters/power_save가 0임에도 불구하고 laptop-mode-tools는 여전히 인텔 HDA 사운드 카드에서 절전 동작을 발생시킵니다.

/sys/module/snd_hda_intel/parameters/power_save가 0임에도 불구하고 laptop-mode-tools는 여전히 인텔 HDA 사운드 카드에서 절전 동작을 발생시킵니다.

특별한 문제가 발생했습니다. 설명하겠습니다: (상황의 가장 중요한 부분을 제공하므로 EDIT2를 읽어보십시오.)

  1. 시작할 때 GRUB에서 매개변수를 전달합니다.
    snd_hda_intel.power_save=0 snd_hda_intel.power_save_controller=N
  2. 노트북 모드 도구가 시작되고 snd_hda_intel의 절전 기능이 비활성화됩니다.

    다음 텍스트 파일을 참조하세요.https://pastebin.com/R6SMzTAT

  3. /sys/module/snd_hda_intel/parameters/power_save0으로 설정하지만 시스템에 여전히 절전 동작이 표시됩니다. 헤드셋에서 사운드 재생을 중지한 후 잠시 동안 딸깍 소리가 나고, 전원을 켰을 때 카드에서 소리가 나기 시작할 때 다시 소리가 납니다.

  4. powertop을 사용하고 "tunables"로 이동하면 오디오 코덱 전원 관리가 꺼져 있다고 표시됩니다. 이제 여기를 누른 Enter다음 전원 관리를 끄면 문제가 해결되고 더 이상 절전이 발생하지 않습니다. 이것이 왜 필요한지 혼란 스럽습니다. 또한 내가 바보일 수도 있지만 powertop은 명령을 실행한다고 주장합니다.

    echo '' > '/sys/module/snd_hda_intel/parameters/power_save';

    끄십시오. 하지만 터미널에서 실행하면 오류가 발생합니다.

    bash: echo: write error: Invalid argument
    

    저 할 수 있어요

    echo '0' > /sys/module/snd_hda_intel/parameters/power_save
    

    하지만 매개변수가 0으로 설정되어 있다고 하며 이 명령으로는 문제가 해결되지 않습니다. 파워탑에서 활성화 및 비활성화해야 합니다.

이에 대한 설명과 부팅할 때마다 파워톱 트릭을 수행하지 않고도 문제를 해결하는 방법은 무엇입니까? powertop이 실행 중이라고 주장하는 명령을 top으로 실행하려고 하면 오류가 발생하는 이유는 무엇입니까? power_save 매개변수가 0(그리고 power_save_controller=N)일 때 절전이 발생하는 이유는 무엇입니까?

추가 정보:

Linux gentoo 4.19.1-gentoo #1 SMP Mon Nov 5 21:27:35 CET 2018 x86_64 Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz GenuineIntel GNU/Linux

사운드 카드:

00:1f.3 Audio device: Intel Corporation 100 Series/C230 Series Chipset Family HD Audio Controller (rev 31)

편집: 한 가지 더 흥미로운 사실 ​​- 파워톱 작업을 수행한 다음 노트북 모드 도구를 중지하는 경우:

systemctl stop laptop-mode

이로 인해 절전 동작이 되돌아가고 전원 공급 요령이 필요합니다. 분명히 노트북 모드 도구가 여기서 이상한 일을 하고 있는 것 같습니다. 랩톱 모드 도구를 비활성화한 상태에서 시스템을 부팅하면 모든 것이 작동하여 사운드 카드에 절전 효과가 발생하지 않습니다.

EDIT2: 좋아요, 왜 powertop이 echo''를 수행한다고 주장하는지 모르겠습니다. 왜냐하면 소스 코드를 연구한 후에는 분명히 그렇게 하기 때문입니다.

ofstream file;
file.open("/sys/module/snd_hda_intel/parameters/power_save", ios::out);
file << 0;
file.close()

따라서 수행하는 작업에는 특별한 것이 없습니다. 예상대로 이 코드를 실행하면 echo '0'과 동일하므로 아무 작업도 수행되지 않습니다. 문제를 해결하고 절전을 비활성화하는 방법은 power_save 매개변수의 값을 "뒤집는" 것입니다. 그래서:

echo '1' > /sys/module/snd_hda_intel/parameters/power_save
echo '0' > /sys/module/snd_hda_intel/parameters/power_save

일하다. 노트북 모드 도구가 뭔가 이상한 일을 하고 있는 게 틀림없지만 전반적으로는 드라이버의 버그임에 틀림없습니다. 그렇죠?

관련 정보