本文へ移動
vast-cowのブログ
前のページへ戻る

macmini5,2 ubuntu24.04でcpuファンスピードをコントロールしたい

この記事を編集

Macmini5,2(Mid 2011)+ Ubuntu 24.04 なら、applesmc + mbpfan が扱いやすい構成です。Ubuntu 24.04(Noble)にも mbpfan 2.4.0 が標準パッケージとしてあります。(Ubuntu Packages)

Linux の applesmc ドライバは Intel Mac の温度センサーとファン制御を sysfs 経由で提供しています。(GitHub)

1. まず applesmc を確認

sudo modprobe applesmc
sudo modprobe coretemp

lsmod | grep -E 'applesmc|coretemp'

次にファンのインターフェースを確認します。

SMC=$(find /sys/devices/platform -maxdepth 1 -type d -name 'applesmc.*' -print -quit)
echo "$SMC"

ls -l "$SMC"/fan*

例えば、以下のようなものが出れば制御できます。

fan1_input
fan1_manual
fan1_max
fan1_min
fan1_output

fan1_min と fan1_max を必ず確認してください。

cat "$SMC/fan1_min"
cat "$SMC/fan1_max"
cat "$SMC/fan1_input"

Mac によって値は違うので、1800~5500 RPM などと決め打ちしない方が安全です。


2. 手動で回転数を変更する

まず一時的に 3000 RPM などでテストできます。

echo 1 | sudo tee "$SMC/fan1_manual"
echo 3000 | sudo tee "$SMC/fan1_output"

現在の実回転数:

cat "$SMC/fan1_input"

数秒すると 3000 RPM 前後になっているはずです。

Linux 上の Intel Mac では、fan1_manual=1 にしてから fan1_output に目標RPMを書く方法が使われています。(Ask Ubuntu)

自動制御に戻す

これは重要です。

echo 0 | sudo tee "$SMC/fan1_manual"

手動モードのまま低回転に固定すると、CPU/GPU負荷が上がっても回転数が上がらなくなります。


3. おすすめ:mbpfan で温度連動

Ubuntu 24.04 なら、

sudo apt update
sudo apt install mbpfan lm-sensors

有効化:

sudo systemctl enable --now mbpfan

状態確認:

systemctl status mbpfan

mbpfan は coretemp からCPU温度を読み、applesmc 経由でファン速度を変更します。(GitHub)

設定は:

sudo nano /etc/mbpfan.conf

例えば私は Macmini5,2 なら、まず穏当な設定として次のあたりから試します。

[general]

low_temp = 55
high_temp = 65
max_temp = 80

polling_interval = 1

ファンの min/max は applesmc が報告する値を mbpfan が利用できます。明示的に設定したい場合は、

cat "$SMC/fan1_min"
cat "$SMC/fan1_max"

を確認してから、

min_fan1_speed = 2000
max_fan1_speed = 5500

のように実機の値を使って設定します。mbpfan の標準設定も /sys/devices/platform/applesmc.768/fan*_min と fan*_max を参照する仕様です。(GitHub)

変更後:

sudo systemctl restart mbpfan

4. 温度とRPMをリアルタイム監視

sensors

または、

watch -n 1 sensors

ファンRPMも直接見たいなら:

watch -n 1 "cat $SMC/fan1_input; sensors"

Macmini5,2 なら私ならこうします

常用は mbpfan、手動の fan1_output は動作確認用にします。

最初に、次の結果を貼ってもらえれば、Macmini5,2 の実機値に合わせて /etc/mbpfan.conf を具体的に作れます。

uname -r
lsmod | grep -E 'applesmc|coretemp'
SMC=$(find /sys/devices/platform -maxdepth 1 -type d -name 'applesmc.*' -print -quit)
echo "$SMC"
for f in "$SMC"/fan*; do echo -n "$f = "; cat "$f"; done
sensors

特に fan1_min / fan1_max とアイドル時・負荷時CPU温度が分かれば、「静音寄り」「冷却寄り」のファンカーブを決められます。


この記事を編集
この記事を共有:

コメント


前の記事
中古のCore i7-6700が本物か、ベンチマークを使わずに確認してみた
次の記事
なぜ昔のHPCではPOWERやSPARC、AIXが使われていたのか