先日、RasPi4が発売され無線LAN搭載は当たり前となっているが、手元にある古いRasPiを活用してみる。
使用した物
- Raspberry Pi Model B+ v1.2
- エレコムのWDC-150SU2MBK アマゾンで710円だった。
- 16GBのMicroSDカード
- 作業はMacOSで行った。
Raspberry Pi OSのinstall
- これまでRaspbianと呼んでいたRaspberry Pi用のdebian派生linuxはRaspberry Pi OSとなった。
公式サイト
から入手できる。 - MacOS用のImagerを入手し、MicroSDカードにRaspberry Pi OS → Otherで32bit liteを書き込む。
- sshが使えるようにする。
- 書き込みが終了したMicroSDカードを一度Macから取り外す。
- 再び差し込むと /Volumes/boot というディスクがマウントされる。
- ターミナルアプリで
touch /Volumes/boot/ssh - /Volumes/bootディスクを取り出す
Raspberry Piを起動
- とりあえず、有線LANに接続しておいてMicroSDカードを差し込んで起動。
- 自宅の有線LANではdhcpで192.168.1.100以降が割り振られる。
- netstat -nr | grep 192.168.1として増えたIP addressにあたりをつけ
- ssh pi@192.168.1.126 とsshでloginを試みる。
- defaultのパスワード raspberry で無事login
Debian 10 "Buster"
- uname -a は
Linux raspberrypi 4.19.118+ #1311 Mon Apr 27 14:16:15 BST 2020 armv6l GNU/Linux
となっている。 - ifconfigすると eth0, loに加えて wlan0が出来ている。
- lsusbでは Bus 001 Device 004: ID 056e:4008 Elecom Co., Ltd と認識されている。
- lsmodするとRealTek8188のドライバ r8188euが認められる。
raspi-config
- とりあえず sudo apt update, sudo apt upgrade
- raspi-configで user piのpassword変更、Timezoneの変更、無線LANの国指定をするが問題発生
- 無線LANの国を指定しようとすると"Could not communicate with wpa_supplicant"とエラーになる。
wpa_supplicant
-
ps ax|grep wpaで調べてみると
295 ? Ss 0:00 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
となっている。 -
無線LAN搭載のRaspberry Pi 3 Model Bで試すと、wpa_supplicantは
333 ? Ss 0:00 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant 414 ? Ss 0:00 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dnl80211,wext
と起動している。
rc.localに登録
Raspberry Pi起動時にwpa_supplicantが立ち上がるように rc.localのexitの前に
/sbin/wpa_supplicant -D nl80211,wext -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan0
を追加してreboot
これでraspi-configで無線LANの国指定のエラーはなくなる。
無線LANに接続
- 無線LANもdhcpでip振っている。
- iwlist scan|grep SSID
で使用可能な無線LANの一覧がわかる。 - SSIDが hoge 、WPA2パーソナルのパスフレーズが hogehogeの場合
wpa_passphrase hoge hogehoge >> /etc/wpa_supplicant/wpa_supplicant.conf
とする。
wpa_supplicant.conf
SSIDとパスフレーズを追加した/etc/wpa_supplicant/wpa_supplicant.confは
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=JP network={ ssid="hoge" #psk="hogehoge" psk=************************************************** }
となっている。
平文のパスフレーズの行は消しておく。
dhcpcpd.conf
無線LANに接続できるようになっている(はず)なので
dhcpでIPアドレスを振ってもらうように/etc/dhcpcd.confを編集する。
echo wlan0 >> /etc/dhcpcd.conf
リブートすればwlan0にIPアドレスが割り当てられている。