みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

Raspberry Pi 4Bをセットアップする

Raspberry Pi 4B 4GBを購入しました.自宅で24時間稼働するDockerの実行環境として使うためにセットアップした時のことを備忘録としてまとめました.

なお,項目ごとに分類したことにより,時系列が前後する記述があります.

f:id:atsuhiro-me:20210306191858j:plain

仕様

Raspberry Pi 4B 4GB

f:id:atsuhiro-me:20210304113850j:plain:w360

  • Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
  • 4GB LPDDR4-3200 SDRAM
  • 2.4 GHz and 5.0 GHz IEEE 802.11ac wireless, Bluetooth 5.0, BLE Gigabit Ethernet
  • 2 USB 3.0 ports; 2 USB 2.0 ports.
  • Raspberry Pi standard 40 pin GPIO header (fully backwards compatible with previous boards)
  • 2 × micro-HDMI ports (up to 4kp60 supported)
  • 2-lane MIPI DSI display port
  • 2-lane MIPI CSI camera port
  • 4-pole stereo audio and composite video port
  • H.265 (4kp60 decode), H264 (1080p60 decode, 1080p30 encode)
  • OpenGL ES 3.0 graphics
  • Micro-SD card slot for loading operating system and data storage
  • 5V DC via USB-C connector (minimum 3A*)
  • 5V DC via GPIO header (minimum 3A*)
  • Power over Ethernet (PoE) enabled (requires separate PoE HAT)
  • Operating temperature: 0 – 50 degrees C ambient

Buy a Raspberry Pi 4 Model B – Raspberry Pi

Raspberry Pi 4 Model B specifications – Raspberry Pi

日本のKSY社より購入し,送料・税込みで7000円でした.2021/03/07現在,https://thepihut.com/でヨーロッパ向けに63 ユーロ(約8000円)で販売されているので,リーズナブルだと思いました.

ヒートシンクの取り付け

5V 3Aの電源を要求する仕様のため15W程度の発熱に対応できるように工夫しなければなりません.ファンを取り付けるのもよいのですが,せっかくならば無音にしたいと思い,Raspberry Pi用の大きなヒートシンクを2000円で購入しました.

f:id:atsuhiro-me:20210304113717j:plain:w360

Assembling the Heatsink Case - Pimoroni Yarr-niversity

CPU, RAM, USBコントローラーに熱伝導パッドを装着して巨大なヒートシンクでRaspberry Pi 4Bを覆うような構造になりました.

f:id:atsuhiro-me:20210304121045j:plain:w360

2時間ほどChromiumでYouTubeを再生して負荷テストをしましたが,ヒートシンクは触ると温かい程度で推移し,Raspberry Piで高温の警告は出ませんでした.ファンなしで安定して稼働できることが分かりました.

電源の供給

最初に,我が家に余っていた出力が5V 3AのUSB充電器を用いて,USB-C端子より電源を供給しましたが,電圧が低いという警告が出ました.また,USB-C端子を電源用に使うのはもったいないと思いました.GPIO端子より給電できるようなので,こちらを使用することにしました.

GPIO

f:id:atsuhiro-me:20210306180128p:plain:w360

GPIO - Raspberry Pi Documentation

電源ケーブルの作成

我が家に転がっていたGPIOケーブルと,我が家のACアダプタボックスから発掘した,出力が5V 3.7AのACアダプタを使って,電源ケーブルを作成しました.テスターでプラス側を確認し,銅線同士をはんだ付けして,熱収縮チューブで保護しました.これを+5V端子とGND端子に接続します.

f:id:atsuhiro-me:20210306161112j:plain:w360

f:id:atsuhiro-me:20210417193837j:plain:w360

Raspberry Piに接続したところ,低電圧エラーは表示されなくなりました.USBでキーボードやマウス,ストレージ,スマートフォンなどを同時に接続しても問題なく動作するようになりました.

f:id:atsuhiro-me:20210306191846j:plain:w360

映像出力

4K 2枚のディスプレイに対応していますが,micro-HDMIという規格で出力されます.我が家にはmicro-HDMIに対応したモニターは存在しないので,アダプタを介してHDMIケーブルで接続することにしました.

近所のダイソーで100円のmicro-HDMI変換アダプタを購入しました.Amazonで購入すると最低でも600円,近所のエディオンでは2900円!するものなので,ダイソーのアダプタはとても安いです.

f:id:atsuhiro-me:20210306145927j:plain:w240

Raspberry Piのmicro-HDMIコネクタにアダプタを接続し,HDMIケーブルでモニターに接続したところ,一切設定せずに問題なくデスクトップ画面が表示されました.100円なのにちゃんと動作するのは素晴らしいです.

f:id:atsuhiro-me:20210306191847j:plain:w360

micro-HDMIアダプタを使用するデメリットは,ディスプレイを2枚接続しようとすると,Raspberry Piのmicro-HDMI端子同士が隣り合っていることにより,アダプタ同士が物理的に接触して使えないことです.2枚のディスプレイを使う場合はmicro-HDMIケーブルを購入するしかなさそうです.

OSのインストール

2021年現在は,Raspberry Pi Imagerというソフトウェアが公開されており,とても簡単にmicroSDカードにOSを書き込めます.

Raspberry Pi OS – Raspberry Pi

最初はRaspberry Pi Foundationが公開しているRaspberry Pi OSを使ってみました.以前はRaspbianという名前だったみたいですが,今はRaspberry Pi OSという名前になっているようです.GUIを含まないRaspberry Pi OS Liteも公開されているので,サーバー用途にピッタリです.みーはLinuxのDebianをサーバー用途として愛用しており,Raspberry Pi OSがDebian系列なので使いやすいです.

Operating system images – Raspberry Pi

Raspberry Pi OSをしばらく使用した後のディスク使用量は5GBでした.8GBのmicroSDカードであれば十分みたいです.

Chromiumの動作

Raspberry Pi OSにはデフォルトでChromiumがインストールされており,驚くべきことにfull HD画質でYouTubeの動画再生が可能です.

f:id:atsuhiro-me:20210307184903p:plain:w360

1個のタブでYouTubeを開き動画を再生すると,メモリ使用量はおよそ1.3GBになりました.ただし,2時間程度使用していると動画が突然止まったり,ブラウザが突然強制終了されたりすることが2回あったので,安定して使えるわけではないようです.原因は分かりません.

VS codeとPythonの実行

Raspberry Pi OSはVS codeをサポートしており,追加のソフトウェアよりVS codeをインストールすることができます.また,Pythonはデフォルトでインストールされておりますので,開発環境にしようと思えばできそうです.CPUはarmですが,簡単なPythonスクリプトであればx64との差を感じられないぐらい同じように動作します.

f:id:atsuhiro-me:20210307185919p:plain:w360

Docker環境の構築

Raspberry Pi 4BのCPUは4 core 1.5 GHzであり,サーバー用途としては十分ですが,開発環境としては遅いです.当たり前ですがIntel 4 core 3.2GHz CPUと比較すると処理速度は遅いです*1. 最近はDockerがマルチプラットフォームビルドに対応しているので,x64の開発環境でDocker imageをビルドしたものをarmのRaspberry Pi 4Bで実行することができます.

Docker Buildx | Docker Documentation

詳細は以下の記事をご覧ください.

Raspberry Pi 4BでDockerを使う

電気代

USBのテスターを使用して,消費電力を測定しました.使用したOSはRaspberry Pi OS Liteで,新規にmicroSDカードに書き込んだ直後の初期設定の状態で,USB接続する周辺機器は全て切断して測定しました.

負荷時

Pythonで以下のソースコードを実行してしばらくしたときの電流は0.70A (5V) でした.

while True:
    pass

f:id:atsuhiro-me:20210417204516j:plain:w360

アイドル時

ターミナルでコマンド入力待ち状態でしばらくしたときの電流は0.49A (5V) でした.

f:id:atsuhiro-me:20210417204520j:plain:w360

3Wの消費電力で24時間稼働させると,電気代は1ヶ月で約60円です.我が家のサーバーとして常時起動していても電気代は問題なさそうです.

まとめ

Raspberry Pi 4Bをセットアップして普通のPCとして使えるようにしました.消費電力が低く小さいことを活かして,我が家で活躍してもらおうと思います.

*1:開発環境としては消費電力が低いことよりも,開発者を待たせないことが重要です.