Celeron J4125 搭載産業用ミニPCに OpenWRT を導入しWiFiルータとして使うために、Intel AX200 の他、 OpenWRT とは比較的親和性の高いと言われている、MediaTek 製チップを搭載しているPCIeカードを試してみました。
購入したPCIe WiFiカード
前回、Celeron J4125搭載産業用ミニPCにOpenWRTを導入し、WiFiルータとして使うためにIntel AX210 WiFi6Eカードを試すも、肝心な5GHz帯が使えませんでした。
そこで今回購入したのがこちらの3種類のWiFiカードと、M.2カードをmini PCIeに変換するゲタです。
M.2インターフェイス仕様のIntel AX200とMediaTek MT7921Kのアンテナ端子には、従来のIPEX MHF(下図右)が小型化したIPEX MHF 4(同左)が使われており、両者に互換性はありません。

図02.IPEX MHF 4と初代
今回も前回と同じく、OpenWRT 22.03-rc6(Kernel 5.10.134)を検証環境に進めます。
1 2 3 4 5 6 7 8 9 10 |
_______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- OpenWrt 22.03.0-rc6, r19590-042d558536 ----------------------------------------------------- # dmesg [ 0.000000] Linux version 5.10.134 (builder@buildhost) (x86_64-openwrt-linux-musl-gcc (OpenWrt GCC 11.2.0 r19590-042d558536) 11.2.0, GNU ld (GNU Binutils) 2.37) #0 SMP Sun Jul 31 15:12:47 2022 |
Intel AX200
まず最初に試してみるのは、前回試したIntel AX210の1つ前のモデル、AX200NGWです(淘寶でRMB75)。AX210を含めこのAX200以降、Intelからリリースされているのは、本来M.2仕様のこうしたモデルのみらしいです。
J4125 ミニPCにはM.2スロットが無いので、こちらのM.2→mini PCIe変換ゲタを併せて購入しました(淘寶でRMB10)。
実際にゲタを装着したAX200はこのようになり、マザーボード側のmini PCIeスロットのハーフ、もしくはフルサイズのネジ穴に合わせて固定します。
前回AX210を試した環境からiwlwifiパッケージは残し、iwlwifi-firmware-ax210をアンインストールした状態でOpenWRTを起動すると、 lspci にデバイスは現れるものの、iwlwifiだけではうまく扱えずにエラーが続きます。
1 2 3 4 5 6 7 8 9 |
# dmesg -略- [ 12.054339] Intel(R) Wireless WiFi driver for Linux [ 12.060953] iwlwifi 0000:06:00.0: Direct firmware load for iwlwifi-cc-a0-66.ucode failed with error -2 [ 12.070574] iwlwifi 0000:06:00.0: Falling back to sysfs fallback for: iwlwifi-cc-a0-66.ucode -略- # lspci -s 06:00 06:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a) |
iwlwifi-firmware-ax200パッケージをインストールして再起動すると、今度は正しく認識されてwlan0インターフェイスが用意されていました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# opkg install iwlwifi-firmware-ax200 Installing iwlwifi-firmware-ax200 (20220411-1) to root... Downloading https://downloads.openwrt.org/releases/22.03.0-rc6/packages/x86_64/base/iwlwifi-firmware-ax200_20220411-1_x86_64.ipk Configuring iwlwifi-firmware-ax200. # reboot # dmesg -略- [ 11.855548] Intel(R) Wireless WiFi driver for Linux [ 11.987034] iwlwifi 0000:06:00.0: api flags index 2 larger than supported by driver [ 11.994883] iwlwifi 0000:06:00.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 89.3.35.37 [ 12.002970] iwlwifi 0000:06:00.0: loaded firmware version 66.f1c864e0.0 cc-a0-66.ucode op_mode iwlmvm [ 12.018951] iwlwifi 0000:06:00.0: Detected Intel(R) Wi-Fi 6 AX200 160MHz, REV=0x340 [ 12.158339] iwlwifi 0000:06:00.0: Detected RF HR B3, rfid=0x10a100 [ 12.228937] iwlwifi 0000:06:00.0: base HW address: 48:68:4a:44:39:2d -略- # ip a wlan0 6: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 48:68:4a:44:39:2d brd ff:ff:ff:ff:ff:ff |
sshコンソール上で logread -f によるログ監視を続けながら、LuCi上で設定をあれこれ変えて試してみると、 hostpad が受け入れ難い設定がなされようとすると、次のエラーエントリが出力されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# logread -f Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): Command failed: ubus call hostapd config_add {"iface":"wlan0", "config":"/var/run/hostapd-phy0.conf"} (Invalid argument) Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): Usage: ubus [<options>] <command> [arguments...] Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): Options: Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): -s <socket>: Set the unix domain socket to connect to Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): -t <timeout>: Set the timeout (in seconds) for a command to complete Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): -S: Use simplified output (for scripts) Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): -v: More verbose output Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): -m <type>: (for monitor): include a specific message type Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): (can be used more than once) Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): -M <r|t> (for monitor): only capture received or transmitted traffic Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): Commands: Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): - list [<path>] List objects Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): - call <path> <method> [<message>] Call an object method Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): - subscribe <path> [<path>...] Subscribe to object(s) notifications Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): - listen [<path>...] Listen for events Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): - send <type> [<message>] Send an event Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): - wait_for <object> [<object>...] Wait for multiple objects to appear on ubus Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): - monitor Monitor ubus traffic Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): Fri Oct 21 00:28:42 2022 daemon.notice netifd: radio0 (4748): Device setup failed: HOSTAPD_START_FAILED |
5GHz帯では、デフォルトの自動チャンネルのままでは、次のエラーで失敗します。
1 2 |
Fri Oct 21 01:50:55 2022 daemon.err hostapd: ACS: Possibly channel configuration is invalid, please report this along with your config file. Fri Oct 21 01:50:55 2022 daemon.err hostapd: ACS: Failed to start |
国コードとチャンネルを指定すると今度はDFSに阻まれてRadio Upは失敗します。
1 2 3 4 5 6 7 8 9 |
Fri Oct 21 01:53:58 2022 daemon.notice hostapd: wlan0: interface state UNINITIALIZED->COUNTRY_UPDATE Fri Oct 21 01:53:58 2022 daemon.notice hostapd: wlan0: interface state COUNTRY_UPDATE->HT_SCAN Fri Oct 21 01:53:58 2022 daemon.notice hostapd: wlan0: interface state HT_SCAN->DFS Fri Oct 21 01:53:58 2022 daemon.notice hostapd: wlan0: DFS-CAC-START freq=5260 chan=52 sec_chan=1, width=0, seg0=54, seg1=0, cac_time=60s Fri Oct 21 01:53:58 2022 daemon.err hostapd: DFS start_dfs_cac() failed, -1 Fri Oct 21 01:53:58 2022 daemon.err hostapd: Interface initialization failed Fri Oct 21 01:53:58 2022 daemon.notice hostapd: wlan0: interface state DFS->DISABLED Fri Oct 21 01:53:58 2022 daemon.notice hostapd: wlan0: AP-DISABLED Fri Oct 21 01:53:59 2022 daemon.notice netifd: Wireless device 'radio0' is now up |
AX210の時もそうでしたが、こうしたDFSエラーで5GHz帯を使えない事例は、フォーラムでもよく挙がっているのですが、現状では諦めるしかなさそう。
一方の2.4GHz帯では、AXモードでチャンネルを指定してようやくRadio Upとなりました。但し、 Force 40MHz mode オプションにチェックを入れないと、いかなる帯幅(20, 40, 80MHz)を指定していても、常に20MHz幅になってしまうので注意( option noscan '1' )。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
config wifi-device 'radio0' option type 'mac80211' option path 'pci0000:00/0000:00:14.1/0000:06:00.0' option cell_density '0' option country 'HK' option band '2g' option channel '6' option txpower '22' option noscan '1' option htmode 'HE40' config wifi-iface 'wifinet0' option device 'radio0' option mode 'ap' option ssid 'OpenWrt' option encryption 'psk2+ccmp' option key '########' option network 'lan' |
MediaTek MT7921K
続いては、MediaTek MT7921に6GHz帯サポートを加えたMT7921K(AMD向けにはRZ608として供給されている)を試してみます(淘寶でRMB68)。パッケージ裏面には珍しく技適マークもあります。
AX200同様、M.2→mini PCIe変換ゲタに収めてJ4125 PCへ搭載するのですが、その前に次のいらなくなったIntel系パッケージを予めアンインストールしておきます。そして /etc/config/wireless も適当にリネームして再利用されないようにします。
- kmod-iwlwifi
- iwlwifi-firmware-ax200
素の状態でMT7921Kを装着して起動させると、RZ608の名前でデバイスを発見。
1 2 |
# lspci -s 06:00 06:00.0 Network controller: MEDIATEK Corp. RZ608 Wi-Fi 6E 80MHz |
MT7921系のパッケージをインストールして再起動してみるも、
1 2 3 4 5 6 7 8 9 10 |
# opkg install kmod-mt7921-common Installing kmod-mt7921-common (5.10.134+2022-07-03-93e3fce9-4) to root... Downloading https://downloads.openwrt.org/releases/22.03.0-rc6/targets/x86/64/packages/kmod-mt7921-common_5.10.134%2b2022-07-03-93e3fce9-4_x86_64.ipk Installing kmod-mt76-core (5.10.134+2022-07-03-93e3fce9-4) to root... Downloading https://downloads.openwrt.org/releases/22.03.0-rc6/targets/x86/64/packages/kmod-mt76-core_5.10.134%2b2022-07-03-93e3fce9-4_x86_64.ipk Installing kmod-mt76-connac (5.10.134+2022-07-03-93e3fce9-4) to root... Downloading https://downloads.openwrt.org/releases/22.03.0-rc6/targets/x86/64/packages/kmod-mt76-connac_5.10.134%2b2022-07-03-93e3fce9-4_x86_64.ipk Configuring kmod-mt76-core. Configuring kmod-mt76-connac. Configuring kmod-mt7921-common. |
ドライバがロードされる形跡がないことから、これ以上の考察は断念します。カーネル 5.14以降でサポートされるとの話もあるので、OpenWRTに限らず、広範なLinux系においてもまだまだ使えていない状況なので、今後に期待でしょうか。
Wallys Tech DR7915 (MT7915+MT7975)
最後に試すのはちょっと異様な外観のこちらのカード、Wallys Tech DR7915です。
メーカーサイトの製品ページにもあるように、本品はMediaTek MT7915DANとMT7975の2つにより構成されています。
そのせいか注意しなくてはならないのはその厚みで、基板裏面にもしっかり出っ張りがあるので、マザーボードへの搭載時にハーフサイズ用のネジ基台が残っていると、干渉してしまいます。
先ほど入れたMediaTek系パッケージを全てアンインストールしてから、DR7915をmini PCIeスロットへ搭載します。
1 2 |
# opkg remove kmod-mt7921-common # opkg remove mt76* |
素の状態ではデバイスは見つかりますが、ドライバが必要です。
1 2 |
# lspci-s 06:00 06:00.0 Unclassified device [0002]: MEDIATEK Corp. MT7915E 802.11ax PCI Express Wireless Network Adapter |
見つかった型番から、kmod-mt7915eパッケージ(及び依存パッケージ)をインストールして再起動。
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 35 |
# opkg install kmod-mt7915e Installing kmod-mt7915e (5.10.134+2022-07-03-93e3fce9-4) to root... Downloading https://downloads.openwrt.org/releases/22.03.0-rc6/targets/x86/64/packages/kmod-mt7915e_5.10.134%2b2022-07-03-93e3fce9-4_x86_64.ipk Installing kmod-mt76-core (5.10.134+2022-07-03-93e3fce9-4) to root... Downloading https://downloads.openwrt.org/releases/22.03.0-rc6/targets/x86/64/packages/kmod-mt76-core_5.10.134%2b2022-07-03-93e3fce9-4_x86_64.ipk Installing kmod-mt76-connac (5.10.134+2022-07-03-93e3fce9-4) to root... Downloading https://downloads.openwrt.org/releases/22.03.0-rc6/targets/x86/64/packages/kmod-mt76-connac_5.10.134%2b2022-07-03-93e3fce9-4_x86_64.ipk Installing kmod-mt7615-common (5.10.134+2022-07-03-93e3fce9-4) to root... Downloading https://downloads.openwrt.org/releases/22.03.0-rc6/targets/x86/64/packages/kmod-mt7615-common_5.10.134%2b2022-07-03-93e3fce9-4_x86_64.ipk Installing kmod-thermal (5.10.134-1) to root... Downloading https://downloads.openwrt.org/releases/22.03.0-rc6/targets/x86/64/packages/kmod-thermal_5.10.134-1_x86_64.ipk Configuring kmod-mt76-core. Configuring kmod-mt76-connac. Configuring kmod-mt7615-common. Configuring kmod-thermal. Configuring kmod-mt7915e. # reboot # dmesg -略- [ 12.295993] mt7915e 0000:06:00.0: HW/SW Version: 0x8a108a10, Build Time: 20211222184017a [ 12.395909] mt7915e 0000:06:00.0: WM Firmware Version: ____000000, Build Time: 20211222184052 [ 12.427848] mt7915e 0000:06:00.0: WA Firmware Version: DEV_000000, Build Time: 20211222184111 -略- # ip a -略- 228: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP qlen 1000 link/ether c4:4b:d1:c1:00:61 brd ff:ff:ff:ff:ff:ff inet6 fe80::c64b:d1ff:fec1:61/64 scope link valid_lft forever preferred_lft forever 29: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP qlen 1000 link/ether c4:4b:d1:c0:00:61 brd ff:ff:ff:ff:ff:ff inet6 fe80::c64b:d1ff:fec0:61/64 scope link valid_lft forever preferred_lft forever |
WiFiインターフェイスが2つ現れました。
早速いろいろと設定を試してみるとまず2.4GHz帯は、デフォルトのままでも使えるものの、帯域幅は20MHz。これはこれまでの他のカード同様、帯域幅を指定しても無駄で、 Force 40MHz mode オプションを使って40MHzにするしか有りません。
続いて5GHz帯もデフォルトのままでもEnableとすることは可能でした。帯域幅は160MHzに設定しようとすると、
1 2 3 4 5 |
# logread -f Mon Oct 24 02:29:30 2022 daemon.err hostapd: DFS start_dfs_cac() failed, -1 Mon Oct 24 02:29:30 2022 daemon.err hostapd: Interface initialization failed Mon Oct 24 02:29:30 2022 daemon.notice hostapd: wlan1: interface state DFS->DISABLED Mon Oct 24 02:29:30 2022 daemon.notice hostapd: wlan1: AP-DISABLED |
とエラー出力がログに出て、DFSにより阻まれていることが分かります。結局使えるのは80MHz幅までで、これは製品スペック通りではあります。
なお、簡易的なインターネットスピードテストでは、このカードで下り381Mbps・上り451Mbpsを得ることが出来たので、十分実用的でしょう。
これでハードウェア仕様は全て固まったので、次回はこのJ4125ミニPCへのVMware ESXiハイパーバイザ導入に進みたいと思います。