はじめに
うちでは、2011年ごろに買った古いデスクトップPCがまた動いている。いわゆる「SandyBridgeおじさん」というやつ。さすがに、Windowsでは利用しておらず、Linux(RockyやUbuntu)で自宅サーバーとして利用している。CPUにはでかいヒートシンクをつけファンレス化しておりサーバー用途でも静音。問題はとにかく場所をとること。そろそろ買い替えを検討していたとき、Amazonで、「GMKtec M5 Ultra」(AMD Ryzen 7 7730U、RAM 32GB、SSD 1TB)が8万円を切っていたので思わずポチッた。Ubuntuを入れる予定だったが、Windowsは正規版だったのでクリーンインストールしてそのままWindows11 proで利用することにした。

OSのクリーンインストール時から少し気になっていたのだが、何やら「ジジジ・・」という音が聞こえている。実際の設置スペースに置いてからは、クリーンインストール作業中よりも顔に近い位置に設置されていることもあり、特にこの音が気になるようになった。設置場所は変えられない(というか今の場所がベストな)事情もあり、なんとかこの音を消せないかと調べ始めた。
症状の確認:これは「コイル鳴き」
まず疑ったのはACアダプタの「コイル鳴き」だったが、耳を近づけて確認したところ、音源はACアダプタではなく本体側だった。マジか・・。今までもACアダプタで「コイル鳴き」にあったことはあるが、PC自体が鳴くとは・・。一瞬SSDではなくHDDが入っているのかと思ったほど、HDDのシーク音のように「ジジジ・・」という音が聞こえつづける。
「コイル鳴き」と呼ばれる現象は、電源回路(VRM)のインダクタ(コイル)が、電流のスイッチングによって機械的に微振動し、その振動が可聴域に入ることで「ジジジ」や「キーン」という音として聞こえるらしい。あきらめてサーバーをセットアップしていく。作業中一時的に音がなくなっているような気もしたが、ミニPCをセットアップしていない間はずっと「ジジジ・・」と言い続けている。そこで気づいたのが、CPUの負荷が低い時(アイドル時)に特に鳴きやすいという傾向があることに気づいた。
対策その1:CPUに疑似負荷をかけてみる(失敗)
AIに確認したところ、負荷が低いとVRMのPWM制御周波数が変動し、可聴域に入りやすくなるらしい。ほんとかよ?と疑う気持ちもあったが、AIに疑似負荷をかけるプログラムを出してもらう。
1 2 3 4 5 6 7 8 9 10 11 12 | # 指定した割合(%)でCPU 1コアに負荷をかけ続ける簡易スクリプト $loadPercent = 15 # ここを調整(例: 10〜30) $sw = [System.Diagnostics.Stopwatch]::StartNew() while ($true) { if ($sw.ElapsedMilliseconds % 100 -lt $loadPercent) { # busy loop $x = 0 for ($i=0; $i -lt 100000; $i++) { $x++ } } else { Start-Sleep -Milliseconds 1 } } |
負荷を10〜15%程度に固定してみたところ、確かにコイル鳴きは収まった。しかし今度は別の問題が発生した。発熱が増えてファンが回り出し、結局うるさいのである。よく聞いてみると、コイル鳴きも完全に消えたわけではなく、単にファンの音でマスキングされたようにも思える。
対策その2:BIOSでC-State設定を探す(失敗)
さらにAIに相談。「CPUの省電力ステート(C-State)が低負荷時に頻繁に切り替わり、VRMの電圧・電流が細かく変動すること」が原因の場合があるらしい。面倒くさく思いながらもBIOSでC-State関連の設定を探すことにした。結局この機種には、BIOSでC-State関連の設定はなかった。しかし、BIOS画面(POST後の設定画面)にいる間はコイル鳴きが聞こえないことに気づいた。これはOSのACPIドライバがロードされておらず、C-Stateの切り替え自体が発生していないためと考えられ、C-State説を後押しする状況証拠になるのではないかと思い始めた。
AIに「BIOSに設定がないことを確認する」と、裏技として 「Alt + F5」 キーを押してみろとのこと。試したところ、隠しデバッグメニューが出現し、「CPU CC6 Mode」という項目を発見。しかし確認してみると最初からDisabled(無効)になっており、これが原因ではなさそう。
対策その3:Windowsの隠し電源設定(成功)
さらダメ押しでAIに相談。これまでの状況証拠から、BIOS側の深い休止状態(CC6)が原因でないなら、残る容疑者は「Windowsが管理するもっと浅いC-State(C1/C1E相当)ではないか」とのこと。CPUは一見忙しく動いているようでも、実際にはマイクロ秒単位で「処理→待機」を高速に繰り返しており、この待機のたびにC1/C1Eへの出入りが発生する。これがVRMの電圧変動を引き起こし、コイルを振動させているのではないかとのこと。
コントロールパネル → 電源オプション → 詳細な電源設定の変更 → 「プロセッサの電源管理」
から変更しろと言っているが、そのような設定はない。どうやら以下のコマンドで設定変更する必要があるそう。
1 | powercfg -attributes 54533251-82be-4824-96c1-47b60b740d00 5d76a2ca-e8c0-402f-a133-2158492d58ad -ATTRIB_HIDE |
その後、コントロールパネル → 電源オプション → 詳細な電源設定の変更 → 「プロセッサの電源管理」の中に「プロセッサのアイドル状態を無効にする」という項目が出現した。これを「無効」に設定。

——コイル鳴きが止まった。
まとめ・学んだこと
- コイル鳴きは、ACアダプタだけでなくPC本体からもなる(最悪・・)。
- BIOSやWindowsの電源設定に隠し設定があることを初めて知った。
- 最悪、PCを物理的に緩衝材(吸音材)に包むことも考え始めていた際に、ダメもとでAIに丸投げしたトラブルシューティングだったがなかなか興味深かった。コーディングなど自分ができることを任せて最終確認のような使い方はよくしているが、丸投げで結果が出たのは初めてかもしれない。
静音性を求めてミニPCを買ったのに逆に音に悩まされる結果になったが、同じ症状で悩んでいる人の参考になれば幸いだ。


コメント