hostapdを入れ替える必要があります。本家のhostapdがサポートしているのですが、apt-getでインストールされるものはバージョンが古く未対応です(そのうち解決するのかもしれません)。
最新のソースからコンパイルします。
http://w1.fi/hostapd/ からソース(hostad-2.0.tar.gz)を落とし、展開します。
% wget http://w1.fi/releases/hostapd-2.0.tar.gz
% tar xvf hostapd-2.0.tar.gz
またコンパイルに以下のパッケージが必要なのでインストールします。
% sudo apt-get libnl-genl-3-dev libssl-dev
ソースツリー内のhostapdに移動し、defconfigを.configとしてコピーし、
configにCONFIG_LIBNL32=yを追加してからコンパイルします。
% cd hostapd-2.0/hostapd
% cp defconfig .config
% echo CONFIG_LIBNL32=y >> .config
% make
コンパイルされたhostapdでオリジナルのバイナリを置き換えます。
/etc/hostapd/hostapd.conf を以下のように設定します。
driver=nl80211を指定
同様にssid, channel, wpa_passphraseは適宜変更してください
interface=wlan0
driver=nl80211
ssid=myssid
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=raspberrypi
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
hostapdの起動設定をします。
/etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"
また、WPASupplicantを無効にしておきます。
/usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service ~を削除するのですが、一応適当なところ(ここではホームディレクトリ)に取っておきます。
sudo mv /usr/share/dbus-1/system-~services/fi.epitest.hostap.WPASupplicant.service ~/
この時点でhostapdを起動すればアクセスポイントとして動作します。~DHCPは動いていませんので、もしこの状態で試す場合はクライアント側は固定IPで接続します。
% sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
Configuration file: /etc/hostapd/hostapd.conf
Using interface wlan0 with hwaddr 00:22:cf:45:73:d5 and ssid "myssid"
(クライアントから接続)
wlan0: AP-STA-CONNECTED 00:19:7e:7d:e2:b8
wlan0: STA 00:19:7e:7d:e2:b8 RADIUS: starting accounting session 51FFD0CC-00000000
wlan0: STA 00:19:7e:7d:e2:b8 WPA: pairwise key handshake completed (RSN)
こんな感じで動けばOKです。クライアントからRaspberry Piにpingやsshなどが通るか確認してみてください。
デーモンとして起動する場合は以下のようにします。
% sudo service hostapd start
また、起動時にサービスとして立ち上げる場合は以下のようにします。
% sudo update-rc.d hostapd enable
isc-dhcp-serverをインストールします。
isc-dhcp-server は apt-get update しないと 404 not found でした。
% sudo apt-get update
% sudo apt-get install isc-dhcp-server
/etc/dhcp/dhcpd.conf の設定を行います。~グローバルの domain-name と domain-name-servers の設定は外し、subnetの中でそれらを設定しています。
/etc/dhcp/dhcpd.conf(変更した部分のみ抜粋)
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;
~ authoritative;~ ~ subnet 192.168.93.0 netmask 255.255.255.0 { range 192.168.93.100 192.168.93.199; option broadcast-address 192.168.93.255; default-lease-time 600; max-lease-time 7200; # 以下はルーターにする場合 option routers 19168.93.1; option domain-name "local"; option domain-name-servers 8.8.8.8, 8.8.4.4; }
DHCPサーバの起動設定をします。~wlan0側にのみDHCPサービスを提供します。
/etc/default/isc-dhcp-server
INTERFACES="wlan0"
サーバを起動します。
% sudo service isc-dhcp-server start
この時点でhostapdを起動すると、DHCP機能つきのアクセスポイントとして動作します。
今度はクライアント側はDHCPで接続できます。設定どおりクライアント側にIPが振られたことを確認してみてください。
ただし、まだRaspberry Piと接続できるだけです。
こちらも起動時にサービスとして立ち上げる場合は下記のようにします。