TZNM 制作日誌 Raspberry Pi A+ を Wifi のアクセスポイント化してみる
▼ WiFi アクセスポイント化をしてみる

ラズパイA+ は外部に繋ぐ手段が UART か USB しかないので、
そのままでは Ethernet に繋ぐことができません。

実証機は青歯の PAN を使ってつなぐ予定なんですが
設定がこの上なく難しいので、一旦ラズパイA+ を WiFi のアクセスポイントとし
とにかく SSH を繋げることを第一の目標とすることにしました。

特に、LAN コネクタを持たないラズパイA+ では必須だと思うので頑張ってみました。

今回使った Wifi のドングルはこちら

プラネックス PLANEX
GW-USNano2 [IEEE802.11n/g/b対応 高速150Mbps WPSボタン搭載 超小型 無線LAN USBアダプタ]













#アフィリではないので安心して買うが良いw

→ 構成

・ラズパイA+ をアクセスポイント化するので、ラズパイA+ には固定IPを振ります。
 → 有線 LAN の eth0 とは、別サブネット(当然別IP)の固定IPを振る。
・ラズパイA+ に繋ぎに来るクライアントには、DHCP で IPを振ってやります。
 → Wifi と同じサブネットの IP を振ります。
・Wifi から外に出る設定は不要なので、ルーティング設定は行いません。

→ 必要なアプリ
・hostapd は Wifi のアクセスポイントを構成するための daemon らしいです。
・上記 hostapd だけではアクセスポイントは構成できないので、
isc-dhcp-server とゆー DHCP サーバをぶち込んでやります。

# apt-get install hostapd
# apt-get install isc-dhcp-server


→ 設定

・Wifi とゆーのは、ラズパイにとってはとっても電力を食うものです!
なので、Wifi を使う時は下記の設定を行って、USB に供給する電流量を
増やしてやる必要があります。
# 最大 1.2A 供給できるようになるとのことです。

→ /boot/config.txt

max_usb_current=1


・Wifi ドングルをぶっ刺してラズパイを起動したら、lsusb で存在を確認します。
使ってるチップは蟹の RTL8188 みたいですね。

# lsusb
Bus 001 Device 003: ID 2019:ab2a PLANEX GW-USNano2 802.11n Wireless Adapter [Realtek RTL8188CUS]


・RTL8188CUS が使うドライバ 8192cu は、デフォルトでパワーマネージメントが
有効になっています。アクセスポイント化するにはこれは邪魔なので停止します。

→ /etc/modprobe.d/8192cu.conf

options 8192cu rtw_power_mgnt=0


・次に Wifi ドングルのインターフェイスに対して、固定 IP を振ります。
wpa_supplicant.conf を無効にしてやるのがポイントです。

→ /etc/network/interfaces

allow-hotplug wlan0
iface wlan0 inet manual
# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf


→ /etc/dhcpcd.conf

interface wlan0
static ip_address=192.168.100.xxx/24


・hostapd の 設定ファイルのデフォルトをぶっこ抜いて配置します。

# zcat /usr/share/doc/hostapd/examples/hostapd.conf.gz > /etc/hostapd/hostapd.conf


デフォルトの設定から、下記の設定は必ず変更します。
ssid=xxxxxx # アクセスポイントの SSID。
wpa_passphrase=xxxxxxxxxx # Wifi のパスワード。

このままでも使えますが、お好みに合わせて下記の設定を変えるのも良いでしょう。
#ここはまだまだチューニングの余地があります...

# Wifi のインターフェイス名。
interface=wlan0
# 国毎の電波制限への対応を謳っているので、国内利用なら設定した方がセーフ。
country_code=JP
# Wifi のチャネル。すでにあるチャネルと被らないように設定。
channel=1
# WPA2 を有効にする。
wpa=2
# WPA-PSK のみ有効化。
wpa_key_mgmt=WPA-PSK
# 802.11n の有効化。
ieee80211n=1

・hostapd が自動起動するときの config のありかを設定します。

→ /etc/default/hostapd

DAEMON_CONF="/etc/hostapd/hostapd.conf"


・最後に DHCP の設定を行います。

→ /etc/dhcp/dhcpd.conf

subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.75 192.168.0.79;
option broadcast-address 192.168.100.255;
}


→ /etc/default/isc-dhcp-server

INTERFACES="wlan0"


・残念ながら、現時点では インターフェイス wlan0 に IP が振られる前に
dhcp サーバが立ち上がってしまい、エラーになってしまいます。
とりあえず、暫定対処として下記の設定を行っています。
# 'sleep 8' を追加しているところです。
ちなみに各 rcx.d の起動順を変えたぐらいではうまく行きませんでした。

→ /etc/init.d/isc-dhcp-server

case "$1" in
start)
test_config
log_daemon_msg "Starting $DESC" "$NAME"
sleep 8
start-stop-daemon --start --quiet --pidfile "$DHCPD_PID" --exec /usr/sbin/dhcpd --
-q $OPTIONS -cf "$DHCPD_CONF" -pf "$DHCPD_PID" $INTERFACES


ここまでできたら、ラズパイ側の設定は大丈夫です。
あとは、  テキトーな Wifi クライアントから
・アクセスポイントの SSID が見えていること。
・実際に接続できること。
・ラズパイ側の DHCP から IP が振られていること。
・SSH 接続ができること。
が確認できればOKです。

【2016/11/28】 TZNM | トラックバック(0) | コメント(0) | page top↑
<<今月の密林 2016/12 | ホーム | TZNM 制作日誌 Raspberry Pi A+ の初期設定>>
コメント
コメントの投稿











管理者にだけ表示を許可する

トラックバック
トラックバックURL
http://hidenov.blog4.fc2.com/tb.php/1328-c3cdb604
| ホーム |