Rasberry Pi 4 Model BにUbuntu Server 22.04 LTSを導入

2022年5月16日月曜日

3Dプリンター Linux Rasberry Pi

t f B! P L
Rasberry Pi 4 Model BにUbuntu Server 22.04 LTSを導入.md

目的

以下を目的として環境を構築した。

  • 3DプリンターPrusa i3 MK3S+の管理
  • インターネットVPN

ソフトウェア構成

ソフトウェア要件と選択した理由を共に述べる。

ソフトウェア要件

  • OS
    • 長く利用できる。
    • 利用ユーザが多く情報が豊富。
  • 3DプリンターPrusa i3 MK3S+の管理
    • 使用ユーザが多く情報が豊富。
  • インターネットVPN
    • 高速。
    • 構築が容易。

OSの選定

Ubuntu Server 22.04 LTSを選択した。
OctoPrintがすぐに使えるOctoPiという選択肢もあったが、2022年5月16日時点では、OctoPi 64bit Stable版がなく、ベースとしているOSもDebian 10.0(buster)派生のUbuntu 20.04 LTSがベースと少し古いです。
OctoPi 32bitはStable版こそ存在しますが、Debian 10(Buster)派生のRaspberry Pi OSがベースになっており、こちらも少し古いです。

恐らくは、将来はOctoPi 64bitもUbuntu 22.04 LTSベースになると思いますが、2022年5月16日時点ではリリースされていませんでした。

なお、Ubuntu 22.04 LTSは2022年4月21日に長期サポート版がリリースされたばかりのため、2027年4月までの5年間は無償でメンテナンスされます。
Ubuntu DesktopではなくUbuntu Serverにしたのは、GUI操作は想定していないのが理由です。

3Dプリンター管理の選択

OctoPrintを選択した。
これは他の選択肢があまりなかったためです。

インターネットVPNの選択

WireGuardを選択した。
L2TP/IPSec、OpenVPN、PPTPなどを検討したが、Linux環境での構築が容易である事からWireGuardにしました。

ハードウェア構成

ハードウェア要件と選択した理由を共に述べる。

ハードウェア要件

要件として以下を考えた。

  • インターネットVPNや3Dプリンターの管理程度なので、電気代も限定的であるRaspberry Piから選択する。
  • 3Dプリンターの稼働音がそこそこ大きいので、Raspberry Piの稼働音を抑えてもあまり意味がないため、ファンレスと比較すると冷却性能の高いファン付きのケースを選択する。
  • OctoPrintでカメラを使うため、カメラモジュールのリボンケーブルの取り回しが出来るケース。
  • 配置や角度を自由に調整出来るようにするため、カメラは三脚が使えるもの。
  • インターネットVPN用途にも使うため、WireGuardを動作する余裕のあるCPU。OpenVPNよりはCPUに負荷がかかるため。

ハードウェアの選択

要件を満たすものとして選定したものと、理由は以下の通り。

  • Raspberry Pi 4 Model B 8GB
    • 2022/5/15時点で最新のRaspberry Piが4 Model B。
    • ARM Cortex-A72のクアッドコア 1.5GHzと2022年5月16日時点でRasberry Piシリーズで最速のCPU。
    • メモリ搭載量(1GB/2GB/4GB/8GB)の違いによって、ほとんど電力消費量も変わらない...どこかでみたので8GBメモリ構成を選択。
  • Miuzei Raspberry Pi 4 ケース
    • カメラモジュールに対応したケースで、価格が安く電源もついていた。
  • Raspberry Pi HQ Camera
    • Rasberry Piでは定番のRaspberry Pi Camera Module V2のセンサーサイズは3.68 x 2.76 mmだが、HQ Cameraは6.287mm x 4.712 mmとセンサーサイズに倍近く差があり、センサーサイズが大きい方が明るく映るため。
    • HQ Cameraはそのまま三脚固定出来るネジ穴があった。
    • HQ Cameraには赤外線フィルタが付いているため、暗い撮影には不向きと思われるが、自宅はhueで部屋のライトを外出時でもコントロール出来るため問題なし。
  • Raspberry Pi HQ Camera用6 mm 広角レンズ
    • HQ Cameraにはレンズがついておらず、望遠と広角から選択する必要があったが、使用するシチュエーションが接写のため。
    • レンズ側にも赤外線フィルタが付いているため暗い撮影には不向きと思われるが、自宅はhueでライトをコントロール出来るため必要に応じてリモートで電気を付ければ良いだけなので問題なし。
  • Vivan-Star Raspberry Pi カメラケーブル 200CM + 100CM + 50CM RPi用リボンフレックス延長ケーブル
    • HQ Cameraに付属のリボンケーブルが20cmと短いため、50cmのリボンケーブルを使用するために購入した。

環境構築

大まかな流れとしては以下の通りです。

  1. Raspberry Pi Imagerをダウンロードし、Windowsなどの作業用パソコンにインストール。
  2. 作業用パソコンにMicroSDカードを挿し、Raspberry Pi ImagerでWiFi設定や初期パスワードの設定をするカスタマイズをしてから、MicroSDカードにUbuntu Server 22.04 LTSのイメージを書き込む。
  3. Raspberry Pi 4にUbuntu Server 22.04 LTSイメージが書き込まれたMicroSDカードを挿し起動する。
  4. Ubuntuのシステムを最新化する。
  5. Ubuntuの初期設定をする。
  6. DynamicDNSの自動更新設定をする。
  7. WireGuardの設定をする。
  8. OctoPrintの設定をする。

人によって環境が異なると思うので、読み替えて下さい。 私の場合は事前にWiFiルータでRaspberry Pi 4のIPアドレスが固定になるよう設定しているのと、MACアドレスのホワイトリストにRaspberry Pi 4のWi-Fi MACアドレスを登録しています。

Ubuntu 22.04 LTSのインストール

今回は、MicroSDカードにインストールしていますが、3Dプリンターの動画の保存など書き込み量が多い場合は、書き込み耐性のあるSSDにした方が無難かもしれません。Raspberry Pi 4の場合、USB接続デバイスからのブートするには、Bootloader EEPROMが2020年9月以降のものになっている必要があります。

  1. 作業用パソコンに、Raspberry Pi ImagerのWindows版をダウンロード https://www.raspberrypi.com/software し、インストールする。
  2. Rasberry Pi 4のために用意した64GBのMicroSDカードを作業用パソコンに挿し、Raspberry Pi Imagerを起動する。
  3. 「OSを選ぶ」を選択し、「削除」を選択します。
  4. 「ストレージを選ぶ」を選択し、64GBのMicroSDカードを選択します。選択対象を誤ると意図しないディスクのデータが消失します。
  5. 「書き込む」を選択し、確認画面で「はい」を選択します。Raspberry Pi Imagerでは64GBのMicroSDカードでもFAT32でフォーマットする事が可能です。なお、Windows10/11標準のフォーマッタではFAT32が選択できるのは32GBのディスクまでとなり、それを超えるディスクの場合はexFATかNTFSしか選択出来ません。そのため、Raspberry Pi Imagerを使いましょう。
  6. FAT32でフォーマットが完了したら、「Other general-purpose OS」→「Ubuntu」→「Ubuntu Server 22.04 LTS (Rpi Zero 2/3/4/400) arm64」を選択します。armhfは32bit版です。
  7. 「ストレージを選ぶ」を選択し、64GBのMicroSDカードを選択します。繰り返しになりますが、選択対象を誤ると意図しないディスクのデータが消失します。
  8. 右下の歯車マークを選択します。
  9. 「SSHを有効化する」にチェックを入れ、「パスワード認証を使う」を選択します。
  10. 「ユーザ名とパスワードを設定する」にチェックを入れ、ユーザ名とパスワードを入力します。
    パスワードはKeepassなどのパスワード管理ソフトを使い、大小英字、数字、記号を混在した15文字以上のものを設定した方が良いです。
    どうせパスワード管理ツールからコピペしますし、文字数を増やすと指数関数的に組み合わせ数が増えるため、強度が増します。
    また、スクリーンショットだとpiユーザになっていますが、こちらも変更するのが好ましいです。
    なぜなら、Bullseyeより古いRaspberry Pi OSのデフォルトユーザがpiというのが知られているためセキュリティリスクになっているためです。
    そのような事情もあり、Raspberry Pi OS(Bullseye)からは、デフォルトのpiユーザーが削除され、代わりに初回起動時にユーザーが作成されるようになりました。
    https://www.raspberrypi.com/news/raspberry-pi-bullseye-update-april-2022
  11. 「Wi-Fiを設定する」にチェックを入れ、自宅のWiFiルータのSSIDを入力します。私の環境では、WiFiルータと同じ部屋にRaspberry Piを設置しているため、干渉が少ない5GHz帯のSSIDを入力しています。 なお、日本国内で利用する場合は、「Wifiを使う国」には必ず"JP"を選択して下さい。
  12. 「ロケール設定をする」にチェックを入れ、「タイムゾーン」に"Asia/Tokyo"、「キーボードレイアウト」に"jp"を選択します。
  13. 「保存」を選択します。
  14. 「書き込む」を選択し、確認画面で「はい」を選択します。
    書き込みが正常に終了したら、MicroSDカードを取り外し、「続ける」を選択します。
    これでMicroSDカードにUbuntu Server 22.04 LTSのイメージの書き込みが完了です。
  15. Raspberry PiにMicroSDカードを挿して起動する。
  16. TeraTermやRloginなどのターミナルソフトでSSH接続する。

Ubuntu Server 22.04 LTSインストール後は次の記事で。

QooQ