こんにちは,GNU/Linuxで遊ぶのが好きな高専生です.
Ubuntu環境で,Wi-Fiの接続が途切れる現象に遭遇したため,そのトラブルシューティングをまとめました.
Qiitaおそらく初投稿です...
はじめに
自分用のUbuntuマシーン上で動画視聴中に,
突然音楽が止まったり,動画が止まるといった現象が発生しました.
その原因調査ログと解決法をゆるーく紹介したいと思います.
私の環境:
- OS: Ubuntu 22.04.5 LTS
- Kernel: 6.8.0-85-generic
- Device: Lenovo ThinkBook 14 Gen 6 (AMD)
結論
- 原因: Wi-Fiカードが省電力モードへの移行に失敗し,接続が不安定な状態になっており,通信が断続的に途切れていた.
- 解決法: Wi-Fiドライバーの設定で省電力モードを無効化し,通信を安定化させた.
原因調査
Wi-Fiの接続が途切れたタイミングで,早速 journalctl -k -bを確認.
(hostnameはubuntuでマスクしています.)
10月 25 07:52:45 ubuntu kernel: rtw89_8852ce 0000:03:00.0: failed to pre-release fwcmd
10月 25 07:52:45 ubuntu kernel: rtw89_8852ce 0000:03:00.0: failed to pre-release fwcmd
10月 25 07:52:45 ubuntu kernel: rtw89_8852ce 0000:03:00.0: failed to pre-release fwcmd
10月 25 07:52:45 ubuntu kernel: rtw89_8852ce 0000:03:00.0: firmware failed to ack for entering ps mode
10月 25 07:52:47 ubuntu kernel: rtw89_8852ce 0000:03:00.0: failed to pre-release fwcmd
10月 25 07:52:47 ubuntu kernel: rtw89_8852ce 0000:03:00.0: failed to pre-release fwcmd
10月 25 07:52:47 ubuntu kernel: rtw89_8852ce 0000:03:00.0: failed to pre-release fwcmd
10月 25 07:52:47 ubuntu kernel: rtw89_8852ce 0000:03:00.0: firmware failed to ack for entering ps mode
10月 25 07:52:49 ubuntu kernel: rtw89_8852ce 0000:03:00.0: failed to pre-release fwcmd
10月 25 07:52:49 ubuntu kernel: rtw89_8852ce 0000:03:00.0: failed to pre-release fwcmd
10月 25 07:52:49 ubuntu kernel: rtw89_8852ce 0000:03:00.0: failed to pre-release fwcmd
...
"rtw89_8852ce firmware failed to ack for entering ps mode"という
ログが残っており,ps modeに移行することに失敗したログが延々と続いていました.
rtw89はRealtekのWi-Fiカード向けのドライバです.※ ps modeは省電力
rtw89のREADMEを眺めてみると
IMPORTANT: If you have an HP or Lenovo laptop, Their BIOS does not handle the PCIe interface correctly. To compensate, run the following command: sudo cp 70-rtw89.conf /etc/modprobe.d/. Then unload the drivers and reload. You should see the options appended to the end of the rtw89_pci or rtw89pci load line.
(日本語訳)
重要: HPまたはLenovoのノートパソコンを使用している場合、そのBIOSはPCIeインターフェースを正しく処理しません。これを補うため、以下のコマンドを実行してください:sudo cp 70-rtw89.conf /etc/modprobe.d/その後、ドライバをアンロードして再ロードします。rtw89_pci または rtw89pci のロード行の末尾にオプションが追加されていることを確認してください。
READMEによると,一部のHP・Lenovo製ノートPCではBIOS側のPCIe制御との相性により,省電力機能が正しく動作しない場合があるとのことです.
私が使用しているPCはLenovo製なので,Wi-Fiカードの省電力モードにBIOSが対応していない可能性がありますね.
以上より,Wi-Fiが断続的に切れる問題はこの省電力モードに移行できないため,接続が不安定になっているということがわかりました.
rtw89の省電力モードを無効化
接続が不安定になる原因は省電力モードに入るときに発生していたので,
Wi-Fiカードの省電力モードを無効化すれば解決することができますね.
省電力の無効化はドライバのオプションで行うことができるようです[2][3].
※ 以下の操作はシステム設定を変更するため、自己責任で実施してください。root権限(sudo)が必要です。
具体的な設定方法は簡単で,
/etc/modprobe.d/ディレクトリに70-rtw89.confを新たに作成します.
sudo nano /etc/modprobe.d/70-rtw89.conf
この70-rtw89.confに,
options rtw89_pci disable_aspm_l1=y disable_aspm_l1ss=y
options rtw89pci disable_aspm_l1=y disable_aspm_l1ss=y
options rtw89_core disable_ps_mode=y
options rtw89core disable_ps_mode=y
を書き込みます.(vimでもnanoでも,emacsでもお好きなエディタで.)
そして,再起動するとrtw89の省電力モードを無効化することができます.
まとめ
今回,GNU/Linuxで,Realtek製のWi-Fiカードで通信が途切れる問題の原因調査と解決を行いました.
ドライバが省電力モードの設定に失敗していたことで通信が途切れていることがわかり,
ドライバの省電力モード移行を無効化することで途切れる問題を解決しました.
参考文献
[1] https://github.com/lwfinger/rtw89
[2] https://wiki.archlinux.jp/index.php/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E8%A8%AD%E5%AE%9A/%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%AC%E3%82%B9
[3] https://github.com/lwfinger/rtw89/issues/314
[4] https://bbs.archlinux.org/viewtopic.php?id=290480
閲覧日: 2025-10-26