[Raspberry Pi] Wi-FiやIPアドレスの設定を行う方法
1 はじめに
Raspberry Piを使用する場合、ディスプレイ・キーボード・マウスを接続すれば、何ら問題はないのですが、出先などでそれらが使用できず、PCからリモート接続して操作する環境しかない場合には、RaspberryPiのWi-FiやIPアドレスの設定が必須になります。
PCとの接続(sshやリモートデスクトップ)が出来てしまえば、利用環境にほとんど問題ないかも知れません。
下記は、USB-Ethedを使用して、sshやリモートデスクトップでRaspberryPiと接続しているようすです。
今回は、RaspberryPiをMacからリモートで使用できるようにネットワーク関係の設定作業について忘備録としてまとめることにしました。
2 RaspberyPi 初期状態
最初に、イメージをコピーしただけの、全くのデフォルト状態のRaspberryPiとMacを接続する手順です。
(1) SDカードのマウント(アンマウント)
Raspberry Pi で使用しているMicroSDをMacに挿入すると、すぐにマウントされてアクセスが可能になります。
dfコマンドで確認すると /dev/disk1s1 が増えていることを確認できます。(diskの後の数字は、認識された順に採番されますので、状況によって変化します)
$ df -g Filesystem 1G-blocks Used Available Capacity iused ifree %iused Mounted on /dev/disk0s2 232 217 15 94% 5267665 4289699614 0% / devfs 0 0 0 100% 1154 0 100% /dev map -hosts 0 0 0 100% 0 0 100% /net map auto_home 0 0 0 100% 0 0 100% /home /dev/disk1s1 0 0 0 51% 0 0 100% /Volumes/boot
diskutil listでは、ルートパーティション以外の情報も確認できます。
$ diskutil list /dev/disk1 /dev/disk1 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *15.8 GB disk1 1: Windows_FAT_32 boot 45.3 MB disk1s1 2: Linux 4.8 GB disk1s2
Macへのマウントは、接続時に自動的に行われますが、アンマウントやイジェクトは、コマンドを使用する必要があります。(マウントされている状態では、ddコマンドでの書き込みなどが出来ません。)
$ diskutil unmountdisk /dev/disk1 Unmount of all volumes on disk1 was successful
$ diskutil eject /dev/disk1 Disk /dev/disk1 ejected
(2) ssh
Raspberry Pi は、デフォルトでSSHはが無効になっています。 有効にするにはraspi-configで設定する必要があるのですが、/bootにsshという名前のファイルを置くだけでも有効にできます。
/bootのパーティションは、Macに接続しただけで, そのままアクセス可能ですので、下記のようにtouchでSSHを有効化できます。
$ df -g Filesystem 1G-blocks Used Available Capacity iused ifree %iused Mounted on /dev/disk1s1 0 0 0 51% 0 0 100% /Volumes/boot
$ sudo touch /Volumes/boot/ssh
なお、/boot/sshは、raspi-configで設定されていない場合だけ使用可能です。raspi-configでSSHを無効化した場合は、/boot/sshが存在しても、SSHは有効になりません。
(3) raspberrypi.local
Raspberry Piは、デフォルトで、raspberrypi.localでアクセス可能になります。
MacとRaspberryPiをEtherケーブルで接続すると、pingへのレスポンスを確認できます。
$ ping raspberrypi.local PING raspberrypi.local (169.254.56.161): 56 data bytes 64 bytes from 169.254.56.161: icmp_seq=0 ttl=64 time=2.037 ms 64 bytes from 169.254.56.161: icmp_seq=1 ttl=64 time=0.559 ms
この名前を利用して、以下のようにsshで接続することが可能です。
$ ssh pi@raspberrypi.local pi@raspberrypi.local's password:
4 Wi-Fiの設定
iwlistで、Wi-FiスポートのESSIDが一覧できます。
$ sudo iwlist wlan0 scan | grep ESSID ESSID:"Free001" ESSID:"Free002" ESSID:"Free003"
Wi-Fiの設定は、/etc/wpa_supplicant/wpa_supplicant.confに記述します。
$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=JP network={ ssid="Free001" psk="password" }
RaspberryPiを再起動することで、設定は有効となります。Wi-FiスポートのDHCPで、アドレスが付与されていることを確認できます。
$ ifconfig wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.110 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 2400:2413:8681:c500:f53c:4047:d646:cc5d prefixlen 64 scopeid 0x0<global> inet6 fe80::cd1e:f000:76c7:8f98 prefixlen 64 scopeid 0x20<link> ether b8:27:eb:6a:bc:03 txqueuelen 1000 (Ethernet) RX packets 50 bytes 12866 (12.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 48 bytes 8243 (8.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Wi-Fi接続が完了すると、MacとRaspberryPiは、Wi-Fi経由で接続できます。
$ ping 192.168.0.110 PING 192.168.0.110 (192.168.0.110): 56 data bytes 64 bytes from 192.168.0.110: icmp_seq=0 ttl=64 time=18.073 ms 64 bytes from 192.168.0.110: icmp_seq=1 ttl=64 time=6.089 ms $ ssh pi@192.168.0.110
5 IPアドレス
スタチックなIPアドレスは、/etc/dhcpcd.confで設定することができます。
$ sudo vi /etc/dhcpcd.conf
interface と static ip_address を設定することで固定のIPアドレスが設定できます。(直接ピア・トゥ・ピアで接続することを想定しているため、ゲートウエイの設定は考慮されていません)
# Example static IP configuration: interface eth0 static ip_address=10.0.0.11/24 #static ip6_address=fd51:42f8:caae:d92e::ff/64 #static routers=192.168.0.1 #static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1
再起動すると、MacからEthnet経由で接続できることを確認できます。(Mac側のIPアドレスも同一ネットワークになるように手動で設定が必要です。)
$ ping 10.0.0.11 PING 10.0.0.11 (10.0.0.11): 56 data bytes 64 bytes from 10.0.0.11: icmp_seq=0 ttl=64 time=17.744 ms
$ ssh pi@10.0.0.11 pi@10.0.0.11's password:
6 Mac上でのWi-Fi設定
Wi-Fiの設定で使用した、/etc/wpa_supplicant/wpa_supplicant.confは、起動時に /boot/wpa_supplicant.conf が存在すると上書きされます。
/bootは、Macでマウントして編集が可能なため、結果的にMac上でもWi-Fi設定の変更は可能です。
$ sudo vi /Volumes/boot/wpa_supplicant.conf
/bootに作成したファイルは、起動時に、上書きされると同時に削除されます。
7 最後に
ネットワークの設定方法を理解していれば、MacとRaspberryPiの間を接続するEthedケーブルだけ持ち歩けば、なんとかなりそうです。
ちなみに、RaspberryPiにリモートデスクトップで接続できる環境を準備しておくことも、お薦めだと思います。
参考:Windowsパソコンからraspberrypi3にリモートデスクトップで接続する