HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
English Translate 中文翻訳
LINK
BACK
 

[NEW] 2016/04/20

Raspberry Pi 3 Model Bの WiFiを無線LANアクセスポイント化 hostapd + bridge-utils編 Raspberry Pi 3 Model Bの WiFiを無線LANアクセスポイント化 hostapd + bridge-utils編

(ラズパイ3に内蔵の WiFiを無線LANアクセスポイントにして通信環境を設定する方法)

Tags: [Raspberry Pi 3], [電子工作]






● Raspberry Pi 3 Model B

 Raspberry Pi3 Model B RPI2 RPI3

 大人気の CPUボードの Raspberry Piに WiFiと Bluetoothが搭載されたモデルが新発売となりました。
 以前から Raspberry Pi 2を買おうかどうか迷っていましたが、Raspberry Pi 3 Model Bの発売を機に購入を決意してラズベリアンになる事にしました。

 ※ ラズパイの OS Raspbianはバージョンが上がる毎に過去の版と OSの内部の作りが変わり、過去に書かれた製作記事(例えば Raspbian Wheezyの時代の記事)がそのままではエラーが出たりして動かない事が有ります。
 ※ 当方のホームページのラズパイ記事は全て Raspberry Pi 3 Model Bと Raspbian Jessieの組み合わせで動作確認をしております。


● Raspberry Pi3を無線LANアクセスポイントとして設定する方法 hostapd + bridge-utils編

 Raspberry Pi3の WiFi無線 LANを無線LANアクセスポイントとして設定して、ラズパイに WiFi機器を接続して有線 LANを使用出来る様にします。

 広告ブロック機能付きに進化したアクセスポイント設定方法を公開しました。

[NEW] 2016/08/30
Raspberry Pi 3の WiFiを無線LANアクセスポイント化 hostapd + dnsmasq編
Raspberry Pi 3の WiFiを無線LANアクセスポイント化 hostapd + dnsmasq編

  ラズパイ3に内蔵の WiFiを無線LANアクセスポイントにして通信環境を設定する方法(広告ブロック機能付き)

 下記の設定方法は最新の Raspberry Pi3の RASPBIAN JESSIE OSに対応しています。(動作確認済み 2016/04)
RASPBIAN JESSIE download
 Full desktop image based on Debian Jessie

 今回は無線LANアクセスポイントはブリッジモードとして設定して、DHCPによる IPアドレスの払い出しは有線 LAN側に接続したゲートウェイに持たせる物とします。

・Raspberry Pi3を無線LANアクセスポイントとして設定する方法
Raspberry Pi3を無線LANアクセスポイントとして設定する方法



IPアドレス備考
市販のブロードバンドルーター192.168.1.1DHCPサーバ機能有り
(割り当て 192.168.1.30 ~)
ラズパイの有線 LAN側192.168.1.10
ラズパイの無線 LAN側192.168.1.20

 bridge-utilsと hostapdをインストール
$ sudo apt-get -y install bridge-utils hostapd

 /etc/network/interfacesに下記の設定を追加
$ sudo nano /etc/network/interfaces

auto br0
iface br0 inet static
  address 192.168.1.20
  netmask 255.255.255.0
  gateway 192.168.1.1
bridge_ports wlan0 eth0

 面倒な場合はコマンドラインでサクッと設定を追加する
sudo bash -c "echo \# WiFi wireless-access-point Bridge >> /etc/network/interfaces"
sudo bash -c "echo auto br0 >> /etc/network/interfaces"
sudo bash -c "echo iface br0 inet static >> /etc/network/interfaces"
sudo bash -c "echo   address 192.168.1.20 >> /etc/network/interfaces"
sudo bash -c "echo   netmask 255.255.255.0 >> /etc/network/interfaces"
sudo bash -c "echo   gateway 192.168.1.1 >> /etc/network/interfaces"
sudo bash -c "echo bridge_ports wlan0 eth0 >> /etc/network/interfaces"

 catコマンドで /etc/network/interfacesの中身を確認
$ cat /etc/network/interfaces

 brctlコマンドで確認(現時点では認識していないので表示されない)
$ brctl show
bridge name     bridge id               STP enabled     interfaces

 再起動する
$ sudo reboot

 --------
 brctlコマンドで確認(br0を認識している)
$ brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.123456789012       no              eth0

 ifconfigコマンドで確認(br0を認識している)
$ ifconfig

br0       Link encap:Ethernet  HWaddr b8:27:eb:xx:xx:xx
          inet addr:192.168.1.20  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:126 errors:0 dropped:0 overruns:0 frame:0
          TX packets:219 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:18996 (18.5 KiB)  TX bytes:35457 (34.6 KiB)

eth0      Link encap:Ethernet  HWaddr b8:27:eb:xx:xx:xx
          inet addr:169.254.137.3  Bcast:169.254.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:126 errors:0 dropped:0 overruns:0 frame:0
          TX packets:264 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:18996 (18.5 KiB)  TX bytes:45066 (44.0 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:656 (656.0 B)  TX bytes:656 (656.0 B)

wlan0     Link encap:Ethernet  HWaddr b8:27:eb:xx:xx:xx
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

 /etc/hostapd/hostapd.confの設定ファイルを確認(初期状態では存在しない)
$ cat /etc/hostapd/hostapd.conf
cat: /etc/hostapd/hostapd.conf: No such file or directory

 /usr/share/doc/hostapd/examples/hostapd.conf.gzを解凍してコピーする(中身の確認)
$ sudo zcat /usr/share/doc/hostapd/examples/hostapd.conf.gz

 /usr/share/doc/hostapd/examples/hostapd.conf.gzを解凍してコピーする
$ sudo bash -c "zcat /usr/share/doc/hostapd/examples/hostapd.conf.gz > /etc/hostapd/hostapd.conf"

 /etc/hostapd/hostapd.confを編集して設定する
$ sudo nano /etc/hostapd/hostapd.conf

変更前変更後備考書き換え必須か
interface=wlan0interface=wlan0そのまま--
#bridge=br0bridge=br0先頭の #を取る必須
# driver=hostapdriver=nl80211必須
ssid=testssid=WIFISSID任意の SSIDに書き換える必須
hw_mode=ghw_mode=gそのまま--
channel=1channel=1そのまま--
#wpa=1wpa=21=WPA、2=WPA2、3=WPA+WPA2
ここでは WPA2だけを有効にする
必須
#wpa_passphrase=secret passphrasewpa_passphrase=PASSWORD任意のパスワードに書き換える必須
#wpa_key_mgmt=WPA-PSK WPA-EAPwpa_key_mgmt=WPA-PSK必要に応じて書き換える任意
#rsn_pairwise=CCMPrsn_pairwise=CCMP必要に応じて書き換える任意
 例によって面倒な場合はコマンドラインでサクッと設定を追加する  一旦ローカルにファイルをコピーして文字列置換して設定ファイルを書き戻す $ cp /etc/hostapd/hostapd.conf ~/hostapd.conf $ sed -i -e "s/#bridge=br0/bridge=br0/g" ~/hostapd.conf $ sed -i -e "s/# driver=hostap/driver=nl80211/g" ~/hostapd.conf $ sed -i -e "s/ssid=test/ssid=WIFISSID/g" ~/hostapd.conf $ sed -i -e "s/#wpa=1/wpa=2/g" ~/hostapd.conf $ sed -i -e "s/#wpa_passphrase=secret passphrase/wpa_passphrase=PASSWORD/g" ~/hostapd.conf $ cat ~/hostapd.conf $ sudo mv /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.bak $ sudo cp ~/hostapd.conf /etc/hostapd/hostapd.conf  暫定的に hostapdを動かしてみる(他の WiFi機器で上記設定のアクセスポイントに接続出来るか確認する) $ sudo hostapd /etc/hostapd/hostapd.conf Configuration file: /etc/hostapd/hostapd.conf Failed to create interface mon.wlan0: -95 (Operation not supported) wlan0: Could not connect to kernel driver Using interface wlan0 with hwaddr b8:27:eb:xx:xx:xx and ssid "WIFISSID" wlan0: interface state UNINITIALIZED->ENABLED wlan0: AP-ENABLED  スマホ等を接続すると表示される wlan0: STA 00:xx:xx:xx:xx:xx IEEE 802.11: associated wlan0: AP-STA-CONNECTED 00:xx:xx:xx:xx:xx wlan0: STA 00:xx:xx:xx:xx:xx RADIUS: starting accounting session 571B1234-00000000 wlan0: STA 00:xx:xx:xx:xx:xx WPA: pairwise key handshake completed (RSN) $ sudo hostapd -v hostapd v2.3 User space daemon for IEEE 802.11 AP management, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator Copyright (c) 2002-2014, Jouni Malinen <j@w1.fi> and contributors  ラズパイを起動した時に自動で hostapdが動く様に設定する $ sudo nano /etc/default/hostapd
変更前変更後備考
#DAEMON_CONF=""DAEMON_CONF="/etc/hostapd/hostapd.conf"hostapd.confのパスを設定する
 ※ #を付けてコメント化すれば自動起動しなくなる。  例によって面倒な場合はコマンドラインでサクッと設定を追加する  一旦ローカルにファイルをコピーして文字列置換して設定ファイルを書き戻す $ cp /etc/default/hostapd ~/hostapd $ sed -i -e "s/#DAEMON_CONF=\"\"/DAEMON_CONF=\"\/etc\/hostapd\/hostapd.conf\"/g" ~/hostapd $ cat ~/hostapd $ sudo mv /etc/default/hostapd /etc/default/hostapd.bak $ sudo cp ~/hostapd /etc/default/hostapd  再起動する $ sudo reboot

 これで、ラズパイを WiFiアクセスポイントとして使用出来る様になります。




Tags: [Raspberry Pi 3], [電子工作]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

大人気の CPUボード、Raspberry Pi 3 Model Bで作ってみよう
大人気の CPUボード、Raspberry Pi 3 Model Bで作ってみよう

  Raspberry Piの開発環境の構築やタッチパネル付き液晶ディスプレイや各種センサーの使い方まとめ

Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入出来る通販ショップ一覧まとめ
Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入出来る通販ショップ一覧まとめ

  ラズパイゼロW Pi Zero Wirelessモデルを海外通販で先行して購入し、サクッと入手する方法

Raspberry Pi3で安定して使える相性の無い microSDカードのまとめ
Raspberry Pi3で安定して使える相性の無い microSDカードのまとめ

  ラズパイ3で安定して使える microSDカードを購入する Teamと SanDiskは絶対に買わない

Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ
Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ

  ラズパイの Raspbian OSのコマンドラインで使用する便利コマンド、負荷試験や CPUシリアル番号の確認方法等も

Raspberry Pi 3公式フォーラムの FAQの内容の日本語訳
Raspberry Pi 3公式フォーラムの FAQの内容の日本語訳

  ラズパイ公式フォーラムの「The Raspberry Pi 3 Model B Q&A thread」の日本語訳

Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法
Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法

  ラズパイ3の GPIO端子の I2C機能を有効にして各種センサーを繋げる方法まとめ


Raspberry Pi 3、シングルボードコンピュータ ラズパイ3 Raspberry Pi関連はこちらへまとめました
 下記以外にも多数のラズパイ関係の記事が有ります。
 (I2C制御、GPIO制御、1-Wire制御、シリアル通信、日本語音声合成、日本語音声認識、中国語音声合成、MeCab 形態素解析エンジン、赤外線リモコン制御、秋月 I2C液晶モジュール、KeDei 3.5インチ液晶、HDMI 5インチ液晶、NFCカードリーダ、コマンドライン操作方法等)
Raspberry Pi 3に HDMI接続の 800x480 5インチ TFT液晶を接続して使用する方法
Raspberry Pi 3 Jessieで LIRC機能を使って学習リモコン、赤外線リモコンを送受信する方法
Raspberry Pi 3の WiFiを無線LANアクセスポイント化 hostapd + dnsmasq編
Raspberry Pi 3の Bluetoothで ブルテザで通信する方法(Bluetooth編)
Raspberry Pi 3で日本語音声を合成して喋らせる方法(Open JTalk編)
Raspberry Pi 3に USB Micを接続して日本語の音声認識をする方法(Julius編)
Raspberry Pi 3の GPIOに LEDとスイッチを接続して Lチカする方法
Raspberry Pi 3の GPIOに LEDとスイッチを接続してシャットダウンボタンを実装する方法
Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法
Raspberry Pi 3の GPIOに I2C通信方式の気圧計 BMP280を接続する方法
Raspberry Pi 3に I2C通信方式の NFCリーダライタ PN532を接続して NFC FeliCaカードを読む方法
Raspberry Pi 3でネットワーク ライブカメラを構築する方法 Motion編
Raspberry Pi 3でネットワーク ライブカメラを構築する方法 MJPG-streamer編
Raspberry Pi 3 Model Bで動画処理アプリ FFmpegをコンパイルする方法
Raspberry Pi3の X-Window Systemに Windowsのリモートデスクトップから接続する方法
Raspberry Pi3に WebRTCの STUN/TRUNサーバと PeerJSサーバをインストールする方法


Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板
Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板

  Espressif ESP8266 ESP-12-E NodeMCU V1 ESP12 CP2102

BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)
BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)

  レーザー彫刻機、カラー液晶の DIYオシロ、Arduinoや Raspberry Pi用の小型カラー液晶



[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外はweb構成の変更で移動する場合があります)
Copyright (c) 2016 FREE WING, Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_3_wifi_wireless_access_point/