Raspberry Piを外部からコードレスで制御する場合無線LANを使いますが,IPアドレスをDHCPサーバから取得している場合,いちいちRaspberry PiのIPアドレスやPC等のIPアドレスを調べるのが面倒な場合があります。また,PC等のIPアドレスをRaspberry Piに登録して使う場合も設定の書き換えが面倒になります。 そこでRaspberry PiをWi-Fiアクセスポイントにして,PC等のIPアドレスはRaspberry Piから固定IPアドレスでもらうようにできれば何かと便利です。
このページはRaspberry PiをWi-Fiアクセスポイントにして,PC等のMACアドレスをRaspberry Piに登録して固定IPアドレスで運用するための方法を記載します。なお,Raspberry Pi経由でインターネット接続するためには,Raspberry Piをルータにしないといけませんがそれについては記載しません。参考文献に記載されているのでそちらを参照して下さい。
なお,確認したUSB Wi-Fi アダプタはBuffalo WLI-UC-GNM, WLI-UC-GとLogitec LAN-W150N/U2です。
sudo cp /etc/network/interfaces /etc/network/interfaces_orig
sudo nano /etc/network/interfaces
iface wlan0 inet static address 192.168.11.1 netmask 255.255.255.0
sudo ifconfig wlan0 192.168.11.1
sudo apt-get install hostapd isc-dhcp-serverでhostapdとisc-dhcp-serverをインストールします。(参考文献[2]ではapt-getでインストールされるhostapdがドライバに未対応とありますが,現在は対応しているようです。また,ここではドライバはmac80211しか扱いません。)
[FAIL] Starting ISC DHCP server: dhcpd[....] check syslog for diagnostics. ... failed!
/etc/default/ifplugd を編集します。(参考文献[3])
INTERFACES="auto" HOTPLUG_INTERFACES="all" ARGS="-q -f -u0 -d10 -w -I" SUSPEND_ACTION="stop"を以下のように書き換えます。
INTERFACES="eth0" HOTPLUG_INTERFACES="eth0" ARGS="-q -f -u0 -d10 -w -I" SUSPEND_ACTION="stop"
interface=wlan0 driver=nl80211 ssid=<適当なもの> hw_mode=g channel=<競合しない適当な数(1--12)> macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=<パスフレーズ> wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
DAEMON_CONF="/etc/hostapd/hostapd.conf"にする。
「また、WPASupplicantを無効にしておきます。 /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service を削除するのですが、一応適当なところ(ここではホームディレクトリ)に取っておきます。」(参考文献[2])
sudo mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service ~/
subnet 192.168.11.0 netmask 255.255.255.0 { range 192.168.11.16 192.168.11.128; option broadcast-address 192.168.11.255; default-lease-time 600; max-lease-time 7200; } host mypc { hardware ethernet <MACアドレス> fixed-address 192.168.11.2; option host-name "mypc"; }ルータとしての設定は参考文献を参照してください。
INTERFACES="wlan0"とします。
sudo update-rc.d hostapd enable sudo update-rc.d isc-dhcp-server enable