Help us understand the problem. What is going on with this article?

Raspberry PiをHeadlessでセットアップする

【内容】

Raspberry Pi にキーボードやディスプレイを接続せずにセットアップします。
(Wifi 接続も含む)

なお、本手順は以下の機種で動作を確認済みです。

  • Raspberry Pi 3 Model B (「4B」でも検証済み)
  • Raspberry Pi Zero W
  • Raspbian Strech 20181113 (Raspbian Busterでも検証済み)

【手順】

1. ブート用SDカードの作成

※ 本手順は「Raspbian Strech 20181113」で実行することを想定しています。
まずは、Raspberry Piの公式HPからRaspbianのOSイメージをダウンロードします。

しかし、現時点では新しいOSイメージが置かれているため、今回対象としている「Raspbian Strech 20181113」をダウンロードすることができません。
下記のミラーサイトからダウンロードすることが出来るので、こちらから入手してください。

ダウンロードが完了したらOSイメージをSDカードに書き込んでください。
SDカードへの書き込み方法はここでは省きます。
多くの方が記事を書かれていますので検索していただくか、公式HPのこちらを参考にしてください。

SDカードの書き込みが終わっても、PCからSDカードをアンマウントしないでください。
まだ作業が残っています。

2. ssh起動用ファイルの作成

現行バージョンのRaspbianではデフォルトではsshサービスが無効化されています。
これを自動起動できるようにSDカードの「Boot」パティションにssh(拡張子なし)という空のファイルを作ってください。
windowsをご利用の方は、標準では拡張子が非表示になっているので、拡張子が付いていないか確認してください。

なお、sshファイルはRaspberry Pi起動時に読み込まれて削除されます。

3. Wifi接続用の設定ファイルの作成

ssh同様、「Boot」パティションにWifi設定用のファイルを置いておくと、自動的に読み込まれて適切な場所に書き込まれます。

具体的には「Boot」パティションにwpa_supplicant.confという名前のファイルを作り、設定を記述します。
Wifiに接続するためには下記の内容を記載してください。
設定内容は接続するアクセスポイントに応じて変更する必要があります。

wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP

network={
    ssid="<SSID名>"
    psk="<パスワード>"
}

4. Raspberry Piの起動

上記の準備ができたら、PCからSDカードを取り出し、ラズパイ本体に挿入して電源を投入します。
LEDがしばらくチカチカして落ち着いたら、起動が完了していると思います。

5. sshで接続する

Windows 10やMacの場合、 ssh pi@raspberrypi.local でアクセスできます。
同一セグメント内に同じ名前のラズパイがなければの話ですが…
パスワードは raspberry です。

Windows 7の場合はターミナルソフトをインストールした上で、下記手順でラズパイのIPを見つけて接続する必要があります。

ネットワーク上のRaspberry Piを探す (Windows 7などの場合)

起動しネットワークに接続されたラズパイはsshサービスを起動していますが、IPをDHCPで取得しているのでIPがわからない限り接続できません。

そこで下記のコマンドを「ラズパイ探し.bat」として保存して実行してください。

2020/05/12 追記

コメントでご指摘いただきましたが、RaspberryPi4ではMACアドレスが変更されています。
RaspberryPi4の場合は、下記スクリプトの b8-27-eb の部分を dc-a6-32 に変更してください。

ラズパイ探し.bat
@echo off
set SEARCH_MAC="b8-27-eb"

for /l %%i in (1,1,254) do ping -w 500 -n 1 192.168.1.%%i
echo ##################################################
echo  search %SEARCH_MAC%
echo ##################################################
arp -a | find %SEARCH_MAC%
pause
結果
##################################################
 search "b8-27-eb"
##################################################
  192.168.1.59        b8-27-eb-xx-xx-xx     動的

特定のセグメント(ここでは「192.168.1.*」)にpingを打った後、arpコマンドで特定のMACアドレスを持つIPを表示します。(ラズパイのMACアドレスは頭3桁がすべて同じです)
セグメント内に他のラズパイがなければ上記の例のように一件だけ表示されるはずですので、そこに表示されているIPに対してsshで接続してください。
複数件ある場合は自分の持っているラズパイのMACアドレスを特定したうえで、そこに表示されているIPに対してsshで接続してください。

6. Raspberry Piの更新

sshでつながったらpasswdコマンドでpiユーザのパスワードを変更しておきましょう。
また、最新のモジュールに更新するために、以下のコマンドを実行しておきましょう。

sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt autoremove -y

【課題】

同一セグメント内にラズパイが複数ある場合、自分のラズパイのMACアドレスを特定する必要があります。
そのためにはディスプレイとキーボードを接続する必要がありますので、完全なheadlessセットアップは行なえません。

rhene
製造業向けに機械学習やAIを適用すべく勉強しています。 ラズパイやJetsonなどのエッジデバイスを使ってなにかしたいと思っています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away