Raspberry PiのWiFiヘッドレスインストール 2020

ラズパイのセットアップをWiFiを使ってLAN経由で実施する方法です。
LAN経由なのでラズパイ用のディスプレイ、キーボード、マウス無しで設定ができます。

基本的にラズパイのデスクトップ環境は使わない人向け。

ウィンドウズ向けの解説です。

機材構成

最低限必要なものと今回構築した環境の例

  • ラズパイ本体:新しく買ったRaspberry Pi4 B 2Gを使用。5000円ちょっと+発熱対策のヒートシンクが数百円ほど。
  • SDカード:Raspberry Piの記憶装置。近くの電気屋で一番安かった32GのMicroSD。1000円弱。
  • ACアダプタとケーブル:ラズパイの電源。適当に転がってたUSB電源アダプタにUSB Type A⇔USB Type Cの変換ケーブルを購入して使用。Type Cの対策が入ってないかと思ってUSB 2.0で3Aのものを購入。ケーブルのみで1000円ちょっと。
  • (USB WiFiドングル):ラズパイをLAN接続するために使用。Pi3 以降は無線内蔵なので今回は不要。Pi2を使うときとかはバッファローのWLI-UC-GNM(たぶん)を使用してます。1000円ぐらいだったか?

合計で7~8000円ぐらいか。結構高いな。

OSの準備

昔の記事から大きくは変更なし。面倒になってセキュリティ関連は緩めてます。作業の流れは以下

  1. OSイメージをダウンロード
  2. SDカードにイメージを書き込む(”焼く”ともいいます)
  3. ヘッドレスインストール用の設定

OSイメージをダウンロード

ラズパイの本家からDownloadsへ。そこから「Raspberry Pi OS (previously called Raspbian)」と書いてあるリンクへ。

そうすると上図のように何個か種類があるので、一番下のLiteってやつをダウンロード。ハッシュでファイルが壊れてないか確認すると安全だけど面倒なので省略。

SDカードにイメージを書き込む

ダウンロードしたOSイメージをSDカードへ書き込めるソフトなら何でも良いので準備する。

私は昔からWin32DiskImagerってのを使ってる。お好みでどうぞ。

ダウンロードしたOSは解凍しとく。
イメージ書き込みソフトを立ち上げて、解凍したイメージファイルを選択。Deviceのところは書き込み先のドライブ(書き込みたいSDカードね)を選択。

Writeを押すとディスクの中身が消えるよ的な警告が出るので、OK
書き込みが開始するので終わるまでしばらく待つ。

ヘッドレスインストールの設定

書き込みが終わったらLAN経由で接続できるようにSDカードにちょっと手を加えます。

SSH接続できるようにする

OSをインストールしたSDカードをPCで開きます。
SDカードにはbootという名前がついていると思います。
開いたら、デバイスの直下にテキストファイルを作成して、名前をsshに変更します。この時、拡張子(.txt)も削除します。
これでSSHが有効になってLAN経由でアクセスできるようになります。

WiFi設定

次に、WiFiの設定。
上記sshファイルと同様にSDカードのデバイス直下にwpa_supplicant.confという名前でテキストファイルを作って、以下を入力します。

country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
  ssid="your_ssid"
  psk="password"
}

your_ssidのところは接続したいWiFiのSSID、passwordは接続パスを平文で入力します。

以上でOSの準備は完了です。

では、SDカードをスロットに差して、(必要ならWifiドングルもUSBに差して)ラズパイを起動しましょう。

初期設定

立ち上がるのを少し待ったら、LAN経由でラズパイに接続して初期設定をします。流れは以下。

  1. ラズパイのIPアドレス確認
  2. ターミナルソフトを使ってSSHで接続
  3. ログインパスワードの変更
  4. WiFiの接続パス暗号化
  5. IPアドレス固定
  6. ディスクスペース拡張
  7. ソフトウェア更新

ラズパイのIPアドレス確認

ラズパイに接続するため、LAN内でのIPアドレスを調べます。コマンドプロンプトを起動して以下のコマンドを入力。

> ping -4 raspberrypi.local 

これで応答が返ってくるはずなので、IPアドレスが分かります。

ターミナルソフトを使ってSSHで接続

接続するためターミナルソフトを立ち上げます。
私はTeraTermを使ってます。

ただ、表示が乱れることがあるので最近はWSLでubuntuを入れてターミナル代わりにしてることが多いです。
ここはお好みで。

TeraTermだったらTCP/IPを選択して、ホストのところに先ほど調べたラズパイのIPアドレスを入力。TCPポート#のところに22と入れてOKを押します。

うまくアクセスできると以下のようなユーザー名とパスを聞かれる画面が表示されるので、ユーザー名はpi、パスワードはraspberryで接続します。

うまくいけば以下のような画面になります。

ログインパスワードの変更

接続出来たら、一応パスワードを変更しておきます。

$ passwd

元のパスと新しいパス、新しいパスの再入力を求められるので入力します。
入力してもカーソルは動かない仕様です。きちんと入力されてるので安心してください。
上記のように表示されればパスワードの変更は成功です。

WiFiの接続パス暗号化

WiFiのパスが設定ファイルに平文で保存されているのを修正しておきます。
めんどくさかったらスキップしてもいいかも。まぁセキュリティ的には変更しておいたほうが吉。

$ sudo sh -c 'wpa_passphrase SSID PASSPHRASE >> /etc/wpa_supplicant/wpa_supplicant.conf'

/etc/wpa_supplicant/wpa_supplicant.conf ファイルを開いて、元々のnetwork={}で入力してた記載とコメントで生のパスが記載されてるので削除します。

以下nanoエディタで開くコマンド。エディタの使い方はググってください。

$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

IPアドレス固定

ラズパイのIPアドレスがころころ変動すると接続するのが面倒なので固定しておきます。
/etc/dhcpcd.confに以下追記。上記同様にnanoエディタで開いて編集。

interface wlan0
static ip_address=192.168.1.10/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

アドレス部分の記載は自分のLAN環境に合わせてください。
上記の例はルーターのアドレスが192.168.1.1の場合で、ラズパイのIPは192.168.1.10に固定されます。

ディスクスペース拡張

SDカードの使用領域を拡張して使える容量を増やしておきます。

$ sudo raspi-config --expand-rootfs

リブートしろと言われるので、以下のコマンドで再起動します。

$ sudo reboot

再起動するとSSHの接続が切れます。
次に接続するときは、先ほど変更したパスと固定したIPアドレスで接続してください。

ソフトウエア更新

最後にOSを最新の状態にアップデートしておきます。

お好みですが、まずはリポジトリを日本のサーバに変更しておきます。
海外サーバだと通信が遅いので。めんどかったらそのままで。

OSをアップデートします。

$ sudo apt update
$ sudo apt upgrade -y

念のため最後にもう一度リブートしておきます。

$ sudo reboot

お疲れ様でした。
これでセットアップは完了です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする