梅本です。 >>>>> On Sun, 21 Aug 2011 22:27:02 +0900 >>>>> Kazumaro Aoki <k...@flu.if0.org> said:
ka> CPUの温度に応じて、CPUの動作周波数を自動修正するようにしたいのですが、 ka> 何か便利なportsとかないでしょうか。 私の知る限り、ports には残念ながらないと思います。 ka> acpi_thermal(4)を見て ka> # sysctl hw.acpi.thermal.tz0.passive_cooling=1 ka> として、いろいろ設定しようかと思ったのですが、 ka> sysctl: hw.acpi.thermal.tz0.passive_cooling: Operation not supported by device ka> といわれて出来ませんでした。 このエラーが出るということは、hw.acpi.thermal.tz0.passive_cooling があ るということですね。thermal zone で passive cooling が 有効の場合、 hw.acpi.thermal.tz0.passive_cooling が 1 になります。1 でないということ は、passive cooling を行うために必要なパラメータ (_PSV, _TC1, _TC2, _TSP) に ACPI BIOS で値が設定されていないということだと思います。 また、ACPI で提供される thermal zone は tz0 のみでしょうか? SMP だと、 tz0 以外の thermal zone で 1 になっている可能性もあります。 本来、_PSV, _TC1, _TC2, _TSP はベンダ側が提供するもので、ユーザが勝手に いじるものではありませんが、世の中には適切な設定になっていない PC もあ るようで、便宜的に変更できるようにしてあります。 hw.acpi.thermal.user_override=1 にすることで、設定可能になります。各パ ラメータの意味については ACPI 仕様書を見てください。 http://www.acpi.info/DOWNLOADS/ACPIspec30.pdf の p.331 あたり (acroread 的には p.347) に計算式があります。これらの値の適正値は PC に よって異なりますので、この値を設定すれば良いということは助言できません。 参考までに、私が使用している Panasonic CF-R8 での値を張っておきます。 hw.acpi.thermal.user_override: 0 hw.acpi.thermal.tz0.temperature: 62.0C hw.acpi.thermal.tz0.active: -1 hw.acpi.thermal.tz0.passive_cooling: 0 hw.acpi.thermal.tz0.thermal_flags: 0 hw.acpi.thermal.tz0._PSV: -1 hw.acpi.thermal.tz0._HOT: -1 hw.acpi.thermal.tz0._CRT: 113.0C hw.acpi.thermal.tz0._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 hw.acpi.thermal.tz0._TC1: -1 hw.acpi.thermal.tz0._TC2: -1 hw.acpi.thermal.tz0._TSP: -1 hw.acpi.thermal.tz1.temperature: 58.0C hw.acpi.thermal.tz1.active: -1 hw.acpi.thermal.tz1.passive_cooling: 1 hw.acpi.thermal.tz1.thermal_flags: 0 hw.acpi.thermal.tz1._PSV: 88.0C hw.acpi.thermal.tz1._HOT: -1 hw.acpi.thermal.tz1._CRT: 130.0C hw.acpi.thermal.tz1._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 hw.acpi.thermal.tz1._TC1: 0 hw.acpi.thermal.tz1._TC2: 3 hw.acpi.thermal.tz1._TSP: 40 -- 梅本 肇 @ インターネット互助会横浜 http://www.imasy.org/~ume/ u...@mahoroba.org ume@{,jp.}FreeBSD.org プログラムは書いた人の意図ではなく書かれた通り動く I hate Modula-3 :-)