ラズパイをWiFi受信機に設定し、2Fの有線LANからインターネット接続できるようにしたいので、まずはラズパイのWiFi設定を実施。
以下を参考にして設定を進める。
WiFi設定(コマンドライン) - Raspberry Pi公式ドキュメントを日本語訳
しかし、以下が通らない。
pi@raspberrypi:~ $ sudo iwlist wlan0 scan
wlan0 Interface doesn't support scanning : Network is down
pi@raspberrypi:~ $
インターフェースが無効化されてるっぽいので無線LANインターフェースを確認
pi@raspberrypi:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.50.100 netmask 255.255.255.0 broadcast 192.168.50.255
inet6 fe80::6568:6af9:abcd:abcd prefixlen 64 scopeid 0x20<link>
ether aa:bb:cc:13:13:43 txqueuelen 1000 (Ethernet)
RX packets 836 bytes 56455 (55.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 709 bytes 87958 (85.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 96 bytes 9624 (9.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 96 bytes 9624 (9.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
pi@raspberrypi:~ $ sudo /etc/wpa_supplicant#
ifconfig wlan up を実行してもエラーになる。
SIOCSIFFLAGS: Operation not possible due to RF-kill
でもデバイスは認識している模様。
pi@raspberrypi:~ $ ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.50.100 netmask 255.255.255.0 broadcast 192.168.50.255
inet6 fe80::6568:6af9:abcd:abcd prefixlen 64 scopeid 0x20<link>
ether aa:bb:cc:13:13:43 txqueuelen 1000 (Ethernet)
RX packets 976 bytes 64949 (63.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 847 bytes 113884 (111.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 97 bytes 9697 (9.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 97 bytes 9697 (9.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether aa:bb::cc:dd:ee:ff txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
pi@raspberrypi:~
ググっても、インターフェースが起動していない例が見つからない。
chatGPT(無償版なので3.5だけど)に聞いてみる。
この中は一通り試したので、エラーメッセージを添えて質問。
おお、っぽいのが出てきた。
pi@raspberrypi:~ $ sudo rfkill list
0: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: no
1: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
pi@raspberrypi:~ $
おお、これですね。
で、解決方法は??
ふむふむ。
pi@raspberrypi:~ $ sudo rfkill unblock wifi
pi@raspberrypi:~ $ sudo rfkill list
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
1: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
pi@raspberrypi:~ $
ステータスが変わったので、wlan0をアップ。
pi@raspberrypi:~ $ sudo ifconfig wlan0 up
pi@raspberrypi:~ $ sudo ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.50.100 netmask 255.255.255.0 broadcast 192.168.50.255
inet6 fe80::6568:6af9:abcd:abcd prefixlen 64 scopeid 0x20<link>
ether aa:bb:cc:13:13:43 txqueuelen 1000 (Ethernet)
RX packets 1489 bytes 97140 (94.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1237 bytes 164336 (160.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 97 bytes 9697 (9.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 97 bytes 9697 (9.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether aa:bb::cc:dd:ee:ff txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
pi@raspberrypi:~ $
起動した!
以下でスキャンしてみる
pi@raspberrypi:~ $ sudo iwlist wlan0 scan
出力してきたけど、近くのAP全ての情報を拾ってくるのでSSIDを指定したい。
コマンドのオプションを調べたら、以下で指定できました。
※ただ、一回目は全部出る模様。二回実行すると指定したSSIDの情報だけが取れました。
pi@raspberrypi:~ $ sudo iwlist wlan0 scan essid SSID_XXXXX
では、無事無線も見えるようになったので、続きを実施。
※そういえば、ラズパイってnanoを使うようになってるんですね。でもviの方が慣れてるのでviでやる。
pi@raspberrypi:/etc/wpa_supplicant $ sudo vi wpa_supplicant.conf
起動してみる。
pi@raspberrypi:/etc/wpa_supplicant $ sudo ifdown wlan0
ifdown: unknown interface wlan0
pi@raspberrypi:/etc/wpa_supplicant $ sudo ifup wlan0
ifup: unknown interface wlan0
pi@raspberrypi:/etc/wpa_supplicant $
あれ?
ググってみると、/etc/network/interfacesを記載すればよいという情報もあるが、以下のように、使わないとも書かれてるサイトも多い。
https://monqy.blogspot.com/2019/11/raspberry-pi-etcnetworkinterfaces.html
とりあえず、ChatGPTの回答では追記が必要となってるので、/etc/network/interfacesに以下を記載してみたが、やはり起動しない。
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
その後、ChatGPTにエラーログを貼り付けながらやり取りしてたら、wpa_supplicantプロセスが上がってないか?という指摘が。
確認するとプロセスが起動していたのでkillしてネットワーク再起動。
pi@raspberrypi:/etc/network $ ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.50.100 netmask 255.255.255.0 broadcast 192.168.50.255
inet6 fe80::6568:6af9:abcd:abcd prefixlen 64 scopeid 0x20<link>
ether aa:bb:cc:13:13:43 txqueuelen 1000 (Ethernet)
RX packets 4377 bytes 278685 (272.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4650 bytes 842872 (823.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 100 bytes 9916 (9.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 100 bytes 9916 (9.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.5.140 netmask 255.255.255.0 broadcast 192.168.5.255
inet6 2408:210:94a3:3900:b740:ddcd:4267:754f prefixlen 64 scopeid 0x0<global>
inet6 fe80::e95d:dd24:de80:8e90 prefixlen 64 scopeid 0x20<link>
ether aa:bb::cc:dd:ee:ff txqueuelen 1000 (Ethernet)
RX packets 20 bytes 3609 (3.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 49 bytes 7513 (7.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
pi@raspberrypi:/etc/network $
無事起動した!!
ただ、本当にinterfacesファイルの追記が必要か気になるので、一回削除してNW再実行。
アップしなくなりましたね。。。
pi@raspberrypi:/etc/network $ ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.50.100 netmask 255.255.255.0 broadcast 192.168.50.255
inet6 fe80::6568:6af9:abcd:abcd prefixlen 64 scopeid 0x20<link>
ether aa:bb:cc:13:13:43 txqueuelen 1000 (Ethernet)
RX packets 4558 bytes 289707 (282.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4795 bytes 870330 (849.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 100 bytes 9916 (9.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 100 bytes 9916 (9.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4098<BROADCAST,MULTICAST> mtu 1500
inet 192.168.5.141 netmask 255.255.255.0 broadcast 192.168.5.255
ether aa:bb::cc:dd:ee:ff txqueuelen 1000 (Ethernet)
RX packets 27 bytes 4726 (4.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 51 bytes 7687 (7.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
pi@raspberrypi:/etc/network $
※今のところは必要、と認識しました。なぜ必要かの調査はいつかそのうち。。。
ちなみに、ChatGPTとか、いろんなサイトでは、以下のようにkey_mgmtが記載されていましたが、参考サイトにはありませんでした。どちらでも起動はするので、APとデバイス側で差分がある時に指定するんですかね?(これもそのうちちゃんと調べよう。)
network={
ssid="testing"
psk="testingPassword"
key_mgmt=WPA-PSK
}
また、以下サイトによると、キーの暗号化もできるらしいのでテスト。
https://raspida.com/wifi4raspbian#wi-fi%E6%83%85%E5%A0%B1%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%81%AFwpa-supplicant-conf
pi@raspberrypi:/etc/wpa_supplicant $ wpa_passphrase SSID XXXXXXXXXXXXXXXXXXXXXX
network={
ssid="SSID"
#psk="XXXXXXXXXXXXXXXXXXXXXX"
psk=3b2626002fb9e1c8a9bda8256cbf4a1496fe2faefa339180258d32f561150d30
}
pi@raspberrypi:/etc/wpa_supplicant $
ちゃんとつながりますね。
pi@raspberrypi:/etc/wpa_supplicant $ ifconfig wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.5.140 netmask 255.255.255.0 broadcast 192.168.5.255
inet6 fe80::e95d:dd24:de80:8e90 prefixlen 64 scopeid 0x20<link>
ether aa:bb::cc:dd:ee:ff txqueuelen 1000 (Ethernet)
RX packets 450 bytes 64852 (63.3 KiB)
RX errors 0 dropped 1 overruns 0 frame 0
TX packets 247 bytes 33279 (32.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
pi@raspberrypi:/etc/wpa_supplicant $
一応wpa_supplicant.confはrootじゃないと読み込みもできないし、このファイルの内容が見れる人が全員キーを見れていいなら暗号化は必須ではないとは思いますが、ラズパイの性質上盗まれて読み込まれるリスクがあるので暗号化したほうがよいですね(#pskにキーが載ってるので削除を忘れずに)
pi@raspberrypi:/etc/wpa_supplicant $ ls -l wpa_supplicant.conf
-rw------- 1 root root 291 Apr 20 23:22 wpa_supplicant.conf
pi@raspberrypi:/etc/wpa_supplicant $
名前解決も外部へのpingもOK。
pi@raspberrypi:~ $ ping yahoo.co.jp -c 3
PING yahoo.co.jp (182.22.25.124) 56(84) bytes of data.
64 bytes from 182.22.25.124 (182.22.25.124): icmp_seq=1 ttl=55 time=6.06 ms
64 bytes from 182.22.25.124 (182.22.25.124): icmp_seq=2 ttl=55 time=9.79 ms
64 bytes from 182.22.25.124 (182.22.25.124): icmp_seq=3 ttl=55 time=18.9 ms
--- yahoo.co.jp ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 6.059/11.591/18.927/5.405 ms
pi@raspberrypi:~ $
これで無線の設定はOKかな。
現在の構想だとラズパイはfortiから見たGWになるので、次は、物理NICの方を固定IPにして、DHCPサーバを立てて配布できるようにしよう。
あと、GUIの画面もチェックしてみたいけど、ディスプレイ買う気は無いので、xwindowでPCからつながるようにしよう。
ここまでやってきて、最新んのラズパイはnmcliを使ってネットワーク設定するような情報もあって、ちょっとやらかしたな、と思った。
けど、ネットワークマネージャー起動してなかったから合ってたのかな??