2012/11/24

MacBook ProにCentOS 6.3をインストール!

ASUS 1101HAに続き、MacBook Pro (Mid 2009)にCentOS 6.3をインストールしてみました。
インストールはLive DVDから行いました。optionキーを押しながら起動してディスクからブートすると、オプションをいろいろ選べますが、今回はBoot (Basic Video)を選びました。普通のBootを選ぶと途中でフリーズします。ちなみに、Boot (Basic Video)を選んでもフル解像度で表示されます。
ウィザードにしたがってインストールを完了して再起動しても、通常のブートローダーを使っているとMountain Lionが起動してしまいます。
そこで、一旦Mac OSの方からrEFItをインストールし、さらに手動で/efi/refit/enable.shを実行してから再起動しました。すると、ボーン!の音の後にrEFItが表示され、選択肢からLinuxのペンギンを選ぶと、正常にCentOSを起動できました。


【追記 2012/11/28】
まず、この段階でカーネルを3.6.7にアップデートしました。
(カーネルを新しくしないと、ドライバをmakeするときにエラーが発生します)

しかし、1101HAとは違ってWiFiが認識されません。そこで、ドライバのインストールが必要となります。今回の備忘録はこのドライバのコンパイル方法についてです。
とりあえずlspciしてみると、Mid 2009のMBPにはBroadcom製の無線LANユニットが入ってるようでした。

04:00.0 Network controller: Broadcom Corporation BCM4322 802.11a/b/g/n Wireless LAN Controller (rev 01)

「BCM4322 Linux」でググると、Broadcomの公式ページがヒットします。幸いなことに、Broadcom社はLinux用のドライバを用意してくれています。
http://ja.broadcom.com/support/802.11/linux_sta.php

今回はx86_64のCentOSを入れたので、64bitのドライバ(5.100.82.112)をダウンロードしました。
公式にあるREADME.txtには手順が書いてあるのですが、普通にmakeするとコンパイルエラーになります(asm/system.hが無いと言われる)。
いろいろググった結果、
http://forums.fedoraforum.org/archive/index.php/t-280821.html
がヒットしました。ffrbwさんの書き込みに感謝です。ちなみにこの人も、自分はネットからパッチを取ってきただけ、と言っていますね(笑)
結論としては、ソースコードを一部いじればOKみたいです。

【準備 & コンパイル手順】
  1. su
  2. yum install gcc kernel-devel-`uname -r` -y
  3. wget http://ja.broadcom.com/docs/linux_sta/hybrid-portsrc_x86_64-v5_100_82_112.tar.gz
  4. mkdir hybrid_wl
  5. cd hybrid_wl
  6. tar xzvf ../hybrid-postsrc_x86_64-v5_100_82_112.tar.gz
  7. vim src/wl/sys/wl_linux.c
    ・43行目をコメントアウト
    //#include <asm/system.h>
    ・.ndo_set_multicast_list を .ndo_set_rx_mode に置換
  8. :wq
  9. make
【インストール手順 (README.txtまんま)】
  1. lsmod | grep "b43\|ssb\|bcma\|wl"
  2. 列挙されたすべてのモジュールをrmmodする。
    rmmod b43
    rmmod mac80211
    rmmod cfg80211
    rmmod ssb
    rmmod mmc_core
  3. modprobe lib80211
  4. insmod wl.ko
【インストール手順 (起動時に毎回ロードされるようにするには)】
/etc/rc.local に上のコマンド(手順2から4までのもの)を追記します。ただし、wl.koはフルパスで指定してください。

以上で作業は終了です。お疲れさまでした。やっとネットが使えます。

ちなみに最初の数秒はDisconnectedですが、30秒もしないうちに近くのAPを検出してくれます。

【追記 2012/11/28】
kernel-develをインストールするコマンドを訂正し、また、gccも必要なので追加しました。
訂正前: yum install kernel-devel -y
訂正後: yum install gcc kernel-devel-`uname -r` -y
【追記 2012/11/28】
起動時に自動的に無線LANのドライバを読み込ませる方法を書き足しました。

0 件のコメント:

コメントを投稿