2021年2月18日木曜日

Raspberry Pi 4をSSDから起動しよう

0. はじめに

Raspberry Pi は microSDカード(旧タイプはSDメモリーカード)にOSをインストールして起動するのが一般的です。その場合、microSDカードへのアクセス速度の遅さから、OSが一瞬止まったような動作をすることが時々あります。

それを解消するためにはいくつかの方法があります。例えば、2020年10月に発表されたRaspberry Pi 4 Compute ModuleにはeMMCというストレージが搭載されているモデルがあります。eMMCにOSをインストールすることで、microSDカードを用いる場合よりも快適に動作することが期待されます。

しかし2021年2月現在、Raspberry Pi 4 Compute Moduleは日本ではまだ発売されておりませんし、発売されていたとしても、別途I/Oボードが必要になるなど、通常のRaspberry Pi 4よりも利用する際の敷居は高くなるでしょう。

一方、Raspberry Pi 4 では、microSDカードからではなくUSBデバイスからOSを起動することが容易になっており、USB接続のSSDにOSをインストールすることで快適にRaspberry Piを利用できるようになります。この方法は、以前は64ビット版のベータ版OSでの検証記事が多かったのですが、今回32ビット版の公式OSでも問題なく実現できたので、記事にまとめることにしました。

以下の2つの方法を紹介します。
  • [方法1] Buffalo のUSBスティックタイプのSSD (SSD-PUT250U3) を用いる方法
  • [方法2] M.2 SSDを利用可能にするケース Argon One M2 を用いる方法
下図は[方法1]に従い、Raspberry Pi 4 をBuffalo のUSBスティックタイプのSSD (SSD-PUT250U3) で利用している様子です。
以下で解説していきます。

1. Raspberry Pi 4 に対する準備

上の[方法1]、[方法2]のどちらの方法をとるにせよ、Raspberry Pi 4であらかじめ以下の2点の準備をしておく必要があります。
  • Raspberry Pi 4 のファームウェアを最新にしておく
  • Raspberry Pi 4 の起動の優先順序を変更しておく
これらの設定を行うためには、あらかじめ Raspberry Pi 4 を microSD カードにインストールしたOSで起動できるようにしておく必要があります。このページを見るような方には不要かもしれませんが、microSDカードへのOSのインストール方法を解説したページへのリンクを張っておきます。2020年3月より、Raspberry Pi Imagerというソフトウェアを用いてインストールする方法が主流となっておりますので、そちらに慣れておくことをお勧めします。

以下の内容は2021年1月版のOSで検証しました。

さて、microSDカードから起動したOSで、まずRaspberry Pi 4のファームウェアを最新にしましょう。 現在インストールされているファームウェアを確認するには、ターミナルで以下のコマンドを実行します。
sudo rpi-eeprom-update
すると、例えば以下のような表示が現れます。
CURRENT と表示されているのが現在インストールされているファームウェア、LATESTと表示されいてるのがアップデート可能な最新のファームウェアです。上図ではCURRENTとLATESTが一致していることがわかります。 本ページの内容を確認するには、少なくともCURRENTが2021年1月以降のファームウェアである必要があります。

Raspberry Pi 4のファームウェアをアップグレードしたい場合、以下の3コマンドを順に実行することで、OS自体を最新にする方法が公式で紹介されています。
sudo apt update
sudo apt full-upgrade
sudo reboot
もし、OS全体の更新ではなく、ファームウェアだけの更新を行いたい場合、以下の2つのコマンドを順に実行すると良いようです。
sudo rpi-eeprom-update -a
sudo reboot
以上の操作により、Raspberry Pi 4 のファームウェアが最新になりました。次に、Raspberry Pi 4 の起動の優先順序を変更します。

ターミナルで以下のコマンドを実行し、raspi-config を起動します。
sudo raspi-config
raspi-config は、初めて使う方にとっては操作に癖のあるツールですので、以下の手順に丁寧に従っていきましょう。

まず、raspi-configを起動すると以下のような画面になります。ここで、「↓」キーを5回押し、「6 Advanced Options」の項目にフォーカスを合わせます。
下図のようになりますので、ここでEnterキーを押し、Advanced Options の項目に入ります。
Advanced Optionsの項目で「↓」キーを5回押し、「A6 Boot Order」の項目にフォーカスを合わせ、Enterキーを押します。
すると、起動順序として下図の3つの選択肢が現れます。
ここで選んでよいのは、
  • B1 SD Card Boot(まずSDカードからの起動を試し、失敗したらUSBからの起動を試す)
  • B2 USB Boot(まずUSBからの起動を試し、失敗したらSDカードからの起動を試す)
のどちらかです。USB端子にSSDが接続されており、microSDカードが差さっていない状況なら、どちらを選んでもUSB接続のSSDからOSが起動するようになります。
(上記2つの選択肢で違いが現れるのは、USB接続のSSDとmicroSDカードの両方を同時に接続してRaspberry Pi 4を起動した場合です)

「B1 SD Card Boot」を選ぶ場合は何も押さず、「B2 USB Boot」を選ぶ場合はキーボードの「↓」キーを一回押してから、Enterキーを押して下さい。

なお、古いバージョンのraspi-configでは「SD Card Boot」に相当する項目がありませんので、必然的に「USB Boot」に相当する項目を選ぶことになります。

例えば「B1 SD Card Boot」を選んでEnterキーを押した場合は以下の表示が現れますので、Enterキーを押します。
すると、raspi-configの最初の画面に戻りますので、TABキーを二回押し、「Finish」に項目を合わせてからEnterキーを押します。
すると、下図のように再起動を促されますので、Enterキーを押して再起動しましょう。
以上で Raspberry Pi 4に対する準備は終了です。再起動が終わったら、Raspberry Pi 4の電源を一旦切りましょう。

2. Buffalo のUSBスティックタイプのSSD (SSD-PUT250U3) を用いて Raspberry Pi 4 を起動する

ここからは、Buffalo のUSBスティックタイプのSSD (SSD-PUT250U3) を用いて Raspberry Pi 4 を起動する方法を解説していきます。

といっても、こちらは非常に簡単です。microSDカードへのOSのインストール方法にて、Raspberry Pi Imagerを用いたOSのインストール方法を解説しています。その方法を用いて、Raspberry Pi Imager でUSBスティックタイプのSSD (SSD-PUT250U3)に対してOSを書き込むだけです。なお、OSは「Raspberry Pi OS (other)」の「Raspberry Pi OS Full (32-bit)」を選択しました。

OSのインストールが完了した SSD を接続する際、以下のことに注意します。
  • Raspberry Pi 4 のUSB端子のうち、青い色のUSB3対応の端子にSSDを接続する
  • Boot Order(起動順序)で「SD Card Boot」を選択した方は、microSDカードをRaspberry Pi 4から取り外す
  • Boot Order(起動順序)で「USB Boot」を選択した方は、microSDカードが接続されていても、SSDからRaspberry Pi 4が起動する
さて、以上の解説でUSB接続のSSDからOSは起動したでしょうか?
起動した後は通常のRaspberry Pi OSと変わらないので難しいことはありません。私が使った上での感想をいくつか述べます。

[長所]

microSDカードに比べるとアクセスが速いので快適に感じるはずです。ただし、「通常のPCと同程度の速度になるのでは?」などと期待しすぎると「大したことないじゃん」と感じるかもしれません。この辺りの感じ方には個人差があるでしょう。 なお、逆にSSD起動のOSに慣れてからmicroSDカード起動にOSに戻るとかなり動作の遅さを実感できます。特に、ディスクアクセスの多いOSの更新などでは大きな違いを実感します。まとめると、劇的というほどではないけれど堅実な速度向上、といったところでしょうか。

[短所]

これはBuffaloのSSD-PUT250U3特有の問題なのですが、小型とは言え通常のUSBメモリに比べると大きいので、USB端子部で他のUSBデバイスと物理的に干渉します。具体的には、マウスをUSB端子に差そうとするとSSDとぶつかるという問題が起こりました。ギリギリ差せるので大きな問題にはなりませんが、気になる人は気になるでしょう。

あと、これは私が所持しているマウスデバイスの問題かもしれないのですが、無線2.4GHzの無線マウスを使うとマウスポインタの動きが滑らかではなくなる、という問題が起こりました。

結局、マウスに関する上記2点の問題を解決するため、私は Bluetooth 3 のマウスとキーボードを購入しました。これ (M-BT15BRSBK)これ (TK-FBP102BK)です。Bluetooth 4 (BLE) のマウスやキーボードはデフォルトではRaspberry Pi に接続できないはずですので注意してください。 また、ペアリング時は有線または無線2.4GHzのマウスが必須となりますので、購入する場合はそれをわかった上で購入しましょう。

3. M.2 SSDを利用可能にするケース Argon One M2 を用いて Raspberry Pi 4 を起動する

次に、もう一つの Argon One M2 というケースを用いる方法を紹介します。これは、2020年末のITmediaの記事で紹介されていたもので、今回私がSSDを試してみたいと思ったのも、この記事がきっかけでした。

実際に使用している様子が下図です。GPIO部が開けられるようになっており、電子工作にも向いているのが特長です。他にも、microHDMI端子がHDMI端子に変換されている点もメリットといえるかもしれません。 デザインがもう少し洗練されていればよいのになあと個人的には思いますが、これは好みの問題でしょう。なお、このケースにはとんでもない欠点もあるのですが、それは後述します。
Argon One M2を利用するには、M.2 SATA SSD (Key-BまたはKey-B&M) を別途用意する必要があります。私が購入したのは下記の二つです。 組み立ては付属の説明書に従い、OSのインストールは上に記したITmediaの記事に従うと良いでしょう。

組み立て時の注意としては、下図のジャンパが挙げられます。 デフォルトでは図のように1-2ピンをショートするようにジャンパが接続されており、これは「電源接続後にパワーボタンを押す必要がある」ことを意味します。Raspberry Pi のデフォルトの挙動のように「電源を接続すると即電源が入る」状態が良い場合はショートするのを2-3ピンに変更しましょう。
OSインストール時のポイントは、「microSDカードにあらかじめRaspberry Pi OSをインストールして起動し、そのmicroSDカード上のOSをRaspberry Pi上でSD Card CopierというツールでSSDにコピーする」ということです。その際、microSDカードとSSDを同時に差した状態でOSを起動することがあり得ますので、raspi-configの起動順序(Boot Order)の設定は「B2 USB Boot」とするのがよいでしょう。

さて、無事 Argon One M2 を用いてSSDでRaspberry Pi 4 を起動できたでしょうか。起動後はターミナルを起動して以下のコマンドを実行しましょう。ケースファンを制御するプログラムがインストールされます。
curl https://download.argon40.com/argon1.sh | bash
そのプログラムの設定は下記のコマンドで行うようです。これらはこちらのWikiに書いてあります。
argonone-config  #configure driver
argonone-uninstall  #uninstall driver
このようにSSDをケース付きで利用できるようになる Argon One M2 なのですが、大きな欠点があります。

それは、事務机のように金属が埋め込まれた机の上に置いて利用すると、Wifiがほとんどつながらなくなる、ということです。ケースの上半分が金属であり、机も金属だとほぼシールドされるからだと思うのですが、 この仕様を知ったときはさすがに驚きました。大手メーカーの商品ならばあり得ないような設計ミスだと思います。

仕方ないので、私はArgon One M2を下図のように、手元にあったニンテンドーDSのソフトウェアの空きケースの上に置いて使っています。これだけでWifi接続がかなりマシになります。
というわけでこの Argon One M2、個人的にはあまりお勧めできないですね。木やプラスチック製の机の上で使うならば問題ないと思うのですけどね。もちろん、有線LANを使う場合も大丈夫でしょう。

4. おわりに

以下の2つの方法でRaspberry Pi 4をSSDから起動する方法を紹介しました。価格の面でも難易度の面でも、USBスティックタイプのSSDの方がお勧めです。興味のある方は試してみてはどうでしょうか。
  • [方法1] Buffalo のUSBスティックタイプのSSD (SSD-PUT250U3) を用いる方法
  • [方法2] M.2 SSDを利用可能にするケース Argon One M2 を用いる方法



「ラズパイ4対応 カラー図解 最新 Raspberry Piで学ぶ電子工作」、「実例で学ぶRaspberry Pi電子工作」、「Raspberry Piではじめる機械学習」を執筆しました。