LoginSignup
4
4

More than 5 years have passed since last update.

RaspberryPi3のWiFi設定ファイルをSDに置いて起動時に読み込んで自動接続する

Last updated at Posted at 2016-08-10

ヘッドレスでRaspberryPiを使うときにWiFiの設定するのにまずイーサネットやシリアルコンソールを繋がないといけないのが理不尽だし苦痛で仕方がないので、SDカードの/bootパーティション(vfatなのでWindowsでもMacでも読み書きできる)にWiFiのSSIDとWPAキーを書いたファイルを置いて、起動時にそれを読み込むようにしてみた。

MacでもWindowsでもSDカードさえ読み書きできれば設定できる(RPiいじってる時点でSD読み書きはできるはずだと思われる)。
ディスプレイもキーボードもsshもシリアルコンソールケーブルも必要ない。

スクリプトと設定ファイル

/etc/systemd/system/wpa_conf.service

[Unit]
Description=Read config file from SD then apply it
After=network.target

[Service]
ExecStart=/bin/sh /home/pi/wpa_conf/write_config.sh
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

/home/pi/wpa_conf/base_conf

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

/home/pi/wpa_conf/write_config.sh

#!/bin/sh

WIFI_CONF=/boot/wifi.conf
WPA_SUPPLICANT_CONF=/etc/wpa_supplicant/wpa_supplicant.conf
SCRIPT_DIR=`dirname $0`
BASE_CONF=$SCRIPT_DIR/base_conf

cat $BASE_CONF > $WPA_SUPPLICANT_CONF

cat $WIFI_CONF |
grep -v '#' |
while read line; do
  wpa_passphrase $line >> $WPA_SUPPLICANT_CONF
done

sudo ifdown wlan0
sudo ifup wlan0

有効化

sudo systemctl enable wpa_conf.service

ここまでできたら、いったんRaspberryPiの電源を落とす。

使い方

/bootパーティションがFinder(Macの場合)やエクスプローラ(Windowsの場合)でbootという名前のSDカードとして認識されるはずなので、これを開く。

スクリーンショット 2016-08-11 7.09.02.png

wifi.confをテキストエディタで開いて(無ければ新規作成する)、

SSID WPAキー

の形式で1行ずつ記述する。

スクリーンショット 2016-08-11 7.12.00.png

Mac/WindowsPCからSDカードを取り外してRPi3に挿して、電源を入れる。

その他

  • 言うまでもなくセキュリティを思うとあんまり良い方法とはいえない
    • けどご家庭のWPAキーとかどうせAPの筐体に貼ってあるシールに書いてあるだろ
  • MacのテキストエディットとかWindowsのメモ帳で編集する前提ならwifi.txtみたいなファイル名にしといたほうがよかったか
  • WiFi繋がったかどうか確認する手段がないのでどうにかしたい
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4