RaspberryPiでイーサネットコンバータを作る話

RaspberryPiでイーサネットコンバータを作る話

BEAN

イーサネットコンバータとは?

無線LANイーサネットコンバータは無線LAN子機の一形態であり、 有線LAN対応の機器を無線で通信できるようにする無線/有線の変換装置

無線LANイーサネットコンバータ -使い方と製品例-より.

らしいです。

必要になった経緯

なんでこれが必要になったかというとデスクトップPCを買った(組み立てた)からです。
弊宅はWi-Fi対応じゃないと人権がない仕様。なぜならこれまでコードレスを強く推進してきたからです。
まぁ”家が”というよりもうそういう製品で溢れかえっているのでWi-Fiでの接続が基本。イーサネット?知らない人ですね。
そんな感じを受けてます。

組み立てたPCですが、ケチってるのでマザボはWi-Fi非対応。まぁ結果的に非対応で良かったりするんですが、非対応なのでWi-Fiドングルが必要。PCパーツ購入と同時に以下を購入。

TP-Link Wi-Fi 無線LAN 子機 11ac MU-MIMO AC1300 866+400Mbps デュアルバンド Archer T3U ブラック

これを背面USB端子にぶっ挿して使ってました。 これで自作PCのインターネット接続は完結するんですが1つ問題が。

部屋の配置とRaspberryPiです。

部屋の配置ですが、いろいろあって無線LAN親機のある場所から宇宙よりも遠い場所にRaspberryPiがあり電波は良くない。MacBook ProなどWi-Fi前提の高級品は電波を普通に拾ってくれますが、RaspberryPiはもう途切れ途切れ。
sudo apt updateも遅いしここは安定したWi-Fi子機で受けたものをRaspberryPiにも流したい。

そのソリューションとしてWindowsの機能のブリッジ接続があったりしますが、これはWindowsマシンを常時起動させておかないとダメで、電気代が跳ね上がりそう。スリープ状態に移行すると(デフォルトでは)Wi-Fi切れますしね。
あとスリープからの復帰直後などもちょっと動作が不安定だったり。イーサネットが優先されてしまってネットに繋がらなくなったりしました。
設定でどうにかすることもできそうですが、RaspberryPiが余ってたのでこいつに似たようなことやらせれそうと思ったので調べた結果イーサネットコンバータを知ったのでそれをRaspberryPiで作ってみようということに。

弊環境

自分の環境を以下に示します。

  • Raspberry Pi 2 Model B:イーサネットコンバータに仕上げるもの
  • Archer T3U:Wi-Fiドングル
  • AtermWF1200HP:Wi-Fi親機

イーサネットコンバータとなるRaspberryPiのOSには2019年4月8日リリースのRaspbian Stretch Liteをインストール済みとします。

イーサネットコンバータ作り

今回、目指すシステムは以下の図のような構成になります。

RaspberryPiでWi-Fiドングルを使う

Wi-FiができるRaspberryPiには必要ありませんが、今回使うRaspberryPi 2にはWi-Fi機能がありません。 あっても受信感度はよくないので使いませんが。

で、今回つかうWi-FiドングルはTP-Link社のもの。RaspberryPiで使おうなんて思ってなかったので知らなかったんですが、TP-LinkのはLinuxと相性が悪いような雰囲気をネットを見ていると感じます。

実際、今回使うWi-Fiドングル(以降T3U)はRaspberryPiに挿しただけでは使えませんでした。他の機種挿しただけでは使えないそうですが、T3Uは2018年の末に発売されたもので比較的新しいためか情報が少ないです。公式に配布されているドライバもWindows用とMac用の2種類のみ。

RaspberryPi(というよりLinux?)では以下をmakeしてsudo make installすると使えます。
ちゃんとReadme読んでね。

RTL8822BU Wireless Driver for Linux

この情報どこから来たんだ?ですが、WikiDeviというウィキにいろいろなハードウェアの情報が載っていてそこからです。

TP-LINK Archer T3U

2019年5月7日時点ではWiki内の情報が正しいところと間違っているところがあります。 T3Uで使われているチップセットはRealtekのRTL8822BUです。ウィキのチップセットのところには別のが書いてありますがたぶんミス。

あとTP-LinkとRaspberrypiの組み合わせの検索で上の方に出てくるQiitaに自動でやってくれるスクリプトを落として実行するとかありますが、これはだめでした。スクリプト内でlsusbをしてその情報から適切なドライバを落とすみたいですが、以下の様にlsusbの結果が空白なので「知ってるWi-Fiアダプタはないですよ」と返ってきます。

pi@raspberrypi:~ $ lsusb 
Bus 001 Device 004: ID 2357:012d   // ←こいつがT3U
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter 
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

自分で適切なものを落としてきてみてもうまく動きませんでした。なにがダメなのかは知りません。

イーサネットコンバータにする設定

正直ここからは楽です。オリジナルでやった場所ではないので以下のリンク通りにやれば動きます。

Raspberry Pi 3 を イーサネットコンバータにする - Qiita

↑の 2.ブリッジ設定までやりました。

ただこのままだとRPiから出てる有線につながるクライアントではIPの設定をしないとダメです。自動でIP降ってほしいのでRPiにDHCPサーバを入れます*1

sudo apt install isc-dhcp-server

DHCPの設定を行います。

sudo vim /etc/dhcp/dhcpd.conf

以下になるように設定します。

ddns-update-style none;
ignore client-updates;

default-lease-time 600;
max-lease-time 7200;

log-facility local7;

subnet 192.168.11.0 netmask 255.255.255.0 {
  range 192.168.11.10 192.168.11.254;
  option subnet-mask 255.255.255.0;
  option broadcast-address 192.168.11.255;
  option routers 192.168.11.1;
  option domain-name-servers 192.168.10.1;
}

再起動を行い、うまくできていれば動くはずです。

速度検証

動いてもそれが実際どうよって話ですよね。めっちゃ遅くなるなら使いませんから。

T3UをPCのUSB3.0ポートに繋いだときと、RPiをイーサネットコンバータとして途中に設置したときの速度を計測します。
速度計測にはspeedtest.netを使用し、サーバはIPA CyberLab(Bunkyo)とします。 それぞれ5回計測し、その平均でRPiをイーサネットコンバータとして途中に設置した影響を数値化します。

結果は以下

イーサネットコンバータを導入することにより、PINGは1msの低下、下りは20Mbpsの低下、上りは10Mbpsの低下しました。 思ったより落ちています。
通信中のRPiの負荷なども調べましたがCPU、メモリともにかなり余裕のある状態であるためそういう部分の性能不足ではありません。
イーサネットコンバータを設置しない場合は検証するPCのUSB3.0ポートに接続していますが、USB2.0の最大転送速度である480Mbpも出ているわけではないためUSBの転送速度の性能差でもないはずです。 ただ、USB3.0では900mAが流せますが、USB2.0では500mAまでしか電流を流せません。USBで供給できる電流差の影響は受けるかもしれません。
他に考えられるのはドライバ。 T3UをPCに接続した場合はT3UのLEDランプが点灯(USB2.0/USB3.0ポートの両方で点灯)しますが、RPiに接続した場合は点灯しません。T3Uのではなく、内部で使用しているチップセットのドライバを入れているため速度低下を受けているかもしれません。

懸念点

懸念点というか注意点があります。
RaspberryPi 2のLANポートはギガビット・イーサネット対応ではありません。
最新のRaspberryPi 3B+は一応ギガビット・イーサネット対応のポートですが内部的にUSB2.0で動いているので最大でも315Mbps*2です。
なので1Gbpsのネットを引いてる場合では最大でも315Mbpsまでしか速度が出なくなります。
幸いなこと(?)に弊宅はいまだに100MbpsのネットなのでRaspberryPiのLANポートによる速度低下を受けません。ラッキーです。

おわり

TP-LinkのWi-Fiドングルが厄介なだけで作るの簡単でした。
無線LANが導入されているけど、離れた部屋に有線LANが欲しい場合には結構いいかもしれません。あとはRaspberryPiのWi-Fiアンテナでは速度が出ない場合とか。

RPiなイーサネットコンバータを設置することで速度低下が起きてしまってますが、個人的には満足しています。 YouTubeで4K動画を2台のPCで再生しましたがどちらも途切れることはありませんでしたし十分かな。 オンラインゲームはしないので。

今後は無線LANルータを導入(!?)してMacのTime Capsuleを無線化したいですが、果たして実現するのか…。

参考文献

comments powered by Disqus