自宅の Linux 用の PC を Lenovo Thinkpad L540 に代えてから2ヶ月ほど経ちます。その間、Wifi と Bluetooth のマウス接続が安定しなく、特に Wifi は頻繁に切れる状態が続いていました。それがなんとか解決しました(多分…)。
- Intel Dual Band Wireless-AC 7260
- Wifi 2.4GHz と Bluetooth の干渉
- AC7260 のファームウェア、ドライバー
- iwlwifi のトラブルシューティングを見ていくと…
- Wifi ルーターの 2.4GHz を無効にする
- なぜか解消してしまった
01Intel Dual Band Wireless-AC 7260
Thinkpad L540 の Wireless Card は Intel の AC7260 というものです。
ネットワークの仕様
TX/RX ストリーム2×2
バンド2.4 GHz, 5 GHz
最高速300/867 Mbps
Wi-Fi 認定*802.11ac
コンプライアンスPCI, CISP, FIPS, FISMA
内蔵 Bluetoothはい
Bluetooth のバージョン 4.0
5GHz 帯を使う 802.11ac に対応しています。Bluetooth を内蔵しておりバージョンは 4 です。
これで Wifi ルータの 5GHz と接続し、Bluetooth マウスを使っていますと、わりと頻繁に Wifi が切断し、しばらく接続中になって、早ければ30秒くらい、時に繋がらなくなるときもあります。
Bluetooth の方は使用中に切断することはありませんが、スリープから起きたときにほぼ半々で接続しなくなり、やむを得ずデバイス削除、新しいデバイスを追加で再ペアリングを繰り返すことになります。
02Wifi 2.4GHz と Bluetooth の干渉
という状態で2ヶ月間悩み続けてきたんですが、原因はこれじゃないかというものにたどり着きました。
Wifi 2.4GHz と Bluetooth の干渉が原因です。
Bluetooth を切る、あるいは Wifiルータの 2.4GHz を使用しないにしますと Wifi も Bluetooth も安定します。ただ、現在もまだ検証中ですし、何が起きているのかまではわかっていませんので、この際ということで Ubuntu のネットワーク関係をちょっとだけ掘り下げてみようと思います。
03AC7260 のファームウェア、ドライバー
環境は Kubuntu24.04 下の Wifi Card Intel AC7260 とバッファローの Wifi6 ルーター WSR-1800AX4S です。
まず、AC7260 のドライバーに問題はないのだろうかとあれこれググって
に到達し、ドライバーは iwlwifi であることがわかります。カーネルのログを見てみます。
7260-17.ucode
というファームウェアをロードし、他に iwlmvm という名前も出てきます。続いて lsmod でロードされているモジュールを見てますと、mac80211, cfg80211 という名前も出てきます。どういう関係にあるんだろうとググっていましたら、とてもわかりやすい図を引用したサイトがありました。
なるほどこういう関係にあるんですね。wpa_supplicant というのはアクセスポイントに接続要求を送るコマンドソフトウェアです。
ファームウェアの 7260-17.ucode
については、上のリンク先「Wireless documentation」にすでにサポートは終了しており、これが最新とあります。ドライバーについても新しいものはなさそうです。
04iwlwifi のトラブルシューティングを見ていくと…
ネット上の iwlwifi に関するものを見ていきますと、直接これ! というものはありませんが、いくつか気になるトラブルシューティングがあります。
2.4GHz 帯域で干渉が発生する可能性があるというものです。
- Disable Wi-Fi’s power save (prevent the PCIe link to go to power save): power_scheme=1 module parameter for iwlmvm
- Disable USB3 in BIOS (if possible), it not, just stop using it
- Disable 40MHz on 2.4GHz: cfg80211_disable_40mhz_24ghz module parameter
- Use 5GHz band (on devices that support 5GHz operation)
こちらも Bluetooth との競合についてのトラブルシューティングです。
- options iwlwifi bt_coex_active=0 swcrypto=1 11n_disable=8
- options iwlmvm power_scheme=1
少電力機能を無効にする
この対処方法は結構あっちこっちのサイトに出てきます。
/etc/modprobe.d/iwlmvm.conf に
options iwlmvm power_scheme=1
と書き入れるものです。しかし、なにか勘違いがあるのか、再起動しても Power Management は on のままです。
手動で設定してみます。
$ sudo iwconfig wlp2s0 power off
として、Power Management を off にしてしばらく様子を見てみたんですが、不安定さは解消されません。それにこの設定は Wifi が再度接続されますと on に戻ってしまいます。
40 MHz チャネルの使用をオフにする (2.4 Ghz バンド)
/etc/modprobe.d/cfg80211.conf というファイルがありませんので作成して
options cfg80211 cfg80211_disable_40mhz_24ghz=Y
を書き込んでみます。
今のところこの設定をどう確認するのかよくわかりませんが、考えてみれば、Wifi の 2.4GHz を使わないのであれば、AC7260 の 2.4GHz を無効にしてしまえば干渉はなくなるわけですからその設定方法があればいいのですが、いまのところ見つかっていません。
05Wifi ルーターの 2.4GHz を無効にする
バッファローの Wifi6 ルーター WSR-1800AX4S には EasyMesh 機能というものが付属しています。
「Wi-Fi EasyMesh™」はつなぐだけで親機と中継機同士が互いに通信しあい、網目(メッシュ)状にネットワークを構築する、Wi-Fiの仕組みです。それぞれの機器がつながりあい/、メッシュ状にネットワークを広げていくことで、大きな家や複雑な家でも、すみずみまで快適なWi-Fiを最適化するWi-Fi Alliance®の標準規格です。(バッファロー)
結局、複数のルーターなどを使っての中継機能ということですので、1台で運用している場合には必要ないものだと思います。
で、この EasyMesh 機能はデフォルトで有効になっており、同時に 2.4GHz も 5GHz ともに有効になります。
この EasyMesh 機能のチェックを外し、なおかつ
2.4GHz を使用しないにしますと Wifi の切断や Bluetooth の切断が解消します
06なぜか解消してしまった
と、あれこれやってきて、今、そのやってきたことをすべて解除して様子を見ているのですが、これまでのような不安定さがなくなっています。
まあもちろん不具合は突然発生しますのでなんとも言えないのですが、なんとなくの印象では解消されているような気がします。
結局のところ、しばらく様子を見るしかないようです。