前回のブログでWi-Fiの通信が時間が立つと止まる点と、Bluetoothが使えない点について書いたわけだが、それについて一応解決できたのでメモしておく。
環境
Wi-FIの通信が時間が立つと止まる
具体的にはPCを立ち上げて1時間くらいすると特定のWebページが見れなくなったり、ping
が通らなくなることがある。見れなかったページは以下の通り。
1時間立っても見ることができるページもある。見れたページは以下の通り。
なんでこうなるのかわからなくてググっていたらWi-Fiモジュールが節電になっているのではないかといった記事がヒットしたので、節電しないように設定することにした。
解決しなかった方法たち
まず、iwconfig
を使う方法。以下の方法で節電をしないようにできるらしい。
$ sudo pacman -S wireless_tools
$ iwconfig wlan0 power off
wlan0はそれぞれ読み替えてほしい。これでいいはずだが1時間立って確認してみるとページに接続できなかった。
次に、/etc/modprobe.d/iwlwifi.conf
を編集して節電しないように設定してみた。今回はIntelワイヤレスカードのため、この設定が使えるはず。ファイルの中身を以下のようにする。
# /etc/modprobe.d/iwlwifi.conf options iwlwifi power_save = 0
しかし、この設定では解決しなかった。
次に、NetworkManagerの設定から省電力機能をオフにしてみた。/etc/NetworkManager/conf.d/wifi-powersave-off.conf
を以下のように編集する。
# /etc/NetworkManager/conf.d/wifi-powersave-off.conf [connection] wifi.power_save = 2
NetworkManagerを再起動してみると、ちゃんと設定が反映された。だが、問題の解決には至らない。
最後に、pm-powersave
で省電力設定をオフにした。以下のコマンドを実行する。
$ yay -S pm-utils $ sudo pm-powersave false
だめです。原因は省電力設定ではないのか...
解決した方法
そういえばUbuntu 16.04くらいのとき、IPv6をオフにしないとネットにうまくつながらなかったことを思い出し、今回ももしかしてIPv6での通信をオフにしてIPv4で通信するようにすればいいのではないかと思ったのでやってみた。Gnomeの設定→Wi-Fi / ネットワーク一覧→アクセスポイント名の隣の歯車→IPv6のIPv6メソッドを無効に変更。すると1時間立っても上記のページに接続できた。良かったです。
追記(2021-08-01)
解決したかと思えば再発したので、journalctl
で目についたログを検索したらこの記事を見つけた。NetworkManagerのinternal dhcp clientが問題らしく、dhclientに変更したら問題のログがでなくなり、Wi-Fiの接続も安定した。
Bluetoothが使えない
これはいろいろやりすぎて何が解決策だったかはわからなくなっていしまった。一応書いておく。
Windows 10をインストールする
LinuxでBluetoothが使えなくてイライラしてWindows 10をインストールした。しかし、WindowsでもBluetoothが認識されなくて途方に暮れた。だけど、検索したら解決策があったのでやってみたら認識された。
- IntelのページからWi-FiとBluetoothの最新のドライバーをダウンロードする。
- ネットワークをオフにする。
- デバイスマネージャから既存のドライバーをアンインストールする。
- ネットワークをオフにしたまま、ダウンロードしたドライバーをインストールする。
- 再起動する。
上記をやることでWidnowsでは無事認識された。めんどくさ... しかし、これでLinuxでも使えるわけでもないが何故か使えるようになった気がしたので(?)もう一度Archをインストールする。
SystemdでBluetoothを起動する
そもそもこれやってなかったのかって感じだが、やった。Windowsをインストールする前にもやった気がするが、覚えていないのでやってないことにする。
$ sudo systemctl enable bluetooth.service
なんとBluetoothが起動しました。良かったですね。
両問題が解決するまで、UbuntuとWindowsとArchを何回もインストールしてしまい、いろいろと手順が曖昧になってしまったが、なんとかなった。