web-dev-qa-db-ja.com

このパッチを適用したb43ドライバーをインストールするにはどうすればよいですか?

最近、デフォルトカーネルで動作しない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)

このモジュールを適切にロードするために、誰かが私を正しい方向に向けることができますか?

7
Russell

まず、マシンに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:元の投稿のように、構成ファイルの拡張子を変更するだけです.

enter image description here

3
hhlp

Ssbとbcmaもブラックリストに登録してください。 Bcmaは、3.0.0カーネルで問題を引き起こします。モジュール 'b43、ssb、bcma'をブラックリストに登録してからdepmod -aとmodprobe wlを実行し、さらにdepmod -aを実行するか、パッケージを再インストールして再起動する必要があります。これがお役に立てば幸いです。

2
Rocksinboxes

記事の正確なレプリカが2票を獲得する理由がわかりません。無駄だ。 Rockが提案したようにssbとbcmaをアンロードするだけで最終的に機能します。

0
Kai