Raspberry piはクレジットカードサイズのシングルボードコンピューターで、電子工作・IoTで機械制御、簡単なPCとしての運用等様々なことに使える。 ここではRaspberry piについての基本知識、Tips等をまとめた。
Raspberry piにはいくつか種類があり、現在主に売られているのは以下の通り
最も高性能なのはpi400だが、消費電力・小型・コスパという観点で見るとzeroが優秀。 CPUをそんなに使わない/用途が決まっており、一つのことをやらせたいならばzeroが良さそう(zeroをポータブルオーディオプレーヤーにしている人もいた)。 特に用途が決まっておらず、色々試したい or zeroだと処理が追いつかない等の問題があれば4Bが良さそう。 Raspberry pi 400はキーボード一体型で、4Bより性能の良い個人用PC用として販売されているらしく、初めてのLinuxの練習にはいいかもしれない。
PoEとはPower over Ethernetの略で、電源をひかなくてもLANケーブル越しに電源を供給できる。 Raspberry piの4BについてはPoE+ HATが公式で出しており、Raspberry piに乗せるだけで、PoE受電(PD)ができる。 zeroについても他の会社が出しているHATを接続すればPoE受電が可能。 ただし、給電側にPoE給電(PSE)が可能なネットワークスイッチ(例: こんなのとか)またはインジェクターが必要。 PoEにするメリットはRaspberry piを複数台使う場合電源線、アダプタがいらないので配線がスッキリする。 デメリットとしてはPoE+ HATの排熱が大きい、消費電力がUSB-C給電より大きい (私の環境の場合)。
少し前は、Raspberry pi用のOS Raspbianを.isoで取得して..のように面倒だったが、今はRaspberry Pi Imagerが公式から出ており、だいぶ楽になった。 OSのインストールにはmicro SDが必要で、64 GBとか用意すると良いらしい。 Raspberry Pi Imagerにはボタンが4つあり、OSの選択、書き込みSDの選択、書き込み、設定がそれぞれある。
Raspbianは大きく分けて64bit, 32bit版がある。Raspberry pi zeroでは32bitしか対応していない (Raspberry pi zero 2はok)。 さらに以下の選択ができる。
Lite以外はデスクトップがあり、普通のPCのように使え扱いやすい。 ただ容量、処理を食うのでそれを嫌う人、デスクトップを使わない人はLiteをいれてターミナルのみで使う人もいる(自分)。
SDをPCにさすと右下に目立たない設定ボタンが出てくる。ここでdefaultのユーザーの変更 (defaultはpi)、パスワードの設定ができる。 defaultのpiはセキュリティが甘いらしいので、変更しておいたほうが良さそう。 さらにsshでの接続設定もできる。公開鍵があればここに入れておけば、この秘密鍵を持っているPCとSSH接続ができるようになる。 host名も指定できるので、SSHでIPがわからなくてもHOST名でつなげることもできる。
書き込んだmicroSDをRaspberry piに挿して電源につなぐだけで、OSが起動できる。 立ち上がった後は、他PCからSSHでつなぐか、デスクトップなら端末を開いて最初の設定をしていく。
raspberry piのインストール直後は脆弱性が少しあるため、念のため設定をしていく。
一般的なLinuxにも言えることだが、ssh通信をする際に「rootログインを許可しない」、
「passwaord認証を許可しない」、「公開鍵認証を許可」のような設定にしておくと、
公開鍵を持っていないPCからの通信を遮断できる。
ただしraspberry piにつなげるディスプレイを用意せずにこの設定を行うと、公開鍵を作っていないPCからの操作は当然ながらできなくなるので注意。
sshの公開鍵の設定はこちらを参照。
sshの設定は/etc/ssh/sshd_config
で行う。
(中略)
PermitRootLogin no
(中略)
PasswordAuthorization no
(中略)
PubkeyAuthorization yes
これを参考に必要なportのみ開ける。前項と同様SSHを不許可のままだと、外部から操作できなくなるので注意。
OSのインストールにてpiではなく別のユーザーを作成した場合、sudo <コマンド>を打ったときに、passwordを聞かれずに実行できるようになっている。
このままだとせっかくユーザーを作った意味がないので、/etc/sudoers.d/010_pi-nopasswd
の<ユーザー名> ALL=(ALL) NOPASSWD: ALL
の先頭に#
をつけて、コメントアウト。
このとき、ファイルのPermissionが440になっているので、sudo chmod 640 /etc/sudoers.d/010_pi-nopasswd
をしてから編集する。
編集後は必ずもとのPermissionにもどすこと!