ラズパイとPCのネットワーク接続その1_ラズパイのWi-Fiルータ化

①dnsmasq とhostapd をインストールする
sudo apt-get install dnsmasq hostapd

②それぞれのサーバを止める
sudo systemctl stop dnsmasq
sudo systemctl stop hostapd

③/etc/dhcpcd.conf をdhcpcd.conf.org にコピーし,dhcpcd.conf を編集する
cd /etc
sudo cp dhcpcd.conf dhcpcd.conf.org
sudo nano dhcpcd.conf


→ 以下のようにdhcpcd.conf を編集する
※nanoエディタで編集時,Ctrl+Oで書き込み(保存),Ctrl+Xで終了します

④/etc/dnsmasq.conf をdnsmasq.conf.org に名前を変更し新たにdnsmasq.conf を作り編集する
cd /etc
sudo mv dnsmasq.conf dnsmasq.conf.org
sudo nano dnsmasq.conf


→ 以下 のようにdnsmasq.conf を編集する

⑤/etc/default/hostapd をhostapd.org にコピーし編集して1 行追加する
cd /etc/default
sudo cp hostapd hostapd.org
sudo nano hostapd


→ 以下 のようにhostapd を編集する

⑥/etc/hostapd/hostapd.conf を編集して作る
cd /etc/hostapd
sudo nano hostapd.conf


→リスト4 のようにhostapd.conf を編集する

(リスト4)

interface=wlan0
driver=nl80211
ssid=OpenPlc1
hw_mode=g
channel=6
wmm_enabled=0
macaddr_acl=0
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=OpenPlc1

⑦Wi-Fi 接続を確認して他のルータとつながっている場合は切断する(その際にWi-Fi をOFF にしない)

⑧サーバを起動する
sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd
sudo systemctl enable dnsmasq
sudo systemctl start dnsmasq

⑨システムを再起動する
sudo reboot

【補足】Wi-Fiルータを認識しないときの対処法
Wi-Fiルータの設定をして再起動や電源による立上げを繰り返すと,Wi-Fi ルータの識別名(OpenPlc1やOpenPlc4など)がターミナル用パソコンのWi-Fi一覧に見えたり見えなかったりする,という現象を示しました.
そのような個体は,Raspbianが立ち上がった後にWi-Fi をOFF からON にすると安定してWi-Fi 一覧に表示されますが,もしラズベリー・パイの電源を繰り返し入れ直したときにWi-Fi一覧に見えたり見えなかったりする場合は,以下の手順で/etcの中身を変更します.
1,/etcの中にリスト5 のようなWifiRestart.shを作ります.
sudo nano /etc/WifiRestart.sh

~~~~~
リスト5  WifiRestart.shの中身
sleep 5
sudo systemctl stop dnsmasq
sudo systemctl stop hostapd
sleep 5
sudo systemctl start hostapd
sudo systemctl start dnsmasq
~~~~~

2,ターミナル上で“crontab -e”でcrontabの設定を編集します.初回は編集に使用するエディタの一覧が出るので,使い慣れたエディタを選択すると設定が表示されます.ちなみに,本例はnanoエディタを使用しています.

3, 以下に示すようにcrontab設定の最下行に以下を記述します.記述後は,ファイルを保存してエディタを閉じます.
@reboot sh /etc/WifiRestart.sh