
Ubuntu日本語フォーラム

ログインしていません。
BTOショップで購入したノートパソコンにUbuntuをインストールしたのですが、搭載しているCorei3の省電力機能が原因で高周波のノイズが常にしています。
このノイズに関してネットで調べたところ、Intel C-state tech が関係しているとの異が判明したので、BIOSから無効化しよと思い、項目を探しましたが該当する項目は見当たりませんでした。
また、ノイズに関しては、Windows8をインストールした環境においても同様に発生しています。ただ、Windows8の場合はレジストリからC-stateを無効にできる方法が価格.comか何かのスレッドに書いてあったのでそれを行いました。その結果、Windows8ではノイズが発生しなくなりました。(実験用にインストールしただけでありDualBootではない)
Ubuntuにおいて、BIOS以外からC-stateを無効にするにはどうすればいいのでしょうか?
また昔のUbuntuではC-stateの確認が「/proc/acpi/processor/CPU/power」から確認できるという事が以下のURLに記述されていますが、ubuntu12.04ではコマンドを実効しても、「存在しません」と出て確認することもできません。
http://d.hatena.ne.jp/gunshot/20110311/p1
オフライン
実際に試したわけでもなく、単に"C-state"のキーワードだけでカーネルソースに含まれるカーネルパラメーターのドキュメントを検索しただけです。
ubuntu 12.04に提供されているカーネル3.2系と3.5系では以下のパラメーターがある様です。
カーネル3.2系
idle= [X86]
Format: idle=poll, idle=mwait, idle=halt, idle=nomwait
Poll forces a polling idle loop that can slightly
improve the performance of waking up a idle CPU, but
will use a lot of power and make the system run hot.
Not recommended.
idle=mwait: On systems which support MONITOR/MWAIT but
the kernel chose to not use it because it doesn't save
as much power as a normal idle loop, use the
MONITOR/MWAIT idle loop anyways. Performance should be
the same as idle=poll.
idle=halt: Halt is forced to be used for CPU idle.
In such case C2/C3 won't be used again.
idle=nomwait: Disable mwait for CPU C-states
processor.max_cstate= [HW,ACPI]
Limit processor to maximum C-state
max_cstate=9 overrides any DMI blacklist limit.
processor.nocst [HW,ACPI]
Ignore the _CST method to determine C-states,
instead using the legacy FADT methodカーネル3.5系
idle= [X86]
Format: idle=poll, idle=mwait, idle=halt, idle=nomwait
Poll forces a polling idle loop that can slightly
improve the performance of waking up a idle CPU, but
will use a lot of power and make the system run hot.
Not recommended.
idle=mwait: On systems which support MONITOR/MWAIT but
the kernel chose to not use it because it doesn't save
as much power as a normal idle loop, use the
MONITOR/MWAIT idle loop anyways. Performance should be
the same as idle=poll.
idle=halt: Halt is forced to be used for CPU idle.
In such case C2/C3 won't be used again.
idle=nomwait: Disable mwait for CPU C-states
intel_idle.max_cstate= [KNL,HW,ACPI,X86]
0 disables intel_idle and fall back on acpi_idle.
1 to 6 specify maximum depth of C-state.
processor.max_cstate= [HW,ACPI]
Limit processor to maximum C-state
max_cstate=9 overrides any DMI blacklist limit.
processor.nocst [HW,ACPI]
Ignore the _CST method to determine C-states,
instead using the legacy FADT methodC-stateまわりの用語が混乱しているので、Windowsで行なった、「ノイズの出なくなった対策」で変更したレジストリの変更内容を示して頂くのがいいような気がします。
電源回路の設計がいまいち、というパターンであることは推定できるのですが、この場合、可能性的に、
・C-Stateを変動させるとノイズが出る
・Deep C-State(C6)するとノイズが出る
・C2あたりでだけノイズが出る
といった複数の展開がありえてしまい、ちょっと厳しそうです(で、レジストリのパスと設定値がわかれば多分なんとか)。
オフライン
katsu07さん
貴重な返信ありがとうございます。
カーネル系は全くわかりませんが、パラメータが「processor.max_cstate= 」等、関係ありそうな項目かもしれません。
カーネルパラメータに含まれているということは、C-stateに関する設定をするためのパラメータが存在するということでしょうか?
hitoさん
貴重な返信ありがとうございます。
変更したレジストリの内容は以下のものです。
reg add HKLM\System\CurrentControlSet\Control\Processor /v Capabilities /t REG_DWORD /d 0x0007e666
また、このレジストリ変更の内容は、C-satateのACPI C2/C3 State を無効にするものらしいです。
参考Webページが見つかりましたので、URLを載せておきます。
価格.comスレッド ページ最下部のnaoki666さんの返信: http://bbs.kakaku.com/bbs/J0000003124/SortID=12002549/
そこに含まれていたレジストリ変更に関するURL:http://support.express.nec.co.jp/care/techinfo/HyperVX5500_test.html
オフライン