何番煎じかわからないが、Raspberry Pi Zero W のセットアップ手順をまとめる。
OS インストール、自宅 Wi-Fi への接続、自宅 Mac から SSH でアクセスできるようにするまでを、ヘッドレス(外付けマウス・キーボード・ディスプレイを使用しない)で完結する。
0. 必要なもの
- Raspberry Pi Zero WH (Hはピンヘッダ付きを指す)
- スイッチサイエンスから購入
- micro SD カード (今回は家に転がっていた 16GB ものもを使用)
- MacBook Pro (15-inch, 2018) MacOS Catalina
- SD カードリーダー (USB-C 接続タイプ)
- 自宅 Wi-Fi 環境
1. Raspberry Pi OS (旧名称:Raspbian) インストール
従来、SD Card Formater で SD カードをフォーマット後、Raspbian OS のイメージファイルをダウンロードし、Wn32 Disk Imager で SD カードにコピーをしていたが、最近は Raspberry Pi Imager
なるツールが公式にリリースされており、このツールを使えば SD カードのフォーマット、OS の選択から SD カードへのコピーまでひとつのソフトででき、とても便利。
(2020 年 5 月に正式名称が Raspbian から Raspberry Pi OS へ変更された、らしい)
Raspberry Pi Imager を Mac へインストール
以下から DL し Mac へインストールする。
https://www.raspberrypi.org/downloads/
Raspbian OS を SD カードにインストール
Mac へインストールした Raspberry Pi Imager を起動し、
0. SD カードの FAT32 フォーマットがまだであればこのツールでそれも可能 (※1)
- ラズパイにインストールしたいOSを選択
- インストール先の SD カードを選択
- インストール (※2)
※1. Mac のディスクユーティリティーだと FAT32 でフォーマットできないようなので(知らないだけ?)、Raspberry Pi Imager にある Erase という機能を使って SD カードを Erase すると FAT32 にフォーマットされてよい。
※2. 自分の環境だとフォーマットからインストール完了まで15分くらいだった。]
↓Raspberry Pi Imager を起動した状態
↓今回は Raspberry Pi OS を選択
↓YESでインストール開始
2. Wi-Fi ネットワークへの接続、SSH 有効化
Wi-Fi の設定
自宅 Wi-Fi の設定を Raspberry Pi にほどこしてやります。まだ Mac から SD カードは抜きません。
Mac から SD カードが取り出されている状態であれば一度 SD カードを抜き、再度挿してください。Finder から boot ドライブが見えていればOK。Mac のターミナルを開き、以下のように SD カードの boot ディレクトリに wpa_supplicant.conf という Wi-Fi の設定ファイルを作成します。ファイル内の Wi-Fi の SSID とパスワードは自宅の環境に合わせて入力してください。
(インストール後のラズパイ側から参照する時は /etc/wpa_supplicant/wpa_supplicant.conf)
$ vi /Volumes/boot/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="Wi-FiのSSID" #注意:5GHz帯だめ。2.4GHz帯
psk="Wi-Fiのパスワード"
}
SSH の設定
ラズパイはセキュリティの観点からデフォルトでSSH無効になっている。ヘッドレスなのでログインして raspi-config
を実行することもできない。
まだ SD カードは Mac から抜かず、Mac のターミナルを開いて以下コマンドで、SD カードの boot ディレクトリに ssh という名前の空ファイルを作成します。
$ touch /Volumes/boot/ssh
これで Raspberry Pi の初回起動に SSH が有効化されます。
ここまでで、自宅 Wi-Fi 環境に接続し、SSH ログインを受け付ける準備が整いました。Mac から SD カードを抜き、ラズパイに挿し、電源ON。
ラズパイが立ち上がるのを数十秒待ったところで、Mac のターミナルから以下を実行。
$ ssh pi@raspberry.local
Macとラズパイが同一ネットワーク上にあればこれでパスワード入力画面が出てくるはず。
うまくいかない場合 Mac 側の known_hosts
に過去に使用した別のラズパイの MAC アドレス等が残っているせいかもしれないので Mac 側の known_hosts
から raspberry.local
の行を削除する。
$ vi ~/.ssh/known_hosts <-これを vi エディタ等で開き raspberry.local の行があれば削除
それでもうまく行かない(該当しない)場合は力技。arp -a
コマンドでネットワーク内に存在する機器のIPアドレスが列挙し、
$ arp -a
? (10.148.252.**) at 0:60:b9:**:**:** on en0 ifscope [ethernet]
? (10.148.253.**) at 14:20:5e:**:**:** on en0 ifscope [ethernet]
? (10.148.253.**) at 90:8d:6c:**:**:** on en0 ifscope [ethernet]
? (10.148.253.***) at b8:27:eb:**:**:** on en0 ifscope [ethernet]
? (10.148.253.***) at 90:8c:43:**:**:** on en0 ifscope [ethernet]
? (10.148.253.***) at b8:27:eb:**:**:** on en0 ifscope [ethernet]
〜以下省略〜
順に ssh 接続を試みる
$ ssh pi@10.148.253.xxx
pi@10.148.253.xxx's password:
ヒットすれば上記のようにパスワード入力待ち状態となるのでパスワードを入力してログイン
Linux raspberrypi 5.4.51+ #1333 Mon Aug 10 16:38:02 BST 2020 armv6l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Sep 3 23:08:05 2020 from 10.148.253.xxx
無事ラズパイに SSH ログイン成功。
※過去に同じ Mac から別のラズパイ (但し IP アドレスが同一) に SSH ログインした履歴があるときは Mac に known_hosts として記録されており、うまくいかない。$ vi ~/.ssh/known_hosts
で当該 IP の行を削除する
#3. その他、初期設定
パスワード変更
$ passwd
でパスワード変更しておく。
SSH 有効化 (恒久的に)
raspi-config で SSH を恒久的に有効化しておく(※シャットダウン前に必ずこれやらないと touch で ssh ファイル作ってもなぜか connection refused になる。。)
$ sudo raspi-config
emacs インストール
emacs (エディタ) も入れておく(お好みで)
$ sudo apt-get update
$ sudo apt-get install emacs
IPアドレス固定
次に、IPアドレスを固定
いままで使用していないIPが良さそう。理由はわからないが使用履歴のあるIPだとconnection refused になる。。
/etc/dhcpcd.conf の末尾に以下内容を記述することで設定する。
$ sudo vi /etc/dhcpcd.conf
~中略~
interface wlan0
static ip_address=(固定したいIPアドレス)/(サブネットマスク) #例)192.168.1.10/22
static routers=(ルータのIPアドレス) # 例)192.168.1.1
static domain_name_servers=(DNSのIPアドレス) #例)8.8.8.8など
設定完了したら再起動。
以上で完了です。これで Mac さえあれば SSH でラズパイをいじることができるのでラクですね。