会社では、DELL Latitude 5580 という PC を使っています。
この PC はスペック的には結構満足なのですが、CPU ファンが高速回転してうるさいという欠点があります。
結構うるさくて、ググったら結構不平不満が出てきます。(主に英語圏でですが・・・日本ではこのPCはあまり使われていないのかも?)
しかし、具体的な解決策が見つからず、2年程我慢して諦めかけていたのですが・・・やっと対策方法が見つかった気がするので、その備忘録を残しておきます。
追記
以下の方法をやってみて気づいたのですが、あまり実用的でないかもしれません・・・
というのは、ファンの速度を抑えて動作させると、あっという間に80℃くらいに達します。
さすがに怖いので、80℃に達したらファンを100%回すというようにしているんですが、結局頻繁に高速回転するようになるので、効果は微妙になります。
やはりCPUファンが高速回転するのはそれなりの理由があるみたいで、このPCは排熱性能が低いんでしょうね・・・
CPU ファンを制御する王道の方法
まず、CPUファンを制御する王道の方法です。
SpeedFanという、名前そのままのファンの回転速度を制御するためのフリーソフトがあります。
基本的にこれを使用すると、CPUファンを制御できます。
詳細はここでは語りませんが、結構細かく動きを制御でき、例えば「CPU温度が50℃を超えたら60%で動作させて、70℃を超えたら90%、80℃を超えたら100%」といったようなことができます。
しかし、Latitude 5580 では、このソフトが正常に動作しません・・・
厳密に言うと、一応制御はできるんですが、中途半端な動きになり、ファンが高回転と低速回転を交互に繰り返して、「ピューンピューン」という風切り音が聞こえて逆にうるさくなります。
なので、正直使えないと思っていました。
DellFanCmd を使用して SpeedFan を正常動作させる
そこで、今回みつけた解決方法です。
ざっくりどんな仕組みかを説明します。
- もともと SpeedFan が正常に動作しない理由は、Latitude がCPUファン制御の権限を握っているらしく、 SpeedFan の動きを邪魔している
- そこで、Latitude が持っている権限を剥奪し、SpeedFanがCPUファンの制御ができるようにしてやる
- 結果、SpeedFan が正常に動作するようになる
こちらの方法を行うと、SpeedFan でCPUファンを正常にどうさせることに成功しました!
上記英語のため、日本語のやり方を以下に残しておきます。
github から DellFanCmd を DL する
ここから zip を落として解凍します。
中には以下のように sys ファイルと exe ファイルが入っています。
レジストリを変更する
処理内容としては、sys ファイルを使用してドライバを書き換えるみたいです。
作成者の方がドライバの証明書をちゃんと購入してくださっているらしく、普通はそのままドライバを適用できるはずなのですが、Windows が OS レベルでドライバの適用を妨げてくるらしいので、レジストリを変更する必要があるみたいです。
regedit 等を使用して、以下の通り変更します。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI\Policy]
"UpgradedSystem"=dword:00000000
レジストリの変更を反映させるためには、OS の再起動が必要みたいです。
DellFanCmd を実行する
あらかじめ SpeedFan を起動しておきます。(こうしておかないといけないらしいです)
そして、以下を実行するだけ。
> DellFanCmd.exe ec-disable
これで、SpeedFan にCPUファン制御の権限が移り、SpeedFan の設定どおりにCPUファンが動作するようなりました。
元に戻したい(つまりLatitude側に権限を戻す)場合は、以下を実行します。
> DellFanCmd.exe ec-enable
動作上の注意
ログインするたびに実行が必要
たぶん、ログアウトすると効果は消失します。
なので、ログインするたびに上記の「SpeedFanを立ち上げてDellFanCmdを実行する」を行わないといけないです
SpeedFan の設定
SpeedFan で制御できるCPUのファン速度は0%、50%、100%の3パターンしか存在しません。
なので、以下のような温度設定は意味がありません。
以下のように3パターンとなるようにする必要があるみたいです。
(参考)これ以外の対策方法
一応、今までに自分が探した他の対策方法を残しておきます。
以下に挙げるのは、どれも DellFanCmd を使う方法よりも効果は低いです。
CPU を省電力モードで動作させる
元も子もない方法ですが、確実にCPUファンの回転速度をおさえることができます。
「コントロールパネル」→「ハードウェアとサウンド」→「電源オプション」にて、「プラン設定の変更」を選択します。
「詳細な電源設定の変更」を選択します。
「電源オプション」のウィンドウが開きますので、以下のように最大プロセッサの状態を落とします。
Latitude 5580 の場合、80%にすると常に省電力モードで動作するようになります。
結果、CPUの温度も上がらないので、常に静音で動作するようになります。
※ 注意
このやり方をすると、CPUのターボブースト?が常時無効になります。結果、PCのパフォーマンスが著しく悪化し、正直プログラミングとかには大きな支障が出るくらいになるので、あまり実用出来ではありません。
BIOS をアップデートする
こちらで提言されていた方法です。
やり方は単純で、BIOSを最新のものにアップデートするだけです。
( https://www.dell.com/support/home/jp/ja/jpbsd1/drivers/driversdetails?driverId=R7PH8&osCode=WT64A&productCode=latitude-15-5580-laptop )
この方法では、劇的な対策は見込めませんが、多少CPUファンの回転数を抑制することが見込めるそうです。
(正直私は体感できませんでしたが・・・)
おそらくリスクはあまり高くない(というかBIOSは最新にしておいたほうがよいはず)ので、とりあえずやっておいて損はないのかなと思います。
CPUをアンダークロックする
この方法も、こちらで提言されていた方法です。
Intel Extreme Tuning Utilityを使用してアンダークロックするという、なんとも悲しくなる方法です・・・
しかしこの方法は、省電力モードと比較してもパフォーマンスの低下を抑えることができるうえ効果もあるらしいので、省電力モードよりはマシなのかなと思われます。
ちなみに私の環境では Intel Extreme Tuning Utility をインストールしようとするとエラーになって失敗したので、私は試していません。
コメント