Raspberry Piを初回起動時から指定のwi-fiに自動接続させる設定方法

>この記事は2020/03/29の以下の記事を転載したものです。
>https://k1nya.com/2020/03/29/raspberry-pi-wi-fi-auto-connect/

<!-- wp:paragraph -->
<p>僕はRaspberry Pi初心者です。<br>なのでRaspbian環境を作っては、壊して、初期化して、を繰り返しています。<br>そうして何度もRaspberry PiのOSをセットアップしていると、RaspbianのGUI環境で様々な設定をするのが面倒になってきます。<br>microSDカードにOSをセットアップして、Raspberry PiにmicroSDカードを刺し直して、LANケーブルをmacに接続して、「ifconfig」でIPアドレスを調べて、そのIPアドレスを頼りにVNC接続をしてGUI環境からwi-fi接続設定をして。<br>これでやっとRaspberry Piがwi-fi接続できるなんてステップが多すぎる！<br>ただの作業でしかない。<br>もっと簡単に設定できないかと調べていると、CLI環境で設定を済ませてしまうのが最も簡単であることに気づくんですよね。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Raspberry Piの初期環境設定をするためには、ssh接続ができるととても楽になります。<br>そのためにはRaspberry Piが、初回起動時から指定のwi-fiに自動的に接続してくれるととても楽です。<br>ということで、以下「Raspberry Piを初回起動時から指定のwi-fiに自動接続させる設定方法」です。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Raspbianは「2020-02-13-raspbian-buster」を使用しています。環境はMacOSCatalinaです。</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>ssh有効化ファイルを作成</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>MacにてmicroSDカードに Raspbianをセットアップし終り、microSDカードがmacに接続された状態から始めます。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Macのターミナルを立ち上げ、以下のコマンドでssh接続有効化ファイルを「boot」ドライブ直下に作成します。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>touch /Volumes/boot/ssh</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>Raspbianをセットアップし終わったmicroSDカードは、「boot」という名前のドライブ名で作成されているはずです。<br>Macからその「boot」ドライブにアクセスするには、「/Volumes/boot」とたどります。<br>このファイルによってRaspnianはssh接続が有効になります。</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>wi-fi設定用ファイルを作成</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>次に「dhcpcd.conf」という名前で「boot」ドライブ直下にファイルを作成します。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>touch /Volumes/boot/wpa_supplicant.conf</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>このファイルの中にwi-fi接続設定を以下のように書き込んでいきます。<br>CLIでなくても適当なGUIテキストエディタで編集して構いません。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP

network={
    ssid="ここに接続先のssid"
    psk="ここに接続キー"
    key_mgmt=WPA-PSK
    priority=2
}</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>wi-fi設定１つに付き以下の記述を追記していきます。<br>「priority=2」の数値が大きいものから優先して接続していきます。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>network={
    ssid="xxxx-xxxx-x"
    psk="xxxxxxxxxxxx"
    key_mgmt=WPA-PSK
    priority=2
}</code></pre>
<!-- /wp:code -->

<!-- wp:heading -->
<h2>３つの接続先を設定した例</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>以下は３つの接続先を設定した例です。<br>「priority」の設定によって、上が一番優先度が高く下に行くほど優先度を低くしています。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP

network={
    ssid="HQ601-huf-a"
    psk="asjj324dda"
    key_mgmt=WPA-PSK
    priority=2
}

network={
    ssid="HTWE-fad-660-a"
    psk="dsadghuKKJ34"
    key_mgmt=WPA-PSK
    priority=1
}

network={
    ssid="ROCK-BASS-33-g"
    psk="tetorisu5454"
    key_mgmt=WPA-PSK
    priority=0
}
</code></pre>
<!-- /wp:code -->

<!-- wp:heading -->
<h2>おわりに</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>はじめは「CLIワカンネ」「CLIメンドクセ」と思っていたのですが、最近はだいぶ慣れてきて、むしろ楽だと思うようになってきました。<br>まだまだ使えるコマンドは少ないし、パイプの仕組みもよくわかっていないです。<br>でも、シェルスクリプトを使ってRaspberry Piのセットアップを半自動化させているうちに、CLIの便利さがわかるようになってきました。<br>同じことを同じように何度も再現したいときには、GUIよりもCLIでシェルスクリプトを組んでいくほうが楽です。<br>おかげで今ではRaspbianOSセットアップは１コマンドで完了し、Raspberry PiにmicroSDカードを差し込んで起動したらそのままssh接続して１コマンドで初期設定が完了するようになっています。<br>CLIいいよCLI。</p>
<!-- /wp:paragraph -->