これまた非常にニッチな話。
問題
OpenWrt化したMeraki MR42で、5GHzでのリンク幅が40MHz以上に上がらない。80MHzに設定しても40MHzで抑えられる。受信側は80MHzでリンクするが、送信側は40MHzのまま。しばらく放置していたのだが、今回解決を試みたので分かったことをメモ。
調査結果
デフォで入ってるCT版ドライバ(kmod-ath10k-ct)と一部のAtherosの組み合わせで出るバグらしい。MR42に搭載されているQCA9990がこれにヒットしている。かなり前(2020年とか)から報告されているが修正されていない
解決方法
ドライバを無印(CTなしのkmod-ath10k)に入れ替える。これだけで見事に80MHz幅でリンクするようになる。だがしかし、TX Rate(リンク速度とリンク帯域幅)が拾えなくなるという別のバグが発動し、実際のリンク速度を無視して常に6.0Mbit/s,20MHzという情報を吐くようになる。対向の機器側で見ると正常にリンクしていることが分かる。
表示上の問題のようなので、気にしなければ一応これで解決。しかし我が家ではローミング高速化のために802.11rでFT(Fast Transition)を有効にしており、これにモロに影響を及ぼすことが判明。つまりクライアントや他のルータにadvertiseするリンク情報が常に「6.0Mbit/s,20MHz」になってしまうので、アクセスポイントのスコアが大きく下がってしまいMR42へのローミングが著しく発生しづらくなる。さらにsyslogに「リンク速度がうまく取得できませんよ」という以下のエラーが大量に吐かれるようになり地味にウザい
Sun Sep 22 12:38:59 2024 kern.warn kernel: [ 2199.272473] ath10k_pci 0002:01:00.0: failed to send pdev bss chan info request
効果がなかったもの
firmware(ath10k-firmware-qcaxxxx-ct)を無印版に入れ替える。効果なし、というか無印だと802.11sでのメッシュに対応できてないらしく、インターフェースが起動しなくなるので我が家では完全にNGであった
結局どうしたか
CTナシドライバ(に起因するTXレート表示のバグ)とFast Transitionの競合を解決できなかったので、MR42はメッシュ専用にして、棚の奥に転がってた別のルーターを有線接続してFTを設定して5GHzのステーション役を任せることにした。
この結果、階を隔てたメッシュの通信速度がほぼ倍の400Mbpsに増速し、デカいファイルの転送がやりやすくなりました。終わり。