先日、MacBookに作成したBoot CampパーティションにSolaris Nevadaを入れようとして失敗したので、今回はLinuxを入れてみることにしました。Linuxのどのディストリビューションにするかについては迷ったのですが、やはりインストーラが初めからIntel MacのGPT/GUIDパーティションに対応しているFedoraを選んでみました。FedoraのIntel Mac対応はFedora Core 6から始まっていますが,今回はGAが間近なFedora 7 test 4を使いました。
上図のように、Compizも比較的安定してきており、3Dキューブのデスクトップ切り替えや、ウィンドウがぐにゃぐにゃ変形するエフェクトは新鮮な感覚を与えてくれます。
MacBookへのインストール自体には大きな問題はありませんが、いくつか注意しておきたい点がありますので、以下にまとめておきます。
- インストール先ディスクの選択フェーズではカスタム構成を選択し、Boot Campパーティションのsda3のみマウントポイント(/)とフォーマットタイプ(ext3)を設定します。好みにもよりますが、私は独立したswapパーティションは作らず、Mac OS Xと同様にswapファイルで代用することにしました。
- Fedora 7 test 4のインストールDVDではトラックパッドが効かないため、textインストールを選択するか、GUIインストールを使用したいならUSBマウスを接続します(インストール後はきちんとトラックパッドが使えます)。
- AirMac用のドライバMADWifiをコンパイルする必要があるため、パッケージ選択画面で「開発ツール」を選択しておいた方がいいでしょう。
正しくインストールできたら、Mac OS XとFedoraの切り替えはブート時にoptionキーを押すことで出てくるブートメニューでWindowsと書かれたディスクを選択するだけです(Windowsを選択してLinuxが起動するというのも気持ちが悪いですが)。そのため、Fedoraの場合はrEFItをインストールする必要はありません。
FedoraはIntel Macを初めからサポートしていることもあり、デフォルトの状態で以下のデバイスがほぼ正しく動作しています。
- ディスプレイ (1280x800という変則的な解像度もOK)
- キーボード (一部のキーは認識されない)
- トラックパッド (2フィンガージェスチャは不可)
- サウンド
- Ethernet
- USB (USBハードディスクのマウントを確認)
- ACPI (メニューバーにバッテリの残量確認のアイコンが出ます)
- Bluetooth (認識していることのみ確認)
デフォルトでもかなりいい線をいっているのですが、きちんと使えるような状態にするのに、以下の作業を行いました。
参考のため、これらの作業手順を以下に示します。
swapファイルの作成
今回は、パーティション構成をシンプルにするため、Linux用には1つのパーティションだけを使うことにし、swap領域にはファイル形式を利用することにしました。swapファイルはddコマンドで作成し、mkswapコマンドでswapフォーマットに変換します。以下の例は、1GBのスワップを用意する場合です。
# dd if=/dev/zero of=swapfile bs=1024 count=1024000
# /sbin/mkswap swapfile 1024000
後は、/etc/fstabに以下のようなswapのエントリを追加し、
/swapfile none swap defaults 0 0
swaponコマンドでスワップを有効化します。
# /sbin/swapon -a
うまく設定されたかどうかは、topコマンドなどで確認します。
認識されないキーの代替マッピング
これはFedoraだけの問題ではなく、Ubuntuなどでも同様のようですが、MacBookの一部のキーが認識されません。「英数」や「かな」はいいとしても、「¥と|」のキーと「_」のキーが入力されないのは問題です。しかたがないので、以下のような~/.xmodmapファイルを作成し、「¥と|」をF10に、「\と_」をF9にマッピングしました。
keycode 216 = backslash underscore
keycode 217 = yen bar
上記のマッピングを有効にするには以下のように実行します。
$ xmodmap ~/.xmodmap
また、3ボタンエミュレーションを有効にするには、/etc/sysctl.confを設定します。以下の例は、ボタン2をF11に、ボタン3をF12にマッピングした例です。
# Mouse button emulation for MacBook (F11 -> button2, F12 -> button3)
dev/mac_hid/mouse_button_emulation = 1
dev/mac_hid/mouse_button2_keycode = 87
dev/mac_hid/mouse_button3_keycode = 88
なお、デフォルトではkeycodeを調べるためのxevがインストールされないため、キーマップをカスタマイズしたい方は、yum install xorg-x11-utils しておくといいでしょう。
AirMacを認識させるためMadWifiのインストール
Core Duoの初代MacBookのAirMacはAtherosのAR2425というチップで、MADWifiでサポートされています。802.11nにアップグレードできるCore 2 DuoのMacBookのチップがサポートされているかどうかは分かりませんので、以下の方法でベンダ:デバイスIDを調べ、MADWifiのコンパチビリティリストで動作確認されているかどうかを確認するといいでしょう。まず、lspciコマンドの結果をgrepし、
$ /sbin/lspci|grep Atheros
02:00.0 Ethernet controller: Atheros Communications, Inc. Unknown device 001c (rev 01)
先頭の02:00.0の部分をキーにもう一度lspciコマンドを実行します。
$ /sbin/lspci -n |grep 02:00.0
02:00.0 0200: 168c:001c (rev 01)
ここで、168c:001cの部分がベンダ:デバイスIDです。MADWifiのコンパチビリティリストにこのデバイスが載っていて、Notes:欄に動作すると書かれていれば大丈夫です。
MADWifiをコンパイルする前に、wireless-toolsとkernelソースがインストールされているか確認しましょう。前者はデフォルトで、後者はインストール時に開発ツールを選択していればインストールされているはずです。
$ yum list installed | grep wireless-tools
wireless-tools.i386 1:28-1.fc6 installed
$ yum list installed | grep kernel-devel
kernel-devel.i686 2.6.20-1.3104.fc7 installed
MADWifiのコンパイルですが、Fedora 7のkernel 2.6.20では安定版0.9.3が正しくコンパイルできませんので、madwifi-ngから最新のスナップショットを持ってきてコンパイルします(5/24現在、新しい安定版0.9.3.1が出ていますので、ひょっとしたらこちらでもコンパイルできるかもしれません)。
$ tar zxvf madwifi-ng-r2362-20070522.tar.gz
$ cd madwifi-ng-r2362-20070522
$ make
$ sudo make install
インストールができたら、modprobeコマンドでデバイスを認識します。正しく認識されれば、wifi0とその仮想デバイスath0が増えているはずです。
$ sudo /sbin/modprobe ath_pci
$ /sbin/ifconfig -a
ath0 Link encap:Ethernet HWaddr 00:16:CB:BD:47:0F
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
:
wifi0 Link encap:UNSPEC HWaddr 00-16-CB-BD-47-0F-58-EE-00-00-00-00-00-00-00-00
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:199
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:16
普通なら、後は「システム>管理>ネットワーク」メニューで設定をするだけですが、なぜかwifi0がEthernetデバイスとして認識され、本来のath0がリストに現れません。しかたがないので、手作業で/etc/sysconfig/network-scriptsディレクトリに以下のようなファイルifcfg-ath0を作成します。
DEVICE=ath0
BOOTPROTO=dhcp
ONBOOT=no
MODE=Managed
ESSID="ネットワーク名を記入"
KEY="パスワードを記入(ASCIIなら s:passwordの形式)"
設定ファイルができたら、ifupコマンドでath0を有効化します。全てがうまくいけば、ifconfigでath0にIPアドレスが割り当てられていることが確認できます。
$ sudo /sbin/ifup ath0
$ /sbin/ifconfig -a
ath0 Link encap:Ethernet HWaddr 00:16:CB:BD:47:0F
inet addr:10.0.1.4 Bcast:255.255.255.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:121 errors:0 dropped:0 overruns:0 frame:0
TX packets:156 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:74333 (72.5 KiB) TX bytes:25209 (24.6 KiB)
:
なお、MADWifiのソースツリーは消さずにそのまま残しておきましょう。kernelをアップデートする度にMADWifiのカーネルモジュールが無効化されてしまうため、kernelをアップデートしたら上記の手順を(make cleanしてから)繰り返す必要があるためです。
以上の作業で、なんとか使える環境になりました。他にも解決したい大きな問題として以下の2つがあります。
- トラックパッドをタップすると、デフォルトで左クリックとして認識されるようになっているのですが、これがとてもセンシティブで不用意にあちこちをクリックしてしまいます。この動作を無効にしたいのですが、方法が分かっていません。
- Mac OS Xと同様、液晶パネルを閉じるとスリープ、開くとスリープ解除にできる点は素晴らしいのですが、スリープ解除後にAirMacが復帰してくれません。そのため、スリープ解除する度にsudo ifdown ath0; sudo ifup ath0を実行しなければなりません。
もし、上記2つの問題の解決策をご存じの方がおられましたら、アドバイスよろしくお願いします。
最近のコメント