内蔵 WiFi を持たない NanoPi R2S のUSB2.0ポートに挿して使うべく、手持ちの WiFi 5(802.11ac)対応 USB WiFi アダプタの中で、 OpenWRT でも使えるものを探してみました。
NanoPi R2SとUSB WiFiアダプタ
前回、OpenWRT 21.02.2をインストールしたNanoPi R2Sでは、1つだけあるUSB2.0ポートが唯一のWiFiインターフェイス増設手段です(但しその最大転送速度は480Mbpsなので注意)。
FriendlyElec社のNanoPi R2S Wikiページでは、各USB WiFiアダプタの動作状況が公開されていて、MediaTek系が比較的相性が良さそうです。
今回はこのR2Sで使うためと言うよりも、現時点でのOpenWRTのUSB WiFiアダプタ対応状況を確かめたく、手持ちのUSB WiFiアダプタをこれだけ集めました。
OpenWRTシステムバックアップ
試用に際してはドライバを入れたり抜いたりすることになるので、作業の前にOpenWRTの入ったSDカードのイメージをUbuntu 18.04母艦で取得しておきます。
1 2 3 4 5 6 7 |
$ sudo dd if=/dev/sdd conv=sync,noerror status=progress | gzip -6 -c > R2S_20220616.img.gz 992330240 bytes (992 MB, 946 MiB) copied, 63 s, 15.8 MB/s 1968128+0 レコード入力 1968128+0 レコード出力 1007681536 bytes (1.0 GB, 961 MiB) copied, 64.0052 s, 15.7 MB/s $ ls -l -rw-rw-r-- 1 user user 11637915 Jun 16 19:43 R2S_20220616.img.gz |
1. CIN-FAST X-600H
まず最初に試すのは、2017年にRMB46にて購入した、MediaTek社のMT7610U搭載のUSB2.0アダプタCIN-FAST X-600Hです(11ac対応、1T1Rで最大速度は433Mbps)。樹脂の筐体はプラモデルのようにハマっているだけなので、簡単に中を開けることができます。

図02.CIN-FAST X-600H分解
基板表裏を確認すると、確かにMT7610Uが裏面に搭載されていました。
R2Sへ挿す前に、LuCIのパッケージマネージャでドライバパッケージを検索してみます。
この中から kmod-mt76x0u をインストールします。
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 32 33 34 |
root@R2S:~# opkg update root@R2S:~# opkg install kmod-mt76x0u Installing kmod-mt76x0u (5.4.179+2021-12-03-678071ef-4) to root... Downloading https://downloads.openwrt.org/releases/21.02.2/targets/rockchip/armv8/packages/kmod-mt76x0u_5.4.179%2b2021-12-03-678071ef-4_aarch64_generic.ipk Installing iw (5.9-8fab0c9e-3) to root... Downloading https://downloads.openwrt.org/releases/21.02.2/packages/aarch64_generic/base/iw_5.9-8fab0c9e-3_aarch64_generic.ipk Installing wireless-regdb (2021.08.28-1) to root... Downloading https://downloads.openwrt.org/releases/21.02.2/packages/aarch64_generic/base/wireless-regdb_2021.08.28-1_all.ipk Installing kmod-cfg80211 (5.4.179+5.10.85-1-1) to root... Downloading https://downloads.openwrt.org/releases/21.02.2/targets/rockchip/armv8/packages/kmod-cfg80211_5.4.179%2b5.10.85-1-1_aarch64_generic.ipk Installing hostapd-common (2020-06-08-5a8b3662-40) to root... Downloading https://downloads.openwrt.org/releases/21.02.2/packages/aarch64_generic/base/hostapd-common_2020-06-08-5a8b3662-40_aarch64_generic.ipk Installing kmod-mac80211 (5.4.179+5.10.85-1-1) to root... Downloading https://downloads.openwrt.org/releases/21.02.2/targets/rockchip/armv8/packages/kmod-mac80211_5.4.179%2b5.10.85-1-1_aarch64_generic.ipk Installing kmod-mt76-core (5.4.179+2021-12-03-678071ef-4) to root... Downloading https://downloads.openwrt.org/releases/21.02.2/targets/rockchip/armv8/packages/kmod-mt76-core_5.4.179%2b2021-12-03-678071ef-4_aarch64_generic.ipk Installing kmod-mt76x02-common (5.4.179+2021-12-03-678071ef-4) to root... Downloading https://downloads.openwrt.org/releases/21.02.2/targets/rockchip/armv8/packages/kmod-mt76x02-common_5.4.179%2b2021-12-03-678071ef-4_aarch64_generic.ipk Installing kmod-mt76x0-common (5.4.179+2021-12-03-678071ef-4) to root... Downloading https://downloads.openwrt.org/releases/21.02.2/targets/rockchip/armv8/packages/kmod-mt76x0-common_5.4.179%2b2021-12-03-678071ef-4_aarch64_generic.ipkInstalling kmod-mt76-usb (5.4.179+2021-12-03-678071ef-4) to root... Downloading https://downloads.openwrt.org/releases/21.02.2/targets/rockchip/armv8/packages/kmod-mt76-usb_5.4.179%2b2021-12-03-678071ef-4_aarch64_generic.ipk Installing kmod-mt76x02-usb (5.4.179+2021-12-03-678071ef-4) to root... Downloading https://downloads.openwrt.org/releases/21.02.2/targets/rockchip/armv8/packages/kmod-mt76x02-usb_5.4.179%2b2021-12-03-678071ef-4_aarch64_generic.ipk Configuring iw. Configuring wireless-regdb. Configuring kmod-cfg80211. Configuring hostapd-common. Configuring kmod-mac80211. Configuring kmod-mt76-core. Configuring kmod-mt76x02-common. Configuring kmod-mt76x0-common. Configuring kmod-mt76-usb. Configuring kmod-mt76x02-usb. Configuring kmod-mt76x0u. |
R2Sを再起動後、ドライバがロードされていることを確認。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
root@R2S:~# lsmod cfg80211 339968 5 mt76x0_common,mt76x02_usb,mt76x02_lib,mt76,mac80211 compat 12288 2 mac80211,cfg80211 crc_ccitt 12288 1 ppp_async gpio_button_hotplug 12288 0 ip_tables 28672 4 iptable_nat,iptable_mangle,iptable_filter ip6_tables 28672 24 ip6table_mangle,ip6table_filter ip6t_REJECT 12288 2 ip6table_filter 12288 1 ip6table_mangle 12288 1 ipt_REJECT 12288 2 iptable_filter 12288 1 iptable_mangle 12288 1 iptable_nat 12288 1 mac80211 589824 5 mt76x0u,mt76x0_common,mt76x02_usb,mt76x02_lib,mt76 mt76 61440 5 mt76x0u,mt76x0_common,mt76x02_usb,mt76x02_lib,mt76_usb mt76_usb 24576 2 mt76x0u,mt76x02_usb mt76x0_common 45056 1 mt76x0u mt76x02_lib 53248 3 mt76x0u,mt76x0_common,mt76x02_usb mt76x02_usb 16384 1 mt76x0u mt76x0u 16384 0 -略- |
この状態でUSB WiFiアダプタを挿します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
root@R2S:~# logread -f Thu Jun 16 10:41:03 2022 kern.info kernel: [ 254.022879] usb 1-1: new high-speed USB device number 2 using ehci-platform Thu Jun 16 10:41:04 2022 kern.info kernel: [ 254.330836] usb 1-1: reset high-speed USB device number 2 using ehci-platform Thu Jun 16 10:41:04 2022 kern.info kernel: [ 254.493365] mt76x0u 1-1:1.0: ASIC revision: 76100002 MAC revision: 76502000 Thu Jun 16 10:41:05 2022 kern.info kernel: [ 255.556774] mt76x0u 1-1:1.0: EEPROM ver:02 fae:01 root@R2S:~# lsusb Bus 002 Device 001: ID 1d6b:0001 Linux 5.4.179 ohci_hcd Generic Platform OHCI controller Bus 004 Device 002: ID 0bda:8153 Realtek USB 10/100/1000 LAN Bus 004 Device 001: ID 1d6b:0003 Linux 5.4.179 xhci-hcd xHCI Host Controller Bus 001 Device 002: ID 0e8d:7610 MediaTek WiFi Bus 001 Device 001: ID 1d6b:0002 Linux 5.4.179 ehci_hcd EHCI Host Controller Bus 003 Device 001: ID 1d6b:0002 Linux 5.4.179 xhci-hcd xHCI Host Controlle |
WiFiインターフェイス wlan0 が出来上がっていました。
1 2 3 4 5 6 7 8 |
root@R2S:~# ifconfig -a -略- wlan0 Link encap:Ethernet HWaddr 00:13:EF:##:##:## 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) |
LuCI上でもNetworkメニューにWirelessの項目が現れました。
この状態でRadio0の Scan ボタンを押してクライアントモードが正しく動作することを確認したら、APモードを使えるようにするために、 hostapd をインストールします。
1 2 3 4 5 6 |
root@R2S:~# opkg update root@R2S:~# opkg install hostapd Installing hostapd (2020-06-08-5a8b3662-40) to root... Downloading https://downloads.openwrt.org/releases/21.02.2/packages/aarch64_generic/base/hostapd_2020-06-08-5a8b3662-40_aarch64_generic.ipk Configuring hostapd. root@R2S:~# reboot |
R2Sを再起動後、SSIDの設定でEncryptionを選べるようになります。
設定を終えると、Radio0が11bgから11bgnacへと変わっていました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
root@R2S:~# cat /etc/config/wireless config wifi-device 'radio0' option type 'mac80211' option path 'platform/ff5c0000.usb/usb1/1-1/1-1:1.0' option channel '36' option band '5g' option htmode 'VHT80' option txpower '17' option cell_density '0' config wifi-iface 'default_radio0' option device 'radio0' option network 'lan' option mode 'ap' option ssid 'OpenWrt' option encryption 'psk2+ccmp' option key '##############' |
なお、おそらくUSB WiFiアダプタを実装する上での制限なのでしょうが、2.4GHz帯か5GHz帯のどちらか1つしか使うことができないのが、内蔵型WiFiと大きく異なる点です。そこでUSBポートが複数あるデバイスでは、2.4GHz用、5GHz用それぞれのUSB WiFiアダプタを増設して、デュアルバンドを実現している例がネット上では散見されました。
早速Androidスマートフォン(ASUS ZenFone 8 Flip)から繋いで簡単なスピードテストを実行してみます(AndroidのデュアルWiFi機能は切っています)。
計測時の電力消費は次の通りで、平時と比べて0.15A程度多く消費していました。

図09.計測時の消費電力
速度はともかく、ドライバのインストールからデバイス認識、そしてWiFiアクティブまで、後述のRealtek系と比べて安心感があるのがこのMediaTek系と感じました。
次のWiFiアダプタを試す前に
次のUSB WiFiアダプタを試す前に、ここまでのWireless設定とドライバを削除します。
まず、R2Sの電源を落として( poweroff )、USB WiFiアダプタを外します。そして再びR2Sを起動させたらコマンドラインから、Wireless設定を収めた /etc/config/wireless ファイルを削除するかリネームし、OpenWRTが読み込まないようにします。
1 2 |
root@R2S:~# mv /etc/config/wireless /etc/config/wireless.mt7610u.bak root@R2S:~# reboot |
その上で、インストールしたドライバパッケージを削除、モジュールもロードしないよう削除します。
1 2 3 4 5 6 7 |
root@R2S:~# opkg remove kmod-mt76x0u root@R2S:~# rmmod mt76x02_usb root@R2S:~# rmmod mt76x02_lib root@R2S:~# rmmod mt76x0u root@R2S:~# rmmod mt76x0_common root@R2S:~# rmmod mt76_usb root@R2S:~# rmmod mt76 |
次ページではRealtek系WiFiアダプタなどをいくつか試してみます。