/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 Trickを実行せずに問題を解決する方法は? 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

働くノートブックモードツールが何か奇妙なことをしているのは間違いありませんが、全体的にはドライバーのバグであるに違いありません。そうですか?

関連情報