MacBook Pro の無線 LAN が認識しなくなった [2024/10/4 追記]
事象
MacBook Pro (Retina, 13-inch, Late 2012) に OpenSUSE Tumbleweed をインストール ですが、無線 LAN が使えなくなりました。具体的には、ネットワークアダプタが認識されていません。やはり Broadcom-wl は鬼門です。
対策
なし・・・現状、解決に至っていません。再起動時にいくつかコマンドを実行することでネットワークアダプタが認識するようにはなるので、とりあえず使えてはいる、という感じです。
[2024/10/4 追記]
解消したようです。zypper dup
をすれば、起動時から正常に認識するようになりました。
詳細
やったことといえば、zypper dup
でパッケージの更新をしたことです。これが影響していることはほぼ間違いないと思います。確かに、少しいつもと違うメッセージが表示されていたように感じました。
「以下 35 個のパッケージ更新はインストールしません」と表示されています。
これはどうやら SDB:Vendor change update にあるように、新しいバージョンが異なるベンダー (リポジトリの提供元、というイメージ) から提供されている場合は、自動アップデートの対象にはならないようです。zypper up --allow-vendor-change
と実行すると、異なるベンダーのパッケージも更新対象になります。
とはいえ、vendor を変更する前からネットワークアダプタが認識しなくなりました。OpenSUSE は btrfs をデフォルトで使用しており、パッケージを更新する際にスナップショットを残しています。それでアップデート前の状態で起動すると、問題なくネットワークアダプタを認識していたので、更新が影響しているのは間違いなさそうです。
dmesg
で起動時のログを見てみると、wl
モジュールを読み込む際にいくつか気になるメッセージは表示されています。
しかし、最終的には BCM4331 を認識していますし、起動後に wl
モジュールがロードされています。それでも、前述の通りネットワークアダプタが認識しません。確認はできていませんが、ネットワークアダプタが正常に認識していたときも、表示されていたメッセージだと思われます。
ありがちなのが、b43
などの別の Broadcom 用ドライバがロードされてしまい、そちらと競合してしまう場合。しかし、blacklist の指定がされていて、起動後には不要なモジュールがロードされていなことは、以下のように確認できています。
また、ネットワークアダプタを認識しない、と書いていますが、以下のように ip link
コマンドでは認識している (wlp3s0
が無線 LAN の名前) のですが、NO-CARRIER
で接続できていないようです。
この状態で、modprobe -r wl
で一旦 wl モジュールをアンロードし、modprobe wl
で再度 wl モジュールをロードすると、ネットワークに接続が可能になります。モジュールの再読み込みで改善するので、モジュールそのものは正常に動作している、と思われます。
この事象が発生した後、カーネルや broadcom-wl パッケージの更新がありましたが、それらを適用しても改善しません。起動後に wl モジュールのアンロード&ロードを行うと改善するので、とりあえずそれで回避しています。
[12024/10/4 追記]
上述の通り、更新を適用することで解消したようです。パッケージの更新情報 を見ていたら、10/3 頃に以下ファイルが追加されていました。
- broadcom-wl.linux-6.10_fix_empty_body_in_if_warning.patch
- broadcom-sta-6.30.223.271-wpa_supplicant-2.11_add_max_scan_ie_len.patch
上のファイルはカーネル 6.10 に対応するパッチのようなので、この辺ではないかと思われます。