最近、デフォルトカーネルで動作しないBCM4331 802.11a/b/g/n WiFiカードを搭載したMacbook Proを購入しました。
Sudo dmidecode -s system-product-name
MacBookPro8,2
lspci |grep 4331
03:00.0ネットワークコントローラー:Broadcom Corporation BCM4331 802.11a/b/g/n(rev 02)
lspci -n |grep 4331
03:00.0 0280:14e4:4331(rev 02)
いくつかの初期調査を行った後、私は この記事 に出会いました。これは、4331デバイスをサポートする最新のcompat-wirelessにパッチを適用する手順を段階的に示したものです。
ただし、パッチを適用したモジュールを最新のUbuntu 11.10カーネル(3.0.0-12-generic)にmodprobeしようとすると、これらの指示に従うと、次のdmesgエラーが発生します。
[ 5373.408581] b43: Unknown symbol bcma_core_disable (err
[ 5373.408685] b43: Unknown symbol bcma_core_pll_ctl (err 0)
[ 5373.408695] b43: disagrees about version of symbol bcma_driver_unregister
[ 5373.408698] b43: Unknown symbol bcma_driver_unregister (err -22)
[ 5373.408712] b43: disagrees about version of symbol bcma_core_enable
[ 5373.408715] b43: Unknown symbol bcma_core_enable (err -22)
[ 5373.408727] b43: disagrees about version of symbol bcma_core_is_enabled
[ 5373.408730] b43: Unknown symbol bcma_core_is_enabled (err -22)
[ 5373.408745] b43: disagrees about version of symbol bcma_chipco_gpio_control
[ 5373.408747] b43: Unknown symbol bcma_chipco_gpio_control (err -22)
[ 5373.408782] b43: disagrees about version of symbol__bcma_driver_register
[ 5373.408784] b43: Unknown symbol __bcma_driver_register (err -22)
[ 5373.408796] b43: Unknown symbol bcma_core_set_clockmode (err 0)
[ 5373.408822] b43: Unknown symbol bcma_core_dma_translation (err 0)
[ 5373.408878] b43: Unknown symbol bcma_core_pci_irq_ctl (err 0)
このモジュールを適切にロードするために、誰かが私を正しい方向に向けることができますか?
まず、マシンにb43ドライバーがインストールされていないことを確認します...ソフトウェアセンターを使用し、アンインストールがある場合はb43を検索します
すべてのファイルは-home-youruser-downloads....に保存できます
Nautilusでこのツリーファイルを抽出します。
次に、b43ドライバーを有効にします。
$ cd compat-wireless-2011-11-04
$ scripts/driver-select b43
PHY_HTが有効になっていることを確認してください。ファイルconfig.mkには、次の行が存在し、コメントが解除されている必要があります。
Sudo nano config.mk
...
CONFIG_B43_PHY_HT = y
...
ドライバーをコンパイルしてインストールします。
$ make
$ Sudo make install
$ cd ..
b43-fwcutterをコンパイルします。
$ cd b43-fwcutter-015
$ make
ファームウェア:
$ export FIRMWARE_INSTALL_DIR="/lib/firmware"
$ Sudo ./b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" /home/YOURUSER/Downloads/broadcom-wl-5.100.138/linux/wl_apsta.o
$ cd ..
ワイヤレスに関連するすべてのモジュールをアンロードし、ndiswrapperがロードされていないことを確認します。
$ cd compat-wireless-2011-11-04
$ Sudo make wlunload
$ Sudo rmmod ndiswrapper
ファイルの最後の行に追加します。
Sudo nano /etc/modprobe.d/blacklist.conf
...
ブラックリストndiswrapper
...
古いモジュールがまだロードされていないことを確認するには、おそらくシステムを再起動するのが最善です。これで、新しくコンパイルされたb43モジュールをロードして使用できるようになります。
$ Sudo modprobe b43
起動時にロードされるモジュールのリストにb43を追加することもできます(現時点では、モジュールは自動的にロードされません)。 Ubuntuの場合、ファイルの最後に次の行を追加します。
Sudo nano /etc/modules
...
b43
...
ドライバーは、サスペンドおよび休止状態でニースを再生しません。ラップトップをスリープ状態にする前にモジュールをアンロードし、ウェイクアップ後にモジュールをリロードする必要があります。 Ubuntuの場合、ファイルを作成する(またはファイルに追加する)だけで十分です。
Sudo /etc/pm/config.d/default
...
SUSPEND_MODULES = "b43"
...
注:カーネルを更新するたびに、新しいカーネル用にモジュールを再コンパイルする必要があります:
$ cd compat-wireless-2011-11-04
$ make clean
$ make
$ Sudo make install
P.S:元の投稿のように、構成ファイルの拡張子を変更するだけです.
Ssbとbcmaもブラックリストに登録してください。 Bcmaは、3.0.0カーネルで問題を引き起こします。モジュール 'b43、ssb、bcma'をブラックリストに登録してからdepmod -aとmodprobe wlを実行し、さらにdepmod -aを実行するか、パッケージを再インストールして再起動する必要があります。これがお役に立てば幸いです。
記事の正確なレプリカが2票を獲得する理由がわかりません。無駄だ。 Rockが提案したようにssbとbcmaをアンロードするだけで最終的に機能します。