はじめに
やってみたいことがあって、まずはRaspberry PiでWiFi Access Pointをちゃちゃっと提供しようとしたら意外と時間がかかってしまったので備忘含めて書き残しておきたいと思います。
環境
Hardware: Raspberry Pi 3 Model B+
OS: Raspbian Stretch Lite
今回これを使ったのは、こいつ単体にLANとWiFiのモジュールが最初から載っていたから。
年始にわざわざ新宿のヨドバシまで行って買ってきました。
設定
参考にしたサイトは以下
- https://kokensha.xyz/raspberry-pi/raspberry-pi-wifi-access-point/
- https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/
1つ目のサイトのやり方を愚直にできていたらこのような記事を書くこともなく本当にやりたい検証を始められたのですが、そうも行かなかったというのが今回記事の経緯。
そして以下が最終的に行き着いたsetup scriptです。
ベースは上の2サイトですが、今回のOSに都合がいい様にちょっとだけ変更入れました。
- https://gist.github.com/khronos227/63c6f32baf218ab9563072d07977dba2
変更点
/etc/network/interfacesに直接設定を書かない
cat <<EOF > /etc/network/interfaces.d/wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 172.24.1.1
netmask 255.255.255.0
network 172.24.1.0
broadcast 172.24.1.255
EOF
このファイルに直接wlan0の設定を書いてしまうとその後の
service dhcpcd restart
で失敗してしまいます。またその際、
/etc/init.d/networking restart
をするまでは wlan0
に設定がうまく反映されなかったのでこれもスクリプトに含めました。
dnsmasqの設定にbind-interfaceを含めない
backup /etc/dnsmasq.conf
restore /etc/dnsmasq.conf
cat <<EOF > /etc/dnsmasq.conf
interface=wlan0
listen-address=172.24.1.1
server=8.8.8.8
dhcp-range=172.24.1.2,172.24.1.50,12h
EOF
ここに bind-interface
を含めてしまうと、dnsmasq
を起動しようとしたとき
dnsmasq: failed to create listening socket for 172.24.1.1: Cannot assign requested address
と言われて失敗します。ここはおとなしく削りましょう。
あとは大体他と同じでなんとかなるかと。
let's 実行
sudo bash rpi-wifi-setup.sh password123456789 test-wifi
sudo reboot
注意
Country設定
raspi-config
にて、Locale、Timezoneの設定を行ってください。
※これを行わなかった場合、wlan0に自動でaddressなどが割り当てられませんでした。
おわりに
筆者の環境ではこれでWiFiの設定はできました。
これがなにかの参考にでもなれば幸いです。