🐡

OpenBSD 7.1 の省電力設定

2022/08/20に公開

背景

OpenBSD 7.1 から PCがAC電源に接続されている場合、省電力モードをOFFに(100%で駆動)するようになった。このため、自宅サーバ(Let's Note CF-S8HWECPS)の発熱がすごくなったので以下の省電力設定を施した。

液晶の明るさを変更

これは以前からやっていたが、備忘録のためここに記述。

% doas wsconsctl display.brightness=0   # 液晶の明るさを 0% に

起動時に自動実行したい場合は /etc/rc.local に以下を記述し、chmod +x /etc/rc.local しておけばよい。

/etc/rc.local
#!/bin/sh
wsconsctl display.brightness=0

再起動後にも前回起動時の液晶の明るさをおぼえておいて欲しい場合は /etc/rc.shutdown/etc/rc.local による手法 を実行しておくとよい。

obsdfreqd の導入

AC電源接続時にも省電力設定を行うため、obsdfreqd を以下の手順でインストール。

% git clone https://tildegit.org/solene/obsdfreqd.git
% cd obsdfreqd
% make
% doas make install
% doas rcctl set apmd flags -L           # apmd ではデフォルト省電力モードに設定
% doas rcctl restart apmd
% doas rcctl enable obsdfreqd
% doas rcctl set obsdfreqd flags -T 70   # CPUの温度が70度を超えたら省電力モードに移行
% doas rcctl start obsdfreqd

動作確認

  1. obsdfreqd 導入前
    % sysctl hw | grep -e power -e temp -e perf -e speed
    hw.sensors.cpu0.temp0=86.00 degC
    hw.sensors.acpiac0.indicator0=On (power supply)
    hw.sensors.acpibat0.power0=0.00 W (rate)
    hw.sensors.acpitz0.temp0=92.00 degC (zone temperature)
    hw.sensors.acpitz1.temp0=91.00 degC (zone temperature)
    hw.cpuspeed=800
    hw.setperf=100
    hw.allowpowerdown=1
    hw.perfpolicy=auto
    hw.power=1
    
  2. obsdfreqd 導入後
    % sysctl hw | grep -e power -e temp -e perf -e speed
    hw.sensors.cpu0.temp0=85.00 degC
    hw.sensors.acpiac0.indicator0=On (power supply)
    hw.sensors.acpibat0.power0=0.00 W (rate)
    hw.sensors.acpitz0.temp0=93.00 degC (zone temperature)
    hw.sensors.acpitz1.temp0=91.00 degC (zone temperature)
    hw.cpuspeed=800
    hw.setperf=0
    hw.allowpowerdown=1
    hw.perfpolicy=manual
    hw.power=1
    

狙い通り、hw.setperf=0 に変更された。
しばらく様子を見る。

考察

obsdfreqd は current のパッケージに登録されているので、OpenBSD 7.2 になったら

% pkg_add obsdfreqd

でインストールできるようになるかも。

参考文献

Discussion