Broadcom 4313 稼働す 

<< 戻る   トップ >>

どうしたものか lenovo U310 の Broadcom4313 (BCM94313HMGB Half-miniPCIe) が稼働した。「どうしたものか」といっても知らないうちに動くようになっていた、というわけではなく、Broadcom からプロプライエタリ (proprietary) なドライバをダウンロードして make しただけのことなのだが、近頃はそんなことしなくても proprietary (覚えられない英単語のひとつになりつつある) からオープンソースに変わったり、RPM Fusion でバイナリが公開されたりしているので、とんとご無沙汰かつ億劫になってしまった。手順を以下に示す。この手順は、FedoraForum.org への質問 "Broadcom-wl (BCM 4312 Chipset) broken after update" より問題提起した Ramiro 氏によるセルフアンサー(まとめ)をベースに、Broadcom のreadmeも参照して一部改変したものである。

なお、筆者は以下の手順を行って発生するいかなる事象・事故には責任を負わない。あくまで自己責任で実行すること。

  1. とりあえず、make できる環境を整える。
    # yum install kernel-devel gcc
  2. Broadcom の802.11 Linux STA driverからアーカイブ (hybrid-portsrc_x86_VERSION.tar.gz: VERSION は当該ファイルのバージョンナンバー) をダウンロードする (ダウンロードしたディレクトリパスを OVER_THE_RAINBOW と呼称する)。
  3. 作業用ディレクトリを作成し、アーカイブを解凍する。今回で使用したバージョンは x86_64-v5_100_82_112。
    # mkdir working
    # cd working
    # cp OVER_THE_RAINBOW/hybrid-portsrc_x86_VERSION.tar.gz .
    # tar xvzf hybrid-portsrc_x86_VERSION.tar.gz
    
  4. このまま make すると、コンパイルエラーが発生する。カーネルバージョン 3.3以上に未対応のため、とされている。そこで、src/wl/sys/wl_linux.c ファイルをエディタなどで開き、以下の二項目を置換する。
    # gedit src/wl/sys/wl_linux.c
    asm/system.h ⇨ asm/switch_to.h 
    .ndo_set_multicast_list ⇨ .ndo_set_rx_mode
    
  5. make clean してから make する。
    # make clean
    # make
    できあがった (はずの) wl.ko を /lib/modules/`uname -r`/extra/wl ディレクトリを作成してコピーする
    # mkdir -p /lib/modules/`uname -r`/extra/wl
    # cp wl.ko /lib/modules/`uname -r`/extra/wl
    
  6. 現時点でインストールされているドライバ (b43 ssb bcma wl のいずれか) があれば処理する。
    # lsmod  | grep "b43\|ssb\|bcma\|wl"
    これで見つかったドライバがあれば削除する。例えば、bcma が見つかった場合は:
    # rmmod bcma
    さらに、wl以外のドライバはブラックリストに登録する。bcma の場合:
    # echo "blacklist bcma" >> /etc/modprobe.d/blacklist.conf
    
  7. ドライバをインストールする。
    まずは、セキュリティモジュールを
    # modprobe lib80211
    つづいて、wl.ko を。
    # depmod -a
    # modprobe wl
    
  8. システムを再起動する。

記憶を辿ったので一部間違いややらなくてもいいことを含んでいる可能性はある。しかし重要なのは BCM4313 が絶賛稼働中であるということだ。また、このドライバはカーネルが更新される度に make してなおしてやる必要がある。どのあたりをやり直す必要があるかは、いずれまたカーネルの更新があったころに。


作成: 2013-01-19 21:59:38.0更新: 2013-01-20 18:38:22.0
http://museo-anonimo.jp/nanban/?id=1162,http://museo-anonimo.jp/nanban/tr/1162