この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
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にリモートデスクトップで接続する