レンタルで借りている回線終端装置兼無線LANルータの無線が RTP 通信をブチブチ切ってしまうので Raspberry Pi をアクセスポイントにした。
今回使用した無線LANアダプタは手元にあった以下の2種類。以前、試しにと買ってみたものだが結局ギガビットイーサネットアダプタを購入したので放置していた。どちらも RTL8192cu が使われている(たしか dkms-8192cu
を入れたような…)。
- Logitec LAN-WH300NU2
- Planex GW-USNANO2A
hostapd
パッケージをインストール。
pacman -S hostapd
今回は「無線ルータ」ではなく「無線アクセスポイント」を作成するのでブリッジ接続になる。ブリッジ接続を作成する方法はいくつかあるらしいが、Raspberry Pi 2 Model B+ にインストールしている Arch Linux(armv7l)では systemd で作成できるようなのでそちらの方法を選択した。
現在の Raspberry Pi の構成は有線LAN×2、無線LAN×1で、ブリッジとして使うのは eth1
と wlan0
。
まず、起動時に自動でブリッジインタフェイスを作成させるために /etc/systemd/network/br0.netdev
を用意する。このあたりのことは man systemd.network
を読めば例などが載っている。
[NetDev] Name=br0 Kind=bridge
次に br0
用の /etc/systemd/network/br0.network
を用意する。IP アドレスは固定にしているが DHCP でも恐らく問題ない。
[Match] Name=br0 [Network] Address=192.168.1.100/24 Gateway=192.168.1.1
次に /etc/systemd/network/eth1.network
と /etc/systemd/network/wlan0.network
を作成する。中身は [Match]
セクションの Name
の値が異なるだけ。
[Match] Name=eth1 [Network] Bridge=br0
[Match] Name=wlan0 [Network] Bridge=br0
ネットワークを再起動(した気がする)が、再起動した方が手っ取り早いかもしれない。
sudo systemctl restart systemd-network
再起動してみて br0
が作成されていれば hostapd
のテストを行う。設定ファイルのサンプルが /usr/share/doc/hostapd
に収録されているので hostapd.conf
を適当な場所にコピーする。
cp /usr/share/doc/hostapd/hostapd.conf ~/
interface
と bridge
部分を環境に合わせる。これで準備は出来たのだけど、8192cu の場合、通常の hostapd
が 8192cu に対応していないらしい…。色々調べた結果
http://www.adafruit.com/downloads/adafruit_hostapd.zip で置き換えて、driver=rtl871xdrv
を指定すればいいらしい。
interface=wlan0
bridge=br0
# RTL8192CUの場合
driver=rtl871xdrv
hostapd
を起動する。設定ファイルに誤りがある場合は場所を教えてくれる。
sudo hostapd ~/hostapd.conf
適当なデバイスで接続して問題なく接続できれば hostapd
を終了する。
誰でも気軽に接続できる状態なのでこれはこれで使い道があるかもしれないが、セキュリティの設定をしていく。WPA のパスワードを hostapd.conf
に直接書くこともできるが、ここでは wpa_passphrase
を使ってパスワードを作成する。SSID と PASSWORD は任意。ちなみに SSID は日本語でもOK。
wpa_passphrase SSID PASSWORD
hostapd.conf
を編集する。以下はコメントアウトされていない部分だけを引っこ抜いたもの。(SSID とパスワードはダミー)
interface=wlan0 bridge=br0 driver=rtl871xdrv logger_syslog=-1 logger_syslog_level=2 logger_stdout=-1 logger_stdout_level=2 ctrl_interface=/var/run/hostapd ctrl_interface_group=0 ssid=おやき hw_mode=g channel=1 beacon_int=100 dtim_period=2 max_num_sta=255 rts_threshold=2347 fragm_threshold=2346 macaddr_acl=0 auth_algs=3 ignore_broadcast_ssid=0 wmm_enabled=1 wmm_ac_bk_cwmin=4 wmm_ac_bk_cwmax=10 wmm_ac_bk_aifs=7 wmm_ac_bk_txop_limit=0 wmm_ac_bk_acm=0 wmm_ac_be_aifs=3 wmm_ac_be_cwmin=4 wmm_ac_be_cwmax=10 wmm_ac_be_txop_limit=0 wmm_ac_be_acm=0 wmm_ac_vi_aifs=2 wmm_ac_vi_cwmin=3 wmm_ac_vi_cwmax=4 wmm_ac_vi_txop_limit=94 wmm_ac_vi_acm=0 wmm_ac_vo_aifs=2 wmm_ac_vo_cwmin=2 wmm_ac_vo_cwmax=3 wmm_ac_vo_txop_limit=47 wmm_ac_vo_acm=0 ieee80211n=1 eapol_key_index_workaround=0 eap_server=0 own_ip_addr=127.0.0.1 wpa=2 wpa_psk=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef wpa_key_mgmt=WPA-PSK wpa_pairwise=CCMP
設定ファイルを所定の位置に移動。
sudo mv ~/hostapd.conf /etc/hostapd
権限を変更しておく。
sudo chown root:root /etc/hostapd/hostapd.conf sudo chmod 0600 /etc/hostapd/hostapd.conf
再起動したときに hostadp
が自動起動するようにしておく。
sudo systemctl enable hostapd
sudo systemctl start hostapd
前日に RTP で音楽のストリーミングをしていたときはブチブチ切れていたけど、親機を Raspberry Pi に変更したら安定するようになった。ただ、極端に負荷をかけるとネットワークが切れることがあるようだが、タブレットに地デジのデータなどを飛ばしていたりするくらいなら大丈夫っぽい。
NAS に VPN サーバに無線アクセスポイントと大活躍の Raspberry Pi。そろそろ1年だし新しいモデル出たりしないかなぁ…なんて。
- 出版社/メーカー: Raspberry Pi
- メディア: エレクトロニクス
- この商品を含むブログ (8件) を見る
Raspberry Pi2 Model B ボード&ケースセット (Standard, Clear)-Physical Computing Lab
- 出版社/メーカー: TechShare
- メディア: エレクトロニクス
- この商品を含むブログ (9件) を見る
PLANEX 無線LAN子機 (USBアダプター型) 11n/g/b 150Mbps MacOS X10.10対応 GW-USNANO2A (FFP)
- 出版社/メーカー: プラネックス
- 発売日: 2013/09/06
- メディア: Personal Computers
- この商品を含むブログを見る
Logitec 無線LANアダプタ 300Mbps 11n ハイパワー LAN-WH300NU2
- 出版社/メーカー: ロジテック
- 発売日: 2013/03/22
- メディア: Personal Computers
- この商品を含むブログを見る