(追記)
機器選定成功しておよそ10倍の速さになりました。
nkhnd.hatenablog.jp
RaspberryPi 4をNASとして運用して4ヶ月くらい経ちます。
最近ギガ級の重たいデータをやり取りするようになったのですが、通信速度あまり好ましくありません。
SwitchのDL版の回収に1時間かかないくらいWANの速度は出ているので、純粋にラズパイの内蔵無線LANカードはあまり速くないと思われます。
しかし、USB型の無線LANアダプタは使いたくありません。というのも
- ドライバ関連が面倒臭い。
- USBポートを潰したくない。
- アダプタの熱が怖い。
と、使わない理由が山ほどあるからです。
そこで今回はEthernetを無線化して速度が速くなるか試してみました。
結論から書くと、機器選定ミスし、速度はほとんど変わりませんでした😩
注意
この手順は全くの初期状態からネットワークに接続する手順ではありません。
RaspberryPi 4にすでにSSHで接続できるように、内蔵無線LAN設定済みである前提で記述しています。
事前準備
環境情報
機器:RaspberryPi 4 (RAM 4GB)
内蔵OS:Raspbian buster Lite
詳細(cat /etc/os-release)
$ cat /etc/debian_version 10.3
~ $ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 10 (buster)" NAME="Raspbian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
機材
購入した機材はこちら。
デバイス名 | 役割 | 備考 |
---|---|---|
TP-Link TL-WR902AC | コンバータ | クライアントモードがEthernetコンバータに該当 |
エレコム LD-GPY/BU03 | LANケーブル | 1GbitEtherで長さがなんと30cm(15cmもある) |
RJ45→USB変換器 | 変換器 | クライアントPC初期設定に必要。PCにRJポートが付いている場合は不要 |
届いたLANケーブルは柔らかく、だいぶ取り回しが利くようでよかった。
ちなみにTP-Linkの製品内にもLANケーブル入っていたので、ちょっと長さがあるのが気にならない場合は別途の購入は不要です。
たかがWifiルーターかと思いきや、化粧箱がなかなか素敵でびっくりしました。
初期設定
本体のRJポートの横についているトグルが初期設定「Share ETH」(一番左)になっているので、これを「AR/Rng Ext/Client」(一番右)に動かします。
動かしたらUSB電源(5V-2Aで動作)をUSB充電器などに、クライアントPCとルーターのRJポート同士を接続したら、http://192.168.0.1/かhttp://tplinkwifi.netにアクセスします。
アクセスすると以下のページが表示されます。初期設定ではユーザー名admin
パスワード admin
になっています。
ログインすると初期設定が始まるので画面に従って操作します。 動作するモードは「クライアント」にチェックします。
APリストが表示されるので、親機を設定します。
キータイプや暗号化は自動入力されるので、パスワードの設定だけで大丈夫です。
OKで次の画面へ進むとネットワーク設定が開きます。LANタイプを静的IPに変更し、親機のIP属するセグメント・親機と異なるアドレスを指定します。
私の自宅環境では192.168.3.0/255セグメント、親機が.1を利用しているので、ここでは.2を指定しました。
また、ラズパイに割り当てられるIPアドレスを固定するために、DHCPサーバは無効に設定します。
内容を確認し設定を終了すると、ルーターが自動的に再起動し、設定が完了します。
再起動が終わったらGoogleトップが開けるかなど、ネットワークに接続できるかを確認しましょう。
初期設定が終わったら、ルーターの電源は落として大丈夫です。
Ethernetインターフェース使用設定
変更前の状態確認
クライアントPCからルータを外し、ラズパイにRJポートを接続します。ルータの電源をつけると電源ランプが点滅から点灯に変わると無線接続が可能になります。
クライアントPCがルータ親機(192.168.3.1)に接続した状態で、先ほど設定したIPアドレス(192.168.3.2)に無線でアクセスできるかを確認します。
※親機がネットワークに接続しDNSサーバと接続しているので、http://tplinkwifi.netでは接続できません。http://192.168.3.2/で接続します。
接続が確認できたら、sshで接続します。
~ % ssh pi@raspberry.local
現在のネットワーク設定を確認してみます。
~ $ ip a ...(省略)... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether dc:a6:32:70:fb:4a brd ff:ff:ff:ff:ff:ff inet 192.168.3.89/24 brd 192.168.3.255 scope global dynamic noprefixroute eth0 valid_lft 84052sec preferred_lft 73252sec inet6 2001:268:c184:8b83:c31b:c419:170c:ac35/64 scope global dynamic mngtmpaddr noprefixroute valid_lft 295sec preferred_lft 295sec inet6 fe80::c642:a2c9:8cac:bc6f/64 scope link valid_lft forever preferred_lft forever 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether dc:a6:32:70:fb:4b brd ff:ff:ff:ff:ff:ff inet 192.168.3.11/24 brd 192.168.3.255 scope global dynamic noprefixroute wlan0 ...(省略)...
DHCPを初期設定で無効にしたにもかかわらず、eth0に192.168.3.89
が割り当てられています。これは親機のDHCP設定「.81〜.113」を利用しているためです。
dhcpcd.confを設定
RaspberryPi側でeth0に固定アドレスを設定します。
念のため元のアドレス192.168.3.11
は消さず、192.168.3.12
を登録します。
~ $ sudo vi /etc/dhcpcd.conf (eth0の内容を追記) ~ $ cat /etc/dhcpcd.conf ...(中略)... interface eth0 static ip_address=192.168.3.12/24 static routers=192.168.3.1 interface wlan0 ...(中略)...
ネットワーク関連のサービスを再起動します。
~ $ sudo systemctl restart dhcpcd ~ $ sudo systemctl restart networking
ip aに値が追加されていることを確認します。
~ $ ip a ...(省略)... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether dc:a6:32:70:fb:4a brd ff:ff:ff:ff:ff:ff inet 192.168.3.89/24 brd 192.168.3.255 scope global dynamic noprefixroute eth0 valid_lft 82340sec preferred_lft 71540sec inet 192.168.3.12/24 brd 192.168.3.255 scope global secondary noprefixroute eth0 valid_lft forever preferred_lft forever inet6 2001:268:c184:8b83:c31b:c419:170c:ac35/64 scope global dynamic mngtmpaddr noprefixroute valid_lft 290sec preferred_lft 290sec inet6 fe80::c642:a2c9:8cac:bc6f/64 scope link valid_lft forever preferred_lft forever 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether dc:a6:32:70:fb:4b brd ff:ff:ff:ff:ff:ff inet 192.168.3.11/24 brd 192.168.3.255 scope global dynamic noprefixroute wlan0 ...(省略)...
ラズパイを再起動し再度ssh pi@raspberrypi.local
に接続すると、ip a
の中から親機で設定されたdhcpのアドレスがなくなります。
~ $ sudo reboot ...(再起動後)... ~ $ ip a ...(省略)... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether dc:a6:32:70:fb:4a brd ff:ff:ff:ff:ff:ff inet 192.168.3.12/24 brd 192.168.3.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet6 2001:268:c184:8b83:c31b:c419:170c:ac35/64 scope global tentative dynamic mngtmpaddr noprefixroute valid_lft 291sec preferred_lft 291sec inet6 fe80::c642:a2c9:8cac:bc6f/64 scope link valid_lft forever preferred_lft forever 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether dc:a6:32:70:fb:4b brd ff:ff:ff:ff:ff:ff inet 192.168.3.11/24 brd 192.168.3.255 scope global noprefixroute wlan0 valid_lft forever preferred_lft forever inet6 2001:268:c184:8b83:9764:d5a6:4fc8:2c77/64 scope global tentative dynamic mngtmpaddr noprefixroute valid_lft 291sec preferred_lft 291sec inet6 fe80::5b6e:7c4f:f071:edc8/64 scope link valid_lft forever preferred_lft forever
これで設定は完了です。pi@192.168.3.12
にアクセスすることで利用することが可能です。
参考:
kinakomochi-tank.hatenablog.com
内蔵無線LANインターフェースの停止
内蔵無線LANインターフェースを停止します。必須ではありません。
電力の問題もありますが、mDNSサービス(raspberrypi.localにDNS解決してくれるサービス)がイーサーインターフェースより内蔵無線LANの方を優先してしまうためです。 内蔵無線LANインターフェースの無効化は次のコマンドで行えます。
~ $ sudo iwconfig wlan0 txpower off
このコマンドを入力ししばらくすると、イーサーインターフェースを使ってraspberrypi.local
に接続できるようになります。
お疲れ様でした。
参考: qiita.com
動作の確認
この記事を書いている最中に始まったTimeMachineの自動バックアップの処理速度は体感ですが上がっているように見えます。
せっかくなので軽くファイルの移動にかかる時間の変化を測定してみました。
~ % dd if=/dev/zero of=./1GB bs=10m count=100 ~ % stat -x 1GB File: "1GB" Size: 1048576000 FileType: Regular File
次のコマンドを一気に実行して時間を計測してみます。(osxfuseにNASをマウント済み、SharedディレクトリはRAID内の領域)
startupT=`date +%s` cp ./1GB ../osxfuse/Shared/ finishedT=`date +%s` echo `expr $finishedT - $startupT `s rm -f ../osxfuse/Shared/1Gb
ファイルサイズ | Ethernet | 内蔵無線LAN |
---|---|---|
1GB | 308s(5m) | 406s(6.7m) |
MB/s換算 | 3.2MB/s | 2.4MB/s |
bps換算 | 25.97Mbps | 19.70Mbps |
もっと速くなっていると思っていたのですが、そこまででもなかった。
反省
よく見たら
あー。。。
そもそも100Mbpsで頭打ちでした。もっと調べるべきだった。
これを見て気づきました。
まあ、しかし無線の時点でそもそも100Mbps出てないんで。。。
アンテナ数。。。ですかね?ネットワーク難しくてわかんねえです。
もっと良さげなのに買い換えます。