Raspberry Pi OSのインストール - モニター・キーボードなし、SSH接続するまで
この記事では「キーボードなし」「モニターなし」「マウスなし」「LANケーブルなし」でRaspberry Pi(ラズパイ)の初期設定する方法をくわしく解説します。SSHでラズパイをリモート操作できるように、Mac上でラズパイの環境構築を行なっていきます。
はじめに
この記事では Raspberry Pi zero WH を使用しましたが、PICO以外の他のラズパイでも基本設定は同じになりますので、ご参考になさってみてください。
ラズパイ本体以外に、この記事で必要な製品、技術は次のとおりです。
- 8GB以上のマイクロSDカード
- ターミナルの操作(Vimなどの基本操作)
- パソコン(Macを使用しました)
以上です。
▼ マイクロSDカードは余裕をみて、32GBのものを選びました。
ラズパイではSDカードを入れ替えるだけでOS環境をサクッと切り替えることが可能です。メモリカードも年々安くなってますから、まとめて買っても良いかもしれませんよ。
▼ Vimの操作方法はこの記事で説明いたしません。Vim操作が苦手な方は、一度本などで学んでみると良いかもしれません。Vimの世界はとても深くておもしろいですよ。
▼ また、ラズパイのケースがあるとモチベーションが上がりますので、ケースに収納することをオススメいたします。耐久性も上がり、壊れにくくなります。
初期設定の手順
この記事で行うラズパイの初期設定の手順は、次の3つです。これらの作業はmacOSで行いました。
- Raspberry Pi OS のインストール
- SSHの設定
- WiFiの設定
Raspberry Pi Imagerのインストール
以前まで、Raspberry Pi OSの書き込みを手動で行ってましたが、現在は自動で書き込んでくれる「Raspberry Pi Imager」というアプリケーションが配布されてます。めちゃ便利なのでこちらからダウンロードしましょう。
Raspberry Pi OSの選択
アプリを起動して、Operating System で「Raspberry Pi OS Lite (32bit)」を選びました。GUIを使うことがない場合は、Liteが良いでしょう。
SDカードをセットして、Storage で選択しておきます。
SSHとWiFiの設定
次に、Raspberry Pi Imagerの画面右下にあるギアボタンをクリックしましょう。ここでSSHとWiFiの初期設定を行えるようになってます。
こんな感じで項目を設定しておきます。
あとは WRITE を実行すれば自動でOSイメージのダウンロードから書き込みまでを行ってくれます。とっても便利ですね!
SDカードをラズパイに挿して、起動すれば完了です。お疲れさまでした!
ラズパイへSSH接続
ここからは、実際にラズパイへSSHで接続してみましょう。
ラズパイ起動後に自動でWiFi接続されるはずですので、クライアントマシンからターミナルを開いてSSHでアクセスしてみます。
$ ssh pi@raspberrypi.local
初回時のみフィンガープリントの質問が聞かれますがyesを入力してエンターしておきましょう。
シェルが画面が切り替われば、ラズパイへログインできています。
pi@raspberrypi:~ $ pwd
/home/pi
もしSSH接続できない場合は記事下の「ラズパイにSSHでつながらない」をご覧ください。
SSHを終了したいときは $ exit コマンドを実行してください。
▼ 毎回パスワード入力するのが面倒という方は、こちらの記事をご参考ください。
▼ テザリング環境の方は、こちらの記事もご参考ください。
ラズパイの電源をオフにする、再起動する
ラズパイの電源を切るときは shutdown コマンドを実行してください。ラズパイもパソコンと同様に、電源ケーブルそのまま抜くとOSイメージの破損の原因となります。
$ sudo shutdown -h now
再起動はreboot ですね。パソコンと同じで、なにか調子が悪くなったらとりあえず再起動しましょう。
$ sudo reboot
ラズパイにSSHでつながらない
実際に私が経験したSSHエラーのトラブルをご紹介します。同じようなエラーメッセージが出た場合にご参考になさってみてください。
ssh: connect to host raspberrypi.local port 22: Connection refused
sshサーバーが起動してないため繋がりません。最初に説明したとおり、SDカードに ssh ファイルを作成したかどうかご確認ください。
$ cd /Volumes/boot/
$ touch ssh
古いフィンガープリントが残っている(~/.ssh/known_hosts)
もしも以前に同じホスト名でSSHへアクセスした場合、端末側の ~/.ssh/known_hosts に古いフィンガープリントが残っている可能性があります。
その場合、次のようなエラーが表示されます。
$ ssh pi@raspberrypi.local
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Please contact your system administrator.
Add correct host key in /Users/ユーザー名/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/ユーザー名/.ssh/known_hosts:15
Host key for raspberrypi.local has changed and you have requested strict checking.
Host key verification failed.
$ vi ~/.ssh/known_hosts で開いて、同じホスト名の行を削除してからもう一度SSH接続を試してみてください。
OSインストールできたら、これだけはやっておこう
ラズパイをSSHで操作できるようになって嬉しいところだと思います。ラズパイで電子工作やプログラミングをやる前に、これだけはやっておいたほうが良いと思うことを紹介しておきますね。
$ sudo apt-get update
よく見るおまじないですが、$ sudo apt-get update はインストール可能なパッケージの一覧を更新するものです。
apt-get は macOSでいうところの brew 、CentOSでいうところの yum みたいなものですね。
$ sudo apt-get upgrade
こちらも、先ほどの $ sudo apt-get update と同様によく見るコマンドですね。$ sudo apt-get upgrade はインストール済みのパッケージを最新バージョンに保ってくれるためのアップグレードコマンドです。OSのバージョンアップが行われるワケではありません。久々に実行したりすると結構時間がかかったりしますので、こまめにやると良いでしょう。
必ず update してから upgrade です。順番をお間違えなく。
$ sudo apt-get update
$ sudo apt-get upgrade
Vimのインストール
Raspberry Pi OS に入っているデフォルトVimは、最小構成版の vim-tiny のために矢印キーが使えません。Vimの再インストールで矢印キーが有効になります。これもやっておいたほうが良いでしょう。
次のコマンドを実行して、Vimを再インストールします。
$ sudo apt-get --purge remove vim-common vim-tiny
$ sudo apt-get install vim
Gitのインストール
ラズパイにセンサをとりつけてIoTみたいなことをやりたい方は、オープンソースのライブラリをバリバリ使うことになると思います。そのときにGitでインストールすると便利なのでGitも入れておきましょう。
$ sudo apt-get install git
これで git コマンドが使えるようになりました。
$ git --version
git version 2.30.2
Gitコマンドに関するざっくりとした説明は【シェル】Gitをはじめよう【macOS】をご参考ください。私はいつもGitHubでプライベート(非公開な)リポジトリを作って、そこへ大事なプロジェクトをバックアップするようにしています。
pipのインストール
Pythonをつかう方はpipもインストールしておきましょう。ちなみに私がインストールしたRaspberry Pi OSでは、はじめから Python 3.9.2 が入っていました。
$ python --version
Python 3.9.2
pipが入ってませんでしたので次のコマンドでインストールしておきます。
$ sudo apt-get -y install python3-pip
こんな感じでインストールされているモジュールを確認できます。
$ pip3 list
Package Version
------------- ---------
certifi 2020.6.20
chardet 4.0.0
colorzero 1.1
distro 1.5.0
gpiozero 1.6.2
idna 2.10
pip 20.3.4
python-apt 2.2.1
requests 2.25.1
RPi.GPIO 0.7.0
setuptools 52.0.0
six 1.16.0
spidev 3.5
ssh-import-id 5.10
urllib3 1.26.5
wheel 0.34.2
ホスト名の変更
もし後からホスト名を変更したくなった場合、 $ sudo vi /etc/hosts を実行して設定ファイルを編集します。
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 0 #←ここを書き換える
ここでは 0 がラズパイのホスト名です。たったの一文字ですが、これでも立派なホスト名として使うことができます。
みなさんも、お好きな名前をホスト名になさってください。
次に $ sudo vi /etc/hostname を実行して、同様にホスト名を変えておきます。その後、$ sudo reboot でラズパイを再起動すれば新しいホスト名に切り替わります。
$ ssh pi@0.local
おわり
以上でキーボードなしでのラズパイ初期設定の説明はおわりになります。
▼ また、ラズパイのステップアップとして、これらの記事もご参考になさってみてください。