sudo emacsが/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeedを変更できないのはなぜですか?

sudo emacsが/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeedを変更できないのはなぜですか?

/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed内容を800000から1600000に編集して変更したいです。

  1. 初めてemacsを使ってみました。

    $ sudo emacs -nw /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
    

    Emacsはファイルの値を1600000に変更し、変更を保存するとメッセージバッファに次のように表示されます。

    Saving file /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed...
    Wrote /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
    

    しかし、emacsを終了してファイルを再読み込みしても、値はまだ800000です。

  2. それでは別の方法を試してみましょう。

    $ sudo less /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
    

    ここでクリックしてvナノのデフォルトエディタを呼び出し、値を変更します。 nano以下を終了した後、ファイルを再確認してみたところ、ファイルが正常に変更されたことがわかりました。

最初の方法は機能しませんが、2番目の方法は機能する理由を知りたいです。

私はThinkpad T400でUbuntu 16.04を実行しています。ありがとうございます。

答え1

コメントから:

Emacsはファイルを保存するときに古いファイルの名前を変更し、バックアップファイルとして作成し、元の名前で新しいファイルを作成します。私はあなたのケースで何が起こっているのか、なぜEmacsが文句を言わないのかわかりませんが、Emacsは間違いなく間違ったツールです。 ——ジョン・マイレーン

正しいツールは、古いファイルの名前を変更するのではなく、元のファイルを上書きまたは追加するツールである必要があります。

覚えておいてください:以下は実用的で/sys継続的な文書ではありません。これはすべてファイル形式で提供されるカーネルパラメータとステータス情報です。移動、名前の変更、削除はできません。

以前は、これらの設定を操作するためにコマンドを(またはすぐに)それぞれにするcpufreq-infoことができます。cpufreq-setcpupower frequency-infocpupower frequency-set

答え2

コメントで述べたように、1600MHzの速度を設定する伝統的な方法は次のとおりです。

echo 1600000 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed

効果を確認するには、次を使用します。

$ cd /sys/devices/system/cpu/cpu0/cpufreq/
$ paste <(ls *) <(cat *) | column -s $'\t' -t
affected_cpus                             0
cpuinfo_max_freq                          3500000
cpuinfo_min_freq                          800000
cpuinfo_transition_latency                4294967295
energy_performance_available_preferences  default performance balance_performance balance_power power 
energy_performance_preference             balance_performance
related_cpus                              0
scaling_available_governors               performance powersave
scaling_cur_freq                          807325
scaling_driver                            intel_pstate
scaling_governor                          powersave
scaling_max_freq                          3500000
scaling_min_freq                          800000
scaling_setspeed                          <unsupported>

scaling_setspeedi7-6700HQがあるのでマイコンピュータに設定できません。従来の第3世代i7-3630QMも同様です。

したがって、これらのプラットフォームでは同じレベルにscaling_min_freq設定し、絶対に変動しません。おそらくすべてのCPUに同じ設定を適用します。scaling_max_freqp_state.../cpu0/....../cpu7/...

関連情報