2019年8月7日水曜日

Ubuntu 18.04 で MediaTek USB Wi-Fi を使う?

先週末、体調を崩し寝込んでいた。
病院で診てもらったら、喉全体が真っ赤に腫れていると言っていた。鼻、喉、そして口の中が激痛。もの凄く広範囲が、もの凄く痛かった。
眠ってしまいたいのだが、咳が止まらず、1時間くらいで目が覚めてしまうため、眠れない。
非常に辛かった。

その間にUbuntu18.04のHWEカーネルが、5.0系になっていた。
以前書いていたように、このカーネルではMediaTekのUSB Wi-Fiがサポートされている。

実は以前うっかり間違って、ELECOM の WDC-867SU3SWH を買っていたのだ。
ネットで色々調べると、これはMT7612Uを使っているらしい。
全然使えなかったので、そのまま放置していたのだが、早速これを使ってみた。
結果は残念なものだったけど、その作業について、以下に書いておく。

カーネルのバージョンを確認する

$ uname -a
Linux <Host名> 5.0.0-23-generic #24~18.04.1-Ubuntu SMP Mon Jul 29 16:12:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
よしよし。5.0系すなわち、4.19以降だ。

ドライバをロードして、VID/PIDを設定

残念ながら、WDC-867SU3SWHは、ドライバのデバイステーブルにその登録が無い。そのため、挿しただけではドライバも読み込まれないし、当然動かない。
カーネルソースを改造して、VID/PIDを設定して使えるようにするのもいいけど、カーネルのビルドには時間がかかる。
しかしわざわざカーネルをビルドしなくても、ドライバにVID/PIDを設定して使用する方法がある。
これで確認すれば簡単だ。

まずは、ドライバをロードする。WDC-867SU3SWHを挿してはいけない。
$ sudo modprobe mt76x2u
[sudo] shin のパスワード:(パスワード入力)

この状態で、以下のようにして、VID/PIDを設定する。
$ echo 056e 400a | sudo tee /sys/bus/usb/drivers/mt76x2u/new_id
056e 400a
この 056e 400a が WDC-867SU3SWH のVID/PIDだ。もし違っていたら、それに合わせろ。

一応、確認すると、
$ cat /sys/bus/usb/drivers/mt76x2u/new_id
056e 400a
よしよし。

使ってみる

ここまでくれば、WDC-867SU3SWHを挿すと動く。
接続するAPのSSIDやキーの設定を適切に行なえ。
ここでは、書かない。

スピードテスト

11acはスピードがウリだ。さらにWDC-867SU3SWHは、リンク速度866Mbpsで動くことになっている。
実際にどのくらいの速度が出ているのか見てみよう。
デスクトップPCとノートPCを使い、デスクトップPCでiperf3をサーバモードで動作させ、ノートPCからWDC-867SU3SWH経由で速度を見る。

まず、デスクトップPCでの作業。
$ iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
これで、接続待ち状態になる。

これでノートPCからiperf3で接続して速度を見る。
$ iperf3 -c 192.168.YYY.YYY
Connecting to host 192.168.YYY.YYY, port 5201
[  4] local 192.168.XXX.XXX port 53952 connected to 192.168.YYY.YYY port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  2.03 MBytes  17.0 Mbits/sec   85   12.7 KBytes       
[  4]   1.00-2.00   sec  2.11 MBytes  17.7 Mbits/sec  102   8.48 KBytes       
[  4]   2.00-3.00   sec  2.25 MBytes  18.9 Mbits/sec  101   11.3 KBytes       
[  4]   3.00-4.00   sec  2.14 MBytes  17.9 Mbits/sec  100   11.3 KBytes       
[  4]   4.00-5.00   sec  2.18 MBytes  18.3 Mbits/sec   94   15.6 KBytes       
[  4]   5.00-6.00   sec  1.87 MBytes  15.7 Mbits/sec  107   12.7 KBytes       
[  4]   6.00-7.00   sec  2.13 MBytes  17.9 Mbits/sec   99   17.0 KBytes       
[  4]   7.00-8.00   sec  2.18 MBytes  18.3 Mbits/sec   99   14.1 KBytes       
[  4]   8.00-9.00   sec  1.96 MBytes  16.4 Mbits/sec  100   9.90 KBytes       
[  4]   9.00-10.00  sec  2.34 MBytes  19.6 Mbits/sec   95   11.3 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  21.2 MBytes  17.8 Mbits/sec  982             sender
[  4]   0.00-10.00  sec  21.0 MBytes  17.6 Mbits/sec                  receiver

iperf Done.
たった17.8Mbps...。何という遅さ!
2020/04/12 追記: テストしているPCのUSB3.0ポートが悪いのかもしれない。
WDC-867SU3SWHをUSB2.0ポートに挿してみたら、200Mbps程度の速度が出た。
詳しくは、Ubuntu 18.04 で MediaTek USB Wi-Fi を使う? #3 を参照。
ちなみに、以前から使っているWDC-433DU2H(リンク速度は半分の433Mbps)はもっと速い。
(abperiasamy/rtl8812AU_8821AU_linuxのドライバを使っている)
$ iperf3 -c 192.168.YYY.YYY
Connecting to host 192.168.YYY.YYY, port 5201
[  4] local 192.168.XXX.XXX port 44578 connected to 192.168.YYY.YYY port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  17.9 MBytes   150 Mbits/sec    0    286 KBytes       
[  4]   1.00-2.00   sec  21.7 MBytes   182 Mbits/sec    0    428 KBytes       
[  4]   2.00-3.00   sec  23.4 MBytes   196 Mbits/sec    0   1.31 MBytes       
[  4]   3.00-4.00   sec  22.2 MBytes   187 Mbits/sec    0   2.39 MBytes       
[  4]   4.00-5.00   sec  22.7 MBytes   191 Mbits/sec    0   3.15 MBytes       
[  4]   5.00-6.00   sec  24.2 MBytes   203 Mbits/sec    0   3.15 MBytes       
[  4]   6.00-7.00   sec  22.8 MBytes   191 Mbits/sec    0   3.15 MBytes       
[  4]   7.00-8.00   sec  23.0 MBytes   193 Mbits/sec    0   3.15 MBytes       
[  4]   8.00-9.00   sec  23.4 MBytes   196 Mbits/sec    0   3.15 MBytes       
[  4]   9.00-10.00  sec  23.8 MBytes   199 Mbits/sec    0   3.15 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   225 MBytes   189 Mbits/sec    0             sender
[  4]   0.00-10.00  sec   222 MBytes   186 Mbits/sec                  receiver

iperf Done.
189Mbps。何度かやっていると、200Mbpsを超えるぐらいの速度もでる。
WDC-433DU2Hはリンク速度は半分なのに、実際のバンド幅はWDC-867SU3SWHよりも10倍以上。

期待していただけに、かなり残念。
なんで速度が出ないんだろう?


2020/04/12 追記: 上にも書いたが、テストしているPCのUSB3.0ポートが悪いのかもしれない。
詳しくは、Ubuntu 18.04 で MediaTek USB Wi-Fi を使う? #3 を参照。

0 件のコメント:

コメントを投稿