概要
BeagleBoneBlackを無線LANの親機(アクセスポイント)にするまでの設定手順をまとめました。
- BeagleBoneBlack Rev.C (OS:Debian Wheezy)を使用
- WindowsマシンとのUSB接続での接続機能を生かしたままにする。
- 無線LANアダプタはBuffaloのWLI-UC-GNMEを使用。
- 本体のIPは任意だが、ここでは固定IP「192.168.100.100」を使うものとする。
- DHCPで貸与するIPの範囲は「192.168.100.101~192.168.100.110」とする。
- アクセスポイント名は任意だが、ここでは「BBB」を使うものとする。
- アクセスポイントのパスフレーズは任意の8文字以上の文字列が使えるが、ここでは「beaglebone」を使うものとする。
Windowsマシンとの接続
参考URL: http://beagleboard.org/getting-started
- WindowsマシンのUSBポートにBBBを接続する。
- 参考URLに記載されたリンクから合致するOSのドライバをダウンロードし、インストールする。
- http://192.168.7.2にブラウザからアクセスできれはOK。
- SSHで192.168.7.2にログインする。(ユーザ名: root, パスワード: root)
固定IP付与とLANインターフェース間転送設定
固定IPを付与し、無線LANインターフェースwlan0の内容をeth0に転送する設定を追記する。
- /etc/network/interfacesを編集する。以下の内容を追記する。
auto wlan0
iface wlan0 inet static
address 192.168.100.100
netmask 255.255.255.0
pre-up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
up iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
- IPフォワード設定を有効化する。
echo 1 > /proc/sys/net/ipv4/ip_forward
- IPフォワード設定の設定ファイル/etc/sysctl.confを編集する。下記内容を追記する。
net.ipv4.ip_forward=1
hostapdの設定
hostapdは無線アクセスポイント機能を提供するデーモンです。BeagleBoneBlackにはプリインストール(ver1.0)されています。この時点でUSBに無線LANのアダプタを挿入しておきます。
- 設定ファイル/etc/hostapd/hostapd.confを作成する。下記内容を追記する。
interface=wlan0
driver=nl80211
ssid=BBB
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=beaglebone
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
- hostapdデーモンが上記設定ファイルで起動するようにする。/etc/default/hostapdを編集し、下記内容を追記する。
DAEMON_CONF="/etc/hostapd/hostapd.conf"
DHCPの設定
アクセスポイントだけではアクセス元のIPが付与されず、接続できません。DHCPでアクセスしてくるPCにIPを貸し与える必要があります。
WindowsマシンとのUSB接続でも裏でudhcpdというデーモンが動いてIPを付与しています。しかしこのデーモンは貧弱で2つのネットワークにIPを貸与できないので、以下の手順では無効化して別のDHCPデーモンを使っています。
- Windowsマシンでdnsmasqをダウンロードする。
http://www.thekelleys.org.uk/dnsmasq/
http://www.thekelleys.org.uk/dnsmasq/doc.html
- dnsmasqをビルドしてインストールする。ここではバージョン2.75を使う。
tar -zxvf dnsmasq-2.75.tar.gz
cd dnsmasq-2.75
make
sudo make install
- dnsmasqのtarの中の設定ファイルテンプレートをコピーする。
cp dnsmasq.conf.example /etc/dnsmasq.conf
- dnsmasqの設定ファイル/etc/dnsmasq.confを編集する。下記の内容を追記する。usb0はWindowsマシンとの接続設定、wlan0が無線LANでの接続設定となっている。
interface=usb0
interface=wlan0
dhcp-range=usb0,192.168.7.1,192.168.7.1,255.255.255.252,4h
dhcp-range=wlan0,192.168.100.101,192.168.100.110,255.255.255.0,4h
- dnsmasqのsystemd自動起動設定ファイル/lib/systemd/system/dnsmasq.serviceを作成する。
[Unit]
Description=DNS caching server.
After=syslog.target network.target
[Service]
Type=forking
PIDFile=/var/run/dnsmasq.pid
ExecStart=/usr/local/sbin/dnsmasq
[Install]
WantedBy=multi-user.target
- dnsmasqをsystemdで自動起動するように設定する。
systemctl daemon-reload
systemctl enable dnsmasq.service
- udhcpdを無効化する。
insserv -r udhcpd
- dnsmasqを起動する。
systemctl start dnsmasq.service
- BeagleBoneBlackを再起動する。
reboot
確認
再起動後アクセスポイントBBBが見えるはずです。アクセスポイントBBBに接続している間は192.168.100.100からBeagleBoneBlackに接続できるようになります。
WindowsマシンとのUSB接続機能も生かしたままなので、USB接続中は192.168.7.2で接続できます。