💻

Linuxで富士通FMV Lifebookの充電制御をおこなう

に公開

Linuxカーネルが富士通製ノートPC、FMV Lifebookの充電制御に対応したので、その使い方を書いておきます。

手元の実験は以下の環境で行いました。

  • 富士通FMV Lifebook U939 (Intel Core i5 8635U)
  • Linux カーネル 6.11 (Elementary OS 8.0.1)
  • Linux カーネル 6.14 (Kubuntu 25.04)

方法

充電制御はドライバとしてカーネルに含まれており、特別なソフトウェアのインストールや実行は不要です。

バッテリーの充電をnnパーセントで停止したい場合、コマンドラインから以下のコマンドを実行します。

echo nn | sudo tee /sys/class/power_supply/CMB1/charge_control_end_threshold

80%で充電を停止したい場合は以下のコマンドを実行します。

echo 80 | sudo tee /sys/class/power_supply/CMB1/charge_control_end_threshold

この設定は電源を切った後も有効です。したがって、シャットダウン後や休止(Hibernaiton)中に充電を開始しても、バッテリーの充電率が設定した閾値に達すると自動的に充電を停止します。当然、再起動後も有効です。

背景

Linux DesktopをノートPCで使う場合、充電制御を行えるかどうかでノートPCの寿命が大きく変わります。

良く知られているようにリチウムイオン電池を100%まで充電して放置しておくと、急激に寿命が縮みます。そして場合によっては電池の膨張を招きます。これはコンセントに繋ぎっぱなしで使う事が多いラップトップPCとっては致命的な欠点です。

Windowsでは、20年以上前からこの問題に対応する充電制御ソフトウェアがメーカーより提供されていました。しかし、この制御のAPIはメーカー固有である上に非公開であることが多いため、リバース・エンジニアリングに頼らざるをえず、ユーザーとしては実装してくれる有志の出現を待つしかありませんでした。

富士通FMVに関してはSzilard Fabian氏が富士通のFUJ02E3.DLLを解析し、この情報に基づいて作ったパッチがCommit 14c8a14として2024年2月27日にLinuxカーネルに提供されています。このパッチはLinuxカーネル6.9-rc1でマージされ、晴れてカーネル6.9の機能としてリリースされました。

FUJ02E3.DLLは多くの富士通製ノートPCに使われているため、ここ数年のFMV LifebookはLinuxで充電制御できるようになったと思われます。

Discussion