less than 1 minute read

事象

MacBook Pro (Retina, 13-inch, Late 2012) に OpenSUSE Tumbleweed をインストール ですが、無線 LAN が使えなくなりました。具体的には、ネットワークアダプタが認識されていません。やはり Broadcom-wl は鬼門です。

対策

なし・・・現状、解決に至っていません。再起動時にいくつかコマンドを実行することでネットワークアダプタが認識するようにはなるので、とりあえず使えてはいる、という感じです。

[2024/10/4 追記]

解消したようです。zypper dup をすれば、起動時から正常に認識するようになりました。

詳細

やったことといえば、zypper dup でパッケージの更新をしたことです。これが影響していることはほぼ間違いないと思います。確かに、少しいつもと違うメッセージが表示されていたように感じました。

zypper

「以下 35 個のパッケージ更新はインストールしません」と表示されています。

これはどうやら SDB:Vendor change update にあるように、新しいバージョンが異なるベンダー (リポジトリの提供元、というイメージ) から提供されている場合は、自動アップデートの対象にはならないようです。zypper up --allow-vendor-change と実行すると、異なるベンダーのパッケージも更新対象になります。

とはいえ、vendor を変更する前からネットワークアダプタが認識しなくなりました。OpenSUSE は btrfs をデフォルトで使用しており、パッケージを更新する際にスナップショットを残しています。それでアップデート前の状態で起動すると、問題なくネットワークアダプタを認識していたので、更新が影響しているのは間違いなさそうです。

dmesg で起動時のログを見てみると、wl モジュールを読み込む際にいくつか気になるメッセージは表示されています。

taints

しかし、最終的には BCM4331 を認識していますし、起動後に wl モジュールがロードされています。それでも、前述の通りネットワークアダプタが認識しません。確認はできていませんが、ネットワークアダプタが正常に認識していたときも、表示されていたメッセージだと思われます。

ありがちなのが、b43 などの別の Broadcom 用ドライバがロードされてしまい、そちらと競合してしまう場合。しかし、blacklist の指定がされていて、起動後には不要なモジュールがロードされていなことは、以下のように確認できています。

lsmod

また、ネットワークアダプタを認識しない、と書いていますが、以下のように ip link コマンドでは認識している (wlp3s0 が無線 LAN の名前) のですが、NO-CARRIER で接続できていないようです。

ip

この状態で、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 に対応するパッチのようなので、この辺ではないかと思われます。

更新日時: