前置き
- ほとんど調べずAIに頼り切っていて、まともに引用ができてない
- 備忘録だから、だいぶ適当
以上を踏まえて閲覧いただけると幸いです。
何が起きたのか
OmarchyOS(Arch Linux ベース)を MacBook 2016 にインストールして使っていたら、
なぜかWi-Fiに接続できなくなる問題が頻発していた。
もちろん、設定画面から直接Wi-Fiの再接続を試みた。どうやら、Wi-Fiのスキャンに失敗してしまっているようだ。
再起動すれば一時的に治ってたし、しばらくの間はこのままでいいかと放置していた。
とはいえ閉じるたび毎回再起動はさすがに面倒くさいので、根本的な解決を目指そうと思った。
ひとまずファームウェア更新。だめだろうな、と薄々思いつつ。
linux-firmware を最新にする
sudo pacman -Syu linux-firmware
案の定治らなかった。
ならば次はどのような状況でこの問題が起きるのかを調べる。詳しくログを見るためにも。
いろいろやってPCパカパカ、あっ。
どうやらPCの蓋を閉じると、Wi-Fiが使えなくなるらしい。
トリガーが見つかったので、そのエラーを起こしながらログを確認。
ログを確認
journalctl -b
そしたら以下のエラーメッセージがでてきた。
brcmf_msgbuf_query_dcmd: Timeout on response for query command
brcmf_run_escan: error (-5)
CMD_TRIGGER_SCAN: Input/output error (5)
ieee80211 phy0: scan error (-5)
よくわからなかったのでChatGPTに聞いてみたところ、Wi-Fiの不具合、スキャンの失敗を指すエラーログらしい。
原因
エラーログの情報から、iwdというWi-Fi管理デーモンが原因だとChatGPTは言った。
このiwdがMacBook本体に使用されているBroadcomのドライバと相性が悪く、不具合が起きてしまうようだ。
そしてそのiwdをOmarchyOSがデフォルトとして使用しているとのこと。
ならばiwdを使わないようにしよう。
対処したこと(実際に解決した手順)
1.NetworkManager をインストール
iwdがだめならということで、エラーが起きなさそうな物を探してきた。
OmarchyOS では NetworkManager がデフォルトで入っていないので、手動で導入する。
sudo pacman -S networkmanager network-manager-applet
2.iwd を停止する
sudo systemctl disable --now iwd.service
3.NetworkManager を有効化
sudo systemctl enable --now NetworkManager.service
結果
最終的に蓋を開け閉めしてもちゃんとWi-Fiが繋がっていた。
今回の場合、Broadcomドライバ+iwdWi-Fi管理デーモンの相性問題だった。
そしてNetworkManagerに切り替えることで解決できた。
まとめ
Broadcomドライバ+iwdWi-Fi管理デーモンの相性が悪かったから、別のWi-Fi管理デーモンであるNetwork Managerを使用することで解決した。
あとせっかくだから反省会
こういった根本的なエラーを解決するときにするべきことは
- ログを確認
- そのログについて調べる
- ログをもとに解決方法を調べる
- 調べた解決方法を試す
という流れが大事だね。
あとメモすることも。(戒め)
今回はうまくいったけれどChatGPTを鵜呑みにせず他のサイトも調べて事実確認とついでに引用元を用意をしよう。
最後まで見ていただきありがとうございます。
もしアドバイスや質問があれば気軽にコメントください。多分答えます。
ちょっとしたコメントも嬉しいです。
ちょこっと蛇足なはなし
「Omarchy」について検索するときに、いっつも「anarchy」と出てきてたまにイライラする。
自動で変換されてしまうから、Omarchyという単語がOmarchyとして認識されるときがはやく来たらいいのになと思った。(雑感)