特別な問題が発生しました。説明します:(状況の最も重要な部分を提供するので、EDIT2をお読みください)
- 起動時にGRUBがパラメータを渡します。
snd_hda_intel.power_save=0 snd_hda_intel.power_save_controller=N
ノートブックモードツールが起動し、snd_hda_intelの省電力機能が無効になります。
次のテキストファイルを参照してください。https://pastebin.com/R6SMzTAT
/sys/module/snd_hda_intel/parameters/power_save
0 に設定しますが、システムにはまだスリープ動作が表示されます。ヘッドセットでサウンドの再生を停止した後、しばらくカチッと音が鳴り、電源を入れたときにカードから音が出始めたときに再び鳴ります。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
働くノートブックモードツールが何か奇妙なことをしているのは間違いありませんが、全体的にはドライバーのバグであるに違いありません。そうですか?