Raspberry Pi 3 Model B のセットアップ
どうも,筆者です.
今回,Raspberry Pi を新たに購入した.イメージを落としてきて,microSD に焼くまでの作業はササっとできた.しかし,LAN ケーブルも HDMI ケーブルも見つからなかったため,無線 LAN による接続設定ができなかった. ここでは,microSD に設定ファイルを配置するという方法で,無線 LAN の設定を行うことを試みた.
イメージを microSD カードに焼くまで
ここは,苦労せずにできた.以下の環境下で,セットアップを行った.また,使用する OS イメージは,Raspbian Stretch Lite である.
OS: Ubuntu 14.04(仮想環境上)
# Step 1 sudo parted -l # このコマンドの結果により,microSD が /dev/sdb として認識されていることが分かった(/dev/sdb は環境により変わる). # Step 2 sudo umount /dev/sdb1 # アンマウントする # Step 3 sudo dd bs=1024K if=2017-09-07-raspbian-stretch-lite.img of=/dev/sdb # これでイメージを microSD に焼くことができる
もしくは,以下のサイトを参考に,「DD for Windows」というツールを用いて microSD にイメージを焼く.
http://techblog.clara.jp/2016/04/raspberry-pi-3-model-b_install_and_ssh_connect/
無線 LAN の設定
さて,ここからが本題である.といっても,調べたらたくさん出てきたので,ほとんど引用する形となる. 無線 LAN の設定は,「wpa_supplicant.conf」というファイルに保存される.
イメージを焼いた microSD 上にこの設定ファイルを配置しておけば,起動時に勝手に「/etc/wpa_supplicant/wpa_supplicant.conf」に上書きされる仕様になっているらしい. こちらのサイトを参考にして,設定ファイルを作成し,microSD 上に配置した.同時に,「ssh」というファイルも microSD 上に配置した.
ssh によるリモートログイン
最後に,ssh 接続するための IP アドレスを調査する.これだけは,調べてもいい方法が見つからなかったため,Ubuntu 側からネットワーク内のアドレスを調査する shell script を作成した.
#!/bin/bash networkAddr=192.168.33 seq 1 32 | while read ipAddr; do ping -c 1 -w 1 ${networkAddr}.${ipAddr} > /dev/null ret=$? if [ ${ret} -eq 0 ]; then macAddr=$(arp -a ${networkAddr}.${ipAddr} 2> /dev/null) echo ${networkAddr}.${ipAddr} ${macAddr^^} fi done
これを「ipAddr.sh」として保存し,実行すると,以下のようになる.
192.168.33.1 BUFFALO.SETUP (192.168.33.1) AT **:**:**:**:**:** [ETHER] ON ETH0 192.168.33.3 ? (192.168.33.3) AT **:**:**:**:**:** [ETHER] ON ETH0 192.168.33.12 ? (192.168.33.12) AT B8:27:EB:**:**:** [ETHER] ON ETH0 192.168.33.31 ? (192.168.33.31) AT B8:27:EB:**:**:** [ETHER] ON ETH0
Raspberry Pi 3 の MAC アドレスは B8:27:EB で始まるものであるので,12 か 31 となる.ここで,12 は以前設定した Raspberry Pi 3 であることが分かっているので,今回の接続先は 31 となる. 以上から,ターミナルを立ち上げて,
ssh pi@192.168.33.31
とコマンドを入力することで,Raspberry Pi に接続できる.
余談
他にも,MAC アドレスから IP アドレスを調べる方法として,以下のサイトが見つかった.ブロードキャストを使う方法は思いつかなかったので今度から使ってみようと思う.
Raspberry PiのIPアドレスをログインせずに調べるやり方|NEWS|株式会社INDETAIL(インディテール)