Raspberry pi開発環境(無線LANのみ)を作る話

最近、Raspberry pi周りをやっておりますが、結構開発環境を再構築とか結構しておるわけです。
そのときの構築って頭の中でぱぱぱーと作っていますが、時間が経つと忘れますのでメモを残しておきます。
昔の環境は忘れていますし

ターゲット : Raspberry pi 3(未確認ですが、4でもzeroでもいっしょかな?)

欲しい環境

開発環境の構築するにあたりまして欲しい環境というのをまとめておきます。

電子工作をしていまして結構邪魔なのはLANケーブルです。
なので今回は無線LANのみの接続環境で有線LAN配線がない状態の環境がベストです。

Macbook proでOSを作る

Raspberry piの環境構築ではじめにSDカードにOSを書き込みます。
今回作業をおこなったのはMacbook proで32GBのメディアを使いました。
SDカードをUSBにカードでマウントしてとかは略です

1.OSをSDカードに書き込む。

今回利用するOSはシンプルにRaspberry pi OSを使います。

Raspberry Pi OS

ディスクの作成方法は、Raspberry pi Imagerを使って、「Raspberry pi OS (32bit)」を選択すれば作成可能です…

2.SSHを有効にする

OSを書き込んだ後にSDカードを接続すればOSを起動可能ですが、SSHは無効状態で上がります。

モニタ・キーボードを接続して設定をする場合には不要ですが、今回は有線LAN(DHCP払い出し)にて接続させたいので、SSHを有効にします

有効にする方法はsdカードのbootにsshファイルがあれば有効になりますのでファイルを作成します。

OS書き込み後はbootがマウントされていませんので一度SDカードを抜き差しして、SDカードをマウントします

macosの場合は/Volumesにマウントされますのでマウントされているbootにファイルを作成します

$ touch /Volumes/boot/ssh

bootをアンマウントして、SDカードを取り出します。

Raspberry piの起動と有線LANでのSSH接続…

Raspberry piにSDカードを接続してOS起動します…

設定を行いますので有線LANを接続して設定をSSHで行います。

有線のIPアドレスは… ルータなどでDHCP払い出しを参考にしてください。
(MACをb8:27:eb くらいで始まるものを参考してください。)

ルータのDHCP払い出し一覧から…

IPが分かりましたら、SSHで入ります

$ ssh pi@192.168.1.84

Raspberry pi のデフォルトアカウントはpi / raspberryです。

無線を設定する

さっそく、無線の設定を行います。

接続する無線LAN設定は前もってルータなどでメモしておきます。

今回の設定は以下を想定しております。

設定項目
SSIDDIAN24
passpath3db78cd1c6dd2
方式など2.4GHz / WPA/WPA2-PSK(AES) / 802.11

毎回 sudo コールするのがめんどくさいのでsudo -iでroot権限でやっておきます。

wpa_supplicantを設定する

初期状態のwpa_supplicant.confをはじめに確認します

root@raspberrypi:~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

無線LANの接続登録情報の内容を確認します。
ここで、自身のSSIDとパスフェーズを指定してください

root@raspberrypi:~ $ wpa_passphrase DIAN24 3db78cd1c6dd2
network={
	ssid="DIAN24"
	#psk="3db78cd1c6dd2"
	psk=698787526627958b489c8dc996ea8c76aea8d43484d53950fac6d9d210f35f3a
}

無線LANネットワークに接続する内容はこんな感じです。
この内容をwpa_supplicant.confに追記します
当たり前ですが、2回はしないでください

root@raspberrypi:~# wpa_passphrase DIAN24 3db78cd1c6dd2 >>  /etc/wpa_supplicant/wpa_supplicant.conf

接続情報の出来上がりは、こんな感じです

root@raspberrypi:~# sudo cat /etc/wpa_supplicant/wpa_supplicant.conf 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
	ssid="DIAN24"
	#psk="3db78cd1c6dd2"
	psk=698787526627958b489c8dc996ea8c76aea8d43484d53950fac6d9d210f35f3a
}

インタフェイス(wlan0)を再定義

はじめに、現在利用中のインタフェイス(wlan0)の設定を確認します。

root@raspberrypi:~# iwconfig wlan0
wlan0     IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on

意味はないですが、インタフェイス情報はiwconfingで確認できます。

先ほど実環境の定義をwpa_supplicant.confに記述したので、インタフェイス(wlan0)に定義します

iwconfigで確認した通りに、wpa_supplicantが動いていますので、killします。

謎のコマンドrfkillして(調べろw)

インタフェイスを定義します(wpa_supplicant)

root@raspberrypi:~# killall wpa_supplicant
root@raspberrypi:~# rfkill unblock wifi
root@raspberrypi:~# wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf 
Successfully initialized wpa_supplicant

はい、Successfullyされて反映は環境です

無線LANの情報を確認します

root@raspberrypi:~# iwconfig wlan0
wlan0     IEEE 802.11  ESSID:"DIAN24"  
          Mode:Managed  Frequency:2.412 GHz  Access Point: 9A:F1:99:93:47:B6   
          Bit Rate=24 Mb/s   Tx-Power=31 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on
          Link Quality=66/70  Signal level=-44 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

無事にSSIDが反映されているのを確認できました。

次にIPと思ったのですが、自動的にDHCPからIPを引っ張っている様です

root@raspberrypi:~# ifconfig wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.85  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::66da:9fa6:eb13:c795  prefixlen 64  scopeid 0x20<link>
        inet6 2409:250:40c0:2500:5b0c:7901:1aa:65d0  prefixlen 64  scopeid 0x0<global>
        ether b8:27:eb:58:89:f2  txqueuelen 1000  (Ethernet)
        RX packets 209  bytes 24672 (24.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 122  bytes 19287 (18.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

固定IPを使う!

DHCPでも良いですが、ころころ変わるとめんどくさいのでIPを固定にします。

方法がいろいろありますが、dhcpcd.confに記述します…

root@raspberrypi:~# vi /etc/dhcpcd.conf 

... 略 ...
interface wlan0
static ip_address=192.168.1.220/24
static routers=192.168.1.254
static domain_name_servers=192.168.1.254

… 設定を反映…
めんどくさいので再起動…

root@raspberrypi:~# reboot

固定IPになっていることを確認

pi@raspberrypi:~ $ ifconfig wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.220  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::66da:9fa6:eb13:c795  prefixlen 64  scopeid 0x20<link>
        inet6 2409:250:40c0:2500:5b0c:7901:1aa:65d0  prefixlen 64  scopeid 0x0<global>
        ether b8:27:eb:58:89:f2  txqueuelen 1000  (Ethernet)
        RX packets 70  bytes 5883 (5.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 35  bytes 4788 (4.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wifiのSSHサーバに接続する

現在は有線LANのIPでSSH接続しておりますので、無線LANのIPに接続します

MacBook-Pro:~ wataru$ ssh pi@192.168.1.220

… 接続できません…

原因調査していませんが、有線LANを抜いてください

通りますw

MacBook-Pro:~ wataru$ ssh pi@192.168.1.220
pi@192.168.1.220's password: 
pi@raspberrypi:~ $ 

これで、無事に机の上には有線LANがなく作業ができる様になりました!

終いに

今回はraspberry pi開発環境の構築に無線LANの設定を入れるだけですが、結構OSを入れ替えるのでメモを残しておきたいと思いまして書いておきました

wpa_supplicant.confファイルを残しておき、bootに配置すれば無線LAN接続のDHCP払い出しまではできますが、パスフェーズの作成とかが分かりづらいので今回はファイル作成まで含めました。

他の設定

ssh接続をパスワードなしに…

macbook proにてKEYを作成しているかをチェックして

MacBook-Pro:~ wataru$ ls ~/.ssh/id_rsa.pub
/Users/wataru/.ssh/id_rsa.pub

Keyをコピーします

MacBook-Pro:~ wataru$ ssh-copy-id -i ~/.ssh/id_rsa.pub pi@192.168.1.220
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/Users/wataru/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
pi@192.168.1.220's password: 

Number of key(s) added:        1

Now try logging into the machine, with:   "ssh 'pi@192.168.1.220'"
and check to make sure that only the key(s) you wanted were added.

接続確認…

MacBook-Pro:~ wataru$ ssh pi@192.168.1.220

入れました。

BootをCUIにする

pi@raspberrypi:~ $ sudo raspi-config 

[1.System Options] > [S5 Boot / Auto Login] > [B1 Console]

これでOK.

reboot

GUIパッケージ一式を削除

GUI関係は使わないのでリソースの無駄なので一式を削除します… ( 厳密ではなくX11が不要なので消します )

pi@raspberrypi:~ $ sudo apt-get remove -y  *x11*

残りの参照パッケージを削除します

pi@raspberrypi:~ $ sudo apt-get -y autoremove

課題

・無線LANの接続するときに有線LANケーブルを抜くのか… route周りかな?この辺りは課題で残します

参考

Raspberry piのMACアドレス : https://uic.jp/mac/address/b827eb/

wpa_supplicant https://wiki.archlinux.jp/index.php/Wpa_supplicant