Select Your Language

免責事項

  • 本サイトの情報の利用、内容、サービスによって、利用者にいかなる損害、被害が生じても、著者は一切の責任を負いません。ユーザーご自身の責任においてご利用いただきますようお願いいたします。

    本サイトで頒布している基板およびキットは、技術者、またはそれに準ずる電気的知識をお持ちの電子工作ファンの方のためのものです。一般のオーディオファンの方のためのものではありません。
    また、頒布基板およびキットは、いかなる条件でも動作を保証するものではございませんので、あらかじめご了承ください。

    電子工作では、火傷、感電、火災などの可能性があります。十分に注意をして作業して下さい。

    営利目的のご使用は認めておりません。 記事の転載や、基板・キットの商用利用の方は、ご連絡ください。学生やサークルの学習目的でまとめてご購入する場合は特別価格でご提供させていただきます。
無料ブログはココログ

スポンサー

« Raspberry Pi 4 でAirPlayしてYoutube動画を楽しむ方法(RPiPlay) | トップページ | Moode Audio R7.3.0用のSabreberry32ドライバリリース »

2021年8月15日 (日)

Raspberry Pi 4をWifi AccessPoint化 5GHz / 40MHz幅

2年ほど前にPi3をAP化する方法を紹介しました。今回はPi4で同じことをします。

実は、RPiPlayで途切れがちなAirPlay動画転送をもっとよくしたいと思ったからです。シンプルな構成の方が良さそうですよね。

Rpiplay06

         < 今回の接続図 >

全体の配線はこのようになります。
ネット上の動画をストリーミング再生するのはiPadですが、そのデータをAirPlayにてPi4へと送り戻してHDMIから動画を出力するという感じ。

 

なんだかややこしいことになっていますが、先日の接続よりはシンプルになります。

Rpiplay05

      < 前回の接続図 WIFIルーターがあった>

先日の接続はこうでした。Wifiルーターの機能(正確にはアクセスポイント)をPi4に実装してしまおうという話です。

 

設定は少々長いのでお付き合いください。

以降、sshでログイン後のコマンドです。ピンク文字がコマンド。青文字はファイル編集内容です。コピペしてください。

最新のRaspberry Pi OS(2021-05-07-raspios-buster-armhf-lite)を使用しました。

 

 

raspi-configで国を設定する

sudo raspi-config コマンドで国を設定します。

5 Localisation Options

  > L4 WLAN Country

    > JP Japan

OKを選択したら再起動します。

 

 

ソフトウェアのインストール

avahi、hostapd、dnsmasqという3つのソフトウェアを使って実現しています。 avahiはRaspbianに最初から入っているので、残り2つをインストール&設定していきます。

sudo apt-get update

sudo apt-get install hostapd dnsmasq -y

とコマンドを打ってインストールします。

hostapd : アクセスポイントのソフト。

dnsmasq : ホスト名とIPアドレスを覚えるDNSサーバソフト。

今回、dnsmasqはシンプルなDHCPサーバとして使用しています。ホスト名など覚えません。 つまり本来のDNSの機能を使っていません。

 

 

DHCPクライアント設定

sudo nano /etc/dhcpcd.conf で開いて以下を追記します。

# define static profile
profile static_eth0
static ip_address=192.168.1.50
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

# fallback to static profile on eth0
interface eth0
fallback static_eth0

denyinterfaces wlan0

interface wlan0
static ip_address=172.24.1.1/24
static routers=172.24.1.1
static domain_name_servers=172.24.1.1
static broadcast 172.24.1.255

 

保存して閉じます。
LAN側(eth0)のIPアドレスはご自身の環境に合わせてください。

ここでstatic を指定しているのは、インターネット側のルーターに接続せずにiPadとPi4とを接続し、ローカルのWiFiのみでAriPlay出来るようにするためです。常時ルーターへ接続するなら下記の2行のみでOKです。

interface wlan0
static ip_address=172.24.1.1/24

 

 

hostapdの設定(5GHz AP設定)

sudo nano /etc/hostapd/hostapd.conf で新規ファイルを作って下記の青文字をコピペして書き込みます。

driver=nl80211
interface=wlan0

country_code=JP
hw_mode=a
ieee80211d=1
#ieee80211h=1
ieee80211n=1
ieee80211ac=1
wmm_enabled=1

vht_oper_chwidth=0
channel=36

auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_pairwise=TKIP

ssid=Pi4-AP
wpa_passphrase=raspberry

 

保存して閉じます。ssidとパスフレーズはご自由に設定してください。チャンネルは36もしくは44のみ有効らしいです。

 

sudo nano /etc/default/hostapd  で開いて下記の1行を追記します。

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

 

 

 

dnsmasqでのDHCPサーバー設定

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

sudo nano /etc/dnsmasq.conf   で下記を書き込みます。

interface=wlan0
dhcp-range=172.24.1.10,172.24.1.100,255.255.255.0,24h

 

保存して閉じます。

172.24.1.10 から 172.24.1.100 までのアドレスをWiFi側のDHCP用として登録しています。

 

 

ソフト起動&リブート

sudo systemctl enable hostapd

sudo systemctl enable dnsmasq

sudo reboot

一旦、再起動します。

一応ここでAP化は出来ているハズです。

 

 

IPv4をFORWARDING

続けてIPv4 フォワードをEnableしていきましょう。

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

sudo nano /etc/sysctl.conf で開いて下記を追加 (というか該当箇所のコメントアウト # を外す)

net.ipv4.ip_forward=1

保存して終了。

 

iptables でルーティング、フォワーディングの設定(NAT設定)

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT

sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

 

iptablesの設定保存と自動呼出し

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

sudo nano /etc/rc.local で開いて exit 0 より上の行に下記を追加して再起動時にiptablesをレストアするようにします

iptables-restore < /etc/iptables.ipv4.nat

保存して終了。

 

sudo reboot

再起動すれば完了です。

 

 

接続確認

どうかな? 

Rpiplay07

5GHzで40MHz幅で接続できることを確認できました。androidのWIFI Analyzer アプリの表示。

 

ついでに速度も見てみましょう。

Rpiplay08

WIFI-APとしては、さほど速くないようです。有線LANで接続すると50~90Mbpsくらいは出る環境ですので、Pi4のWifiがボトルネックになっていると思われます。

 

iPadからのAirPlayの方も繋がりました。

レスポンスは外付けWifiルーターを介していた時と変わらないか、僅かに速いくらいです。約0.2秒ほどの遅延を感じます。

 

肝心の動画再生ですが、動作の不安定さは殆ど変わりませんでした。

AirPlayによる転送は、音声専用だとAppleロスレスコーデックで転送しているため音質は非常に良いのが特徴です。しかし、動画を転送するときはビットレートの低いAAC(AAC-ELD)になるらしく、あまり音質は良くありません。ついでに音飛び、ひずみ、無音なども時折発生します。ラズパイを再起動すると復帰したりしますので、ソフトウェアの完成度がまだ低い可能性が高いですね。今後に期待しましょう。

Unofficial AirPlay Protocol Specification

これはプロトコルを解析してまとめているサイトです。

 

 

スタンドアローンAirPlay

この呼び方が正しいのか微妙ですが 1対1で接続する方法です。

Rpiplay09

Internetへ接続していないPi4のローカルWifiのみでもAirPlay接続できて、HDMI出力からiPad画面、写真、pdfなどを映すことができました。こちらは成功と言えそうです。Mac BookからAirPlayでプレゼンするなどには向きそうですね。

Pi4の起動時間(AirPlay接続できるまでの時間)は、有線LANに接続していると20秒程度です。
LANを接続しないと何かのタイムアウトまでの時間がかかり40~50秒くらいに伸びます。IPアドレスはstaticにしたつもりなので、IPフォワーディング関係でしょうかね。時間があったら調べてみようかと思います。

 

ちなみに、WindowsやAndroidから画面ミラーリングするにはmiracastという手法を使います。もちろんPi4でもできるらしいので興味がある方は検索してみてください。

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

 

 

 

 

参考にしたサイト様

https://www.itmedia.co.jp/news/articles/2008/14/news042.html

http://jotmemo.blog65.fc2.com/blog-entry-41.html

https://qiita.com/JhonnyBravo/items/5df2d9b2fcb142b6a67c

https://nw-electric.way-nifty.com/blog/2018/05/pi-3wifi-access.html

 

 

にほんブログ村 PC家電ブログ PCオーディオへ にほんブログ村

ブログランキングに参加中です。 めざせ1位! 

もしよろしければ「ぽちっと」お願いします。 

« Raspberry Pi 4 でAirPlayしてYoutube動画を楽しむ方法(RPiPlay) | トップページ | Moode Audio R7.3.0用のSabreberry32ドライバリリース »

Raspberry Pi」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« Raspberry Pi 4 でAirPlayしてYoutube動画を楽しむ方法(RPiPlay) | トップページ | Moode Audio R7.3.0用のSabreberry32ドライバリリース »

サイト内検索(new)

2021年10月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31