Raspberry Pi OSをSSDドライブから起動させても、Ubuntuをインストールしても、サクサク度が僅かに足りないなと感じます。
CPUをオーバークロックして、ほんの僅かでもスピードアップすると快適に使えると思われるので、色々と試してみました。
オーバークロックは過去にも記事にしてあります。今回はRaspberry Pi 4とBullseyeの組み合わせです。
目次の「最終的に落ち着いた設定」で使っています。
新しいRaspberry Pi 4の最大周波数は1.5Ghz→1.8Ghz
最近になって購入した人は、Raspberry Pi 4(2GB、4GB、8GB)の基板が少し異なることに気が付きましたか? いつも少しずつアップデートを続けているので、ニュースにならないと気が付きませんよね。

Raspberry Pi 400は登場から1.8GHzが最大で動作しています。Raspberry Pi 4の各メモリーモデルも、このターボモードクロックが1.5GHzから1.8GHzに増加しています。
これは、メモリー8GBをサポートするために付けられた電圧のスイッチャーと公式から説明されていました。

なんか得した気分になる?

発売当初に購入した人は損したような…

価格が高騰してるからトントンだな
この記事は、初期の頃のRaspberry Pi 4で試しました。
ブーストと計測するコマンド
Raspberry Pi 4と400は、可変で周波数が変わる上限が設定されています。4は1.5Ghzまで、400と新しい基板の4は1.8GHzです。
最新のOSなら、config.txtの下部に記載されていると思います。
arm_boost=1
クロック周波数を計測し続けるのに、以下のコマンドで確認しましょう。
watch -n 1 vcgencmd measure_clock arm
アイドル時は最低の600GHzで、ビジーになると1.5や1.8GHzに上がっていることが分かります。

温度の場合は以下です。
watch -n 1 vcgencmd measure_temp
設定はconfig.txtに追記
どのRaspberry Piモデルでも、Config.txtで設定すればオーバークロックは可能です。
/boot/config.txtに追記すると設定できます。以下のような場所のコメントアウト(無効)が見つかります。この下にでも追加していきます。(行頭に#を付けることで無効)
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
over_voltage=6
arm_freq=2000
この組み合わせが少し分かりづらかった。
force_turbo=1
over_voltageコマンドの範囲は「-16〜8」です。(デフォルト値は0)
※但し、7と8を設定するには、force_turbo=1を一緒に追記しないと有効にならないと記載がありました。Values above 6 are only allowed when force_turbo=1 is specified: this sets the warranty bit if over_voltage_* > 0 is also set.
非エンジニアとしては、電圧の細かな違いが分かりません。電圧は高すぎても安定しませんが、逆に低すぎても駄目です。特に周辺機器を使っている場合など、電圧が低下する要素があると低電圧状態に陥ります。
数値でいうと、4.8V以上に保つことが必須のようですね。
ちなみに、電圧が足りないと画面右上に小さな稲妻が表示されます。そうなると、CPUの速度はのデフォルトの700MHzに低下してしまいます。
つまりデフォルト状態でしか動作しなくなります。これはデスクトップの画面が出てすぐに、右上にメッセージや稲妻マークで気が付きます。

NASPiなどのキットケースでは、拡張基板を使っていますので、設定する数値は少し下げた方が良いでしょう。
CommanderPiで楽々設定!
CommanderPiなら視覚的に分かりやすいのでオススメです。

githubからダウンロードします。
git clone https://github.com/Jack477/CommanderPi
フォルダ内にあるインストールスクリプトに実行権を与えてからインストールを実行します。
cd CommanderPi
sudo chmod +x install.sh
./install.sh
デスクトップにショートカットアイコンが出ています。


Advanced Toolsをクリックすると、オーバークロックの設定が可能です。
他にも便利な設定ができます。ここでは省きます。
現在の設定が上部に表示されていますね。


枠で囲った部分に、オススメの値と、最大の値が表示されています。オススメである2GHzで、GPUも600GHz、電圧レベル6で設定しました。
設定は、黄色枠で囲った部分に値を入れ、隣のSetボタンで確定します。2000 600 6
GPUを設定したくないなら、そのまま空白で構いません。
最後に適用と再起動のボタンで再起動させれば、起動後に設定された値で動作しているハズです。もう一度Commander Piを起動し、リアルタイムの値で確認しましょう。
最終的に落ち着いた設定

色々と試した結果、最低を1.2GHzにして、最大を2.0GHzにしました。電圧はforce_turbo=1を付けずに6としました。
over_voltage=6
arm_freq_min=1200
arm_freq=2000
1度、force_turbo=1で設定したら起動しなくなりまして、復旧をしなくてはならずに困ったので、今はforce_turboを設定していません。

force_turbo=1は怖い
force_turbo=1が無いということはforce_turbo=0(デフォルト)です。つまり可変(オンデマンド)
可変で最低をデフォルトの600MHzより多く、1.2GHzにしてみたのです。消費電力は多くなります。下限の数値は色々と試してみてください。
電圧は6にしました。force_turbo=1を記載しないで済む最大値です
ターボを有効にすると、固定で周波数を決めることになるので、かなり電圧が必要ということになります。これは電源アダプターの性能も影響します。品質が良いか、余裕のある電源を使わないとなりませんね。
NASPiでは…
NASPiで試したところ、低電圧アラートが出てしまいました。
古いRaspberry Pi 4ですから、1.5GHzです。それを400と同じ1.8GHzに設定するとアラートは出てきません。
→ 追記:やはり出てきてしまいました。
over_voltage=6
arm_freq=1800
ちなみに、arm_boost=1のままです。
キット化されたRaspberry Pi 4、特に電源を使う基板などを追加した場合、そこに持って行かれるからでしょう。(1.5Vと表記あり)
気持ち程度にアップした1.8GHzで我慢するか、電源アダプターを変えないとダメでしょうね。

Argonでは…
ArgonもNASPi同様に拡張基盤があります。
しかし、こちらは消費電力が少ないのか、電圧低下のメッセージは出ませんでした。冷却ファンは100%で回しています。

使った電源コアはこちら

電源コアを変更して安定していたのは、Anker製でした。
この製品は、出力が3.6-6.5V=3A、6.5-9V=2A、9-12V = 1.5Aというものです。6.5Vまで3Aというのが良いのでしょうか、電気には詳しくありませんので実体験のお話です。
USBケーブルにも気をつけましょう。品質によっては上手くいかないことも多いようですよ。
電圧に困ったら、試してみるのはいかがでしょうか。

GPUの設定はやめたほうがいいかも
CPUと同じようにGPU(グラフィック)の速度も変更できます。
GPUのデフォルト値は500、最大で750まで設定できます。(Raspberry Pi4)
次がMaxの値です。
over_voltage=6
arm_freq=2147
gpu_freq=750
壊したくもないので、GPUはいつもイジりません。Maxにもしません。
起動不能からの復帰
もしも失敗したら、一時的に、無効にして再設定することができます。
オーバークロックを施したことでRaspberry Piが起動せず、真っ黒い画面から復帰させるには、再度電源を入れた起動時に、Shiftキーを押したままにします。
これでオーバークロックが一時的に無効になり、正常に起動します。その状態で設定を再編集して元に戻しましょう。
しかし、
私の場合は復帰できませんでした。
仕方ないので、別のマシンにmicroSDカード(またはSSDドライブ)を接続して、bootにあるconfig.txtを編集しました。
シフトキーを押しながら起動時すると、上部にメッセージが1行出てきます。それでOKになったと思ったのですけどね。
復旧方法
- 再度電源を入れた起動時に、Shiftキーを押したままにします。その後にConfig.txtを修正する。
- 別のマシンでConfig.txtを修正する。
更に駄目な場合は、そのメディアを諦めるしかないでしょう。
試しに無事に起動するmicroSDカードからSSDドライブへコピーしてもRaspberry Pi 4は起動したので、基板自体が壊れたわけではないことは分かりました。
オーバークロックは保証外
保証が効かなくなるので、arm_boost=1の状態が良いでしょう。
config.txtに記載するCPUの周波数は、arm_freq = 2000
までは問題なく動作すると感じました。
オーバークロックは気をつけて設定しましょう。