Mac

提供: ArchWiki
2018年2月7日 (水) 00:24時点におけるKusakata.bot (トーク | 投稿記録)による版 (文字列「http://www.kernel.org/」を「https://www.kernel.org/」に置換)
ナビゲーションに移動 検索に移動

関連記事

MacBook (12"/Air/Pro) に Arch Linux をインストールするのは他のコンピュータに Arch をインストールするのと大して変わりはありません。とはいえ、MacBook 固有のハードウェア設定のため、説明を分ける必要がある特別な注意事項が多少存在します。Arch Linux 一般の情報は、インストールガイドを参照してください。このページでは Linux カーネルでサポートされているハードウェアを使っている Apple のコンピュータにおけるインストールの説明を入れています。機種ごとの注意事項やトラブルシューティングなどは (ページ右上の) '関連'ページを見て下さい。

目次

概要

具体的に言うと、MacBook で Arch Linux をインストールする手順は以下の通りになります:

  1. ファームウェアのアップデート: アップデートを行うことでエラーが減りハードウェアの新しい機能が使えるようになるはずです。
  2. パーティション: このステップでは OS X パーティションを縮小または削除して Arch Linux のためのパーティションを作成します。
  3. ブートローダーの設定: 新しいパーティションを起動できる状態にします。
  4. Arch Linux のインストール: 実際にインストールを行います。
  5. インストール後の設定: MacBook 特有の設定。

ファームウェアのアップデート

Arch Linux をインストールする前に、MacBook の最新ファームウェアアップデートがインストールされているか確認してください。ファームウェアのアップデートには macOS が必要です。macOS で App Store を開いてアップデートがないか確認してください。アップデートを実行したら、コンピューターを再起動して、再度、他にアップデートがないか確認してください。

ノート: macOS をアンインストールしたい場合は Apple の資料を参照してください。

MacBook ファームウェアのアップデートは macOS からしかインストールできないので、macOS はアンインストールしないことを推奨します。macOS を完全に削除する場合、Linux でカラープロファイルを設定するのに必要になるファイルをバックアップしてください:

/Library/ColorSync/Profiles/Displays/*

バックアップしたらパーティションセクションに進んでください。

パーティション

インストールの次のステップはハードドライブの再パーティションです。通常の方法で macOS をインストールした場合、ドライブは GPT フォーマットとなり以下のパーティションが含まれているはずです:

  • EFI: ディスクの最初にある 200 MB のパーティション。パーティションツールによっては msdosFAT と認識されることがあり通常は #1 とラベル付けされます。
  • Mac OS X: ディスクの残り容量全てを占めているパーティション (HFS+)。通常は #2 とラベルが設定されます。
  • Recovery: リカバリパーティション (Mac OS X 10.7 以上のみ)。macOS からは遮蔽されていますが、パーティションツールから確認できます。
ノート: あなたの使っているハードウェアに Fusion Drive が入っている場合は Apple Fusion Drive のページを見ると良いでしょう。

インストールしたいオペレーションシステムの数によってパーティションの方法は変わります。このページでは以下の選択肢を説明しています:

どれにするのか決められないのならば、デュアルブートを推奨します。いつでも好きなときに OS X に戻ることができるからです。

Arch Linux のみ

一番簡単です。Arch Linux がインストールできる他のハードウェアと同じようにパーティションをすれば、ほとんど上手くいきます。インストールガイドを見てください。

ノート: 特筆すべきは MacBook のファームウェアの起動音です。このサウンドをオフにするには: インストールを始める前に OS X でボリュームをミュートにしてください。MacBook のファームウェアは (可能であれば) OS X の値を使います。OS X パーティションを取り除くと、マシンのファームウェアを簡単に更新する方法がなくなるので注意してください。外付けドライブを使って OS X を起動する必要があります。

完全なディスク暗号化を設定したい場合、Dm-crypt/システム全体の暗号化を見てください。

/home パーティションを分割したり、暗号化や LVM を使わないシンプルな例だと以下のようになります:

partition  mountpoint  size    type  label
/dev/sda1  /boot       200MiB  vfat  EFI
/dev/sda2  /swap       adjust  swap  swap
/dev/sda3  /           remain  ext4  root

Mac OS X と Arch Linux

OS X と Arch Linux が共存するようにハードドライブをパーティションするには、OS X のパーティショニングツールを使ってから Arch Linux のツールで仕上げをするのが一番簡単な方法です。

警告: OS X のパーティションを FileVault 2 で暗号化している場合、パーティションを作成する前にディスク暗号化を無効化してください。FileVault 2 は OS X のパーティションを縮めた後で再度有効にすることができます。

手順:

  • OS X で、Disk Utility.app を実行してください (/Applications/Utilities にあります)。
  • 左のカラムからパーティションするドライブを選択してください (パーティションではありません)。右のパーティションタブをクリックしてください。
  • + ボタンを押して新しいパーティションを追加して、OS X 用に残したい容量と新しいパーティション用の容量を決めてください。新しいパーティションは Arch Linux でフォーマットするため、パーティションタイプは何でもかまいません。
  • 上記の作業が完了したら、次で進みます。パーティションが作成できない場合、OS X の中からパーティションを修復する必要があります。
  • Alt を押しながらパソコンを起動して Arch のインストールメディアやライブ USB を起動してください。そして#インストールに進んでください。

新しく作成したパーティションは Arch のインストールメディアの中からリサイズできます。

ヒント: スワップを使いたい場合、スワップパーティションを作成する代わりにスワップファイルを使用することができます。また、LVM を設定して新しく作成したパーティションをコンテナとして使うこともできます。

EFI

  • cgdisk を実行してください。
  • Disk Utility.app で作成したパーティションを削除して Arch Linux に必要なパーティションを作成してください。OS X ではパーティションの後に 128 MiB の隙間があると良いので、最後の Mac OS X パーティションの後に最初のパーティションを作成する際、cgdisk がパーティションの最初のセクターを聞いた時に +128M と入力してください。Apple のパーティションポリシーに関する詳細は こちら を読んでください。シンプルな例 (LVM や crypto なし):
ノート:
  • スワップパーティションは任意です。RAM が 4GB 以上あるマシンでは、スワップパーティションがないほうが良いパフォーマンスを期待できます。また、後でスワップファイルを作ることも可能です、スワップファイルを参照してください。
  • 一番楽なデュアルブートの選択肢は OSX の中から root ディレクトリ (install.sh のデフォルト) に rEFInd をインストールすることです。その後、インストールの tarball からドライバーフォルダを新しい refind の場所にコピーして、refind.confscan_all_linux_kernelsalso_scan_dirs オプションの行をアンコメントしてください。ブートオプションの設定は Arch の /boot ディレクトリにある refind_linux.conf から行えます。
  • Apple のブートローダーから GRUB を起動できるようにするには、小さな hfs+ のパーティションを作成してください (便宜上、その後 OS X を使って Disk Utility.app でフォーマットしてください)。GRUB EFI のインストール手順に従ってから、 /boot/efi ディレクトリを作成した hfs+ パーティションにマウントしてください。最後に、OS X で再度そのパーティションを bless して完了です。これで GRUB がデフォルトのブートオプションに設定されます (起動時に alt を押すことで mac のブートオプション画面が出ます。http://mjg59.dreamwidth.org/7468.html を見て下さい)。
  • パーティションに関する詳細は、パーティショニングを見て下さい。
  • OS X の EFI パーティションは archlinux と共有することが可能です。arch のための追加の EFI パーティションの作成は完全に任意です。
partition  mountpoint  size       type  label
/dev/sda1  /boot/efi   200MiB     vfat  EFI
/dev/sda2  -           ?          hfs+  Mac OS X
/dev/sda3  -           ?          hfs+  Recovery
/dev/sda4  -           100MiB     hfs+  Boot Arch Linux from the Apple boot loader (optional)
/dev/sda5  /boot       100MiB     boot  boot
/dev/sda6  -           ?          swap  swap (optional)
/dev/sda7  /           10GiB      ext4  root
/dev/sda8  /home       remaining  ext4  home

BIOS 互換

  • root で parted を実行してください。
  • 空きスペースのパーティションと他のインストールに使うスペースのパーティションを削除します。MBR はプライマリパーティションを4つまでしか持てないので注意してください (efi パーティションを含む)。arch には2つのプライマリパーティションを残します。システムパーティションとホームパーティションを作って、スワップファイルを使うという方策と (論理パーティションは使いません)、ひとつのパーティションを共有パーティションにするという方策が考えられます (下を参照)。
  • 次に、(ファイルシステムを必要とする) パーティション上に (特に /boot を含むパーティションに) ファイルシステムを新しく作成します。次のステップで rEFIt が MBR に正しいパーティションタイプを設定できるようにする必要があります (既存のファイルシステムを使わない、parted によって設定されたパーティションタイプは無視されるようです)。GRUB を正しいパーティションにインストールするために不可欠です。
  • ここで、コンピュータを再起動して rEFIt でハードドライブのパーティションテーブルを修正してください (これをしていないと、Mac が Linux のパーティションを認識できるように後で GRUB を再インストールする必要が生じることがあります)。rEFIt のメニューが表示されたら、update partition table を選択して、Y を押して下さい。そして再起動します。

Mac OS X, Windows XP, Arch Linux のトリプルブート

この方法はどの環境でも使えるとは保証できませんが、late 2009 以降の Macbook では問題ないことをテスト済みです。

ハードドライブをパーティションして、全てのオペレーティングシステムが共存できるようにする一番簡単な方法は、Mac OS X のディスクユーティリティを使って、XP のフォーマッタを使って、XP をインストールして、Arch Linux のツールでフィニッシュすることです。

警告: Mac OS X のクリーンインストールをした後に試行することを強く推奨します。既存の環境でこの方法を使うと予期しない結果を生むことがあります。少なくともインストールを始める前に timemachine か clonezilla でバックアップを取っておいて下さい。

手順:

  • OS X で、Disk Utility.app を実行してください (/Applications/Utilities にあります)。
  • 左のカラムからパーティションするドライブを選択してください (パーティションではありません)。右のパーティションタブをクリックしてください。
  • ボリュームスキームからリサイズするボリュームを選択してください。
  • Mac OS X のパーティション、XP のパーティション、Arch Linux のパーティションそれぞれにどれだけ容量を割り当てるか決定します。ソフトウェアアプリケーションやファイルの数によりますが、標準的な Mac OS X 環境には 15-20 GiB、XP もそれと同じくらいの容量が必要になることを覚えておいて下さい。OSX 200Gb, XP 25Gb, Arch 25Gb くらいで十分でしょう。
  • 割り当てを決めたら行動に移します。+ ボタンを押して新しいパーティションを追加し、自由にラベルを付けて下さい。XP パーティションは一番最後のパーティションにして FAT32 でフォーマットします。後で迷わないように Arch は HFS でフォーマットすると良いでしょう、どちらにしろフォーマットし直すことになります。

linux から見るとパーティションは以下のようになります:

  • sda (ディスク)
  • sda1 (Mac ブートパーティション - OSX からは見れません)
  • sda2 (HFS+ の OSX インストール)
  • sda3 (一時的に HFS の Arch インストール)
  • sda4 (FAT32 の XP インストール)
  • 最後に、適用をクリックします。これで空きスペースから新しいパーティションが作成されます。
ノート: この方法を使う場合、Mac OS X と Arch Linux で共有パーティションを作ることはできません。mac は4つのアクティブパーティションしか扱えないためです。ただし Arch の HFS パーティションをマウントすることはできます。また、他の方法もないわけではありません。
  • 上記作業が完了したら、次に進んで下さい。もし失敗した場合は、先に Mac OS X の中からパーティションを修復する必要があるかもしれません。
  • この方法でブートキャンプをする必要はありません。EFIt プログラムはかなりの柔軟性があります (ただし GRUB ほどの柔軟性はありません)。rEFIt をダウンロードしてインストールしてください [1]
  • OS X のターミナルを開き以下を実行してください、これで rEFIt ブートマネージャが有効になります。
cd /efi/refit
./enable.sh
  • rEFIt が動作するか再起動して確認してください、起動時に表示されるはずです。立ち上がったら rEFIt パーティションマネージャを開いて変更を承諾してください。
  • XP インストール CD を挿入して rEFIt で起動します - ブートローダーによって認識されるまで何回か再起動する必要があるかもしれません。XP をインストールして、インストールが完了したら XP でドライバーが動くように OSX インストール CD を使います。
ノート: XP をインストールする際には XP 用のパーティションを選択して XP のインストーラーでもう一度フォーマットするようにしてください。再フォーマットしていないと XP が動作しません。
  • Arch インストール CD を起動して、root でログインし # /arch/setup を実行してください。
  • 通常通りにインストールを行います。arch インストーラーには sda3 を root パーティションとしてマウントさせ ext3 でフォーマットします。/boot やスワップパーティションはないので警告は無視して下さい。
  • この時点で、デュアルブートする場合は、コンピュータを再起動して rEFIt でハードドライブのパーティションテーブルを修正します (これを行っていないと、Mac に Linux パーティションを認識させるために後で GRUB の再インストールをする必要が出てきます)。rEFIt のメニューに入ったら、update partition table を選択して、Y を押して下さい。
# reboot

ブートローダーの設定

systemd-boot で Apple のブートローダーを使う (推奨)

Apple の EFI ブートローダーは EFI システムパーティションに存在する /EFI/BOOT/BOOTX64.EFI という .efi ファイルを読み込みます。幸いにも、systemd-boot バイナリがデフォルトでインストールされる場所と同じであるため、systemd-boot を使用して Linux を簡単に起動できます。

  • まず、EFI システムパーティションが /boot にマウントされていることを確認してください。
  • 通常通りに#インストールを行います。
  • Chroot 完了の中から、以下のコマンドを実行して systemd-boot をインストールします:
# bootctl --path=/boot install

上記のコマンドは systemd-boot バイナリを /boot/EFI/BOOT/BOOTX64.EFI にコピーして systemd-boot をデフォルトの EFI アプリケーション (デフォルトのブートエントリ) として EFI ブートマネージャに追加します。

  • systemd-boot#設定に書かれている手順に従ってブートローダーを設定します。

再起動したら、MacBook が起動している間に Option キーを押すことで Apple Boot Manager が表示され、ブートオプションとして Arch Linux が選択できるはずです (EFI Boot と表示されます)。

ヒント: Arch Linux と OS X を共存させる場合、OS X のシステム設定からデフォルトのブート OS を変更することができます。Arch Linux がブートオプションとして表示されない場合、ブートオプションを選択する前に OS X から EFI システムパーティションをマウントしてください: $ diskutil mount disk0s1

GRUB で Apple のブートローダーを使う

UEFI でありながらも、MacBook の EFI ブートローダーは起動するのに EFI パーティションを使用しません [2]。代わりに、内部・外部ドライブに含まれている .efi ファイルを検索して、特定の条件が満たされている場合にブートオプションとして表示します。例えば、MacBook は既存の OS X 環境を以下の条件で検知します:

  • パーティションが HFS+ でフォーマットされていること。
  • パーティションの ID が af00 であること。
  • パーティションのルートディレクトリに mach_kernel という名前のファイルが存在すること。
  • パーティションの中の /System/Library/CoreServices ディレクトリに boot.efi ファイルが存在すること。

つまり Arch Linux 環境を MacBook のブートローダーから自動的に認識させることが可能です。さらに、HFS+ で /boot パーティションが正しくフォーマットされていれば EFI システムパーティションに手を加える必要はありません。OS X と上手く共存しつつ rEFInd などの他のブートローダーを利用しなくてもよくなります。ただし、手動で設定しなければなりません。以下は GRUB を使って設定を行う手順です:

  • まず、新しい Arch 環境をインストールする際に、/boot パーティションを作成してください。Arch ISO では様々なツールが使えます (例: cgdisk)。
  • カーネルを保存するためにパーティションの容量は ~250 MB 程度必要です。パーティションのタイプは Apple HFS/HFS+ に設定してください (fdisk/cgdisk では Apple HFS/HFS+、gdisk では af00 と表示されます)。
  • Arch のインストール ISO には hfsprogsAUR パッケージが含まれていないため、新しいパーティションを HFS+ でフォーマットする前にインストール環境の中でパッケージをインストールしてください:
# pacman -Sy hfsprogs
# modprobe hfsplus
# mkfs.hfsplus /dev/sdX -v "Arch Linux"
ノート: /dev/sdX は適切なデバイスに置き換えてください。
警告: chroot 環境の中で、新しくインストールした環境の中でも必ず hfsprogsAUR パッケージをインストールしてください。パッケージをインストールした後、chroot 環境の中で initramfs を再生成してください: # mkinitcpio -p linux
  • chroot 環境に入ったら、grubefibootmgr パッケージをインストールしてください。以下のコマンドで GRUB EFI アプリケーションが /boot/EFI/arch/System/Library/CoreServices/boot.efi にインストールされ、モジュールが /boot/grub/x86_64-efi にインストールされます:
# grub-install --target=x86_64-efi --efi-directory=/boot

その後、標準の設定ファイルを作成してください:

# grub-mkconfig -o /boot/grub/grub.cfg

/System/Library/CoreServices ディレクトリが /boot/EFI/ フォルダのサブディレクトリとして扱われないため boot.efi のディレクトリ構造が正しくありません。MacBook のブートローダーから認識されるように boot.efi スタブの場所を変更する必要があります:

# mv /boot/EFI/arch/System/ /boot/
# rm -r /boot/EFI/

そしてダミーの mach_kernel ファイルを作成:

# touch /boot/mach_kernel

その後、以下のファイルを作成してください:

/boot/System/Library/CoreServices/SystemVersion.plist
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
       <key>ProductBuildVersion</key>
       <string></string>
       <key>ProductName</key>
       <string>Linux</string>
       <key>ProductVersion</key>
       <string>Arch Linux</string>
</dict>
</plist>

再起動したら Option キーを押し続けることで Apple Boot Manager が表示され、ブートオプションとして Arch Linux が選択できるはずです。Arch Linux を選択すると GRUB が起動します。

ヒント: インストール後、任意で MacBook ブートローダーにカスタムアイコンを表示させることができます。wget, librsvg, libicnsAUR パッケージをインストールして、以下のコマンドを実行してください:
$ wget -O /tmp/archlinux.svg https://www.archlinux.org/logos/archlinux-icon-crystal-64.svg
$ rsvg-convert -w 128 -h 128 -o /tmp/archlogo.png /tmp/archlinux.svg
$ sudo png2icns /boot/.VolumeIcon.icns /tmp/archlogo.png
$ rm /tmp/archlogo.png
$ rm /tmp/archlinux.svg

上記のコマンドの中で使っている Arch ロゴは好きなアイコンに置き換えられます。

GRUB を EFI パーティションに直接インストールする

ノート:
  • 以下の手順は Macbook Pro (Early 2011) で上手くいくことが確認されています。手順だけでなくその下の詳細も注意して読んで下さい。
  • 新しい MacBook Pro (Mid 2014) では、efibootmgr パッケージをインストールしてからでないと上手く行きません。

手順:

  • grub をインストールしてください
  • /bootefi という名前のディレクトリを作成してください
  • Mac 上にある既存の EFI パーティションをこの /boot/efi ディレクトリにマウントしてください
  • このディレクトリに GRUB をインストールしてください
  • /boot/grublocale という名前のディレクトリを作成してください
  • /usr/share/locale/en\@quot/LC_MESSAGES/ から /boot/grub/locale grub.mo をコピーしてください
  • GRUB の設定を生成してください
  • 完了です。これで再起動後 GRUB が起動し新しくインストールした Archlinux を起動することができます。
  • Mac OS X を起動したいときはコンピュータの起動中に ALT/Option キーを押し続けて下さい。

詳細 (GRUB/EFI サンプル#M5A97 から引用):

grub をインストールして boot パーティションがハードディスクに GPT としてあるか確認して、基本の Arch インストール作業は完了です。

GRUB#UEFI システムより:

UEFI システムパーティションは GRUB のインストールスクリプトが検出できるように /boot/efi/ にマウントする必要があります:

# mkdir -p /boot/efi
# mount -t vfat /dev/sdXY /boot/efi

X はブートするハードディスク、Y は先に作成した efi パーティションに置き換えて下さい。

以下のコマンドで GRUB UEFI アプリケーションとモジュールを /boot/grub/x86_64-efi にインストールしてください:

# modprobe dm-mod
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug
# mkdir -p /boot/grub/locale
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo

GRUB の設定を生成してください

# grub-mkconfig -o /boot/grub/grub.cfg

bless を使う

分割したパーティションに GRUB を配置した後 "blessing" を行うことで rEFIt を使わずに EFI モードで GRUB から直接起動できます。この手順は Macbook 7,1 で動作することが確認されています。GRUB は FAT32 か HFS+ パーティションでホストしたほうが良いですが、ext2 や ext3 も動作します。GRUB の appleloader コマンドは 7,1 では現在動作しませんが、ここから利用できるパッチでサポートを追加することが可能です。

適切な場所に GRUB をインストールした後、その場所から起動するようにファームウェアを設定する必要があります。既存の OS X 環境か OS X のインストールディスクから設定を行うことができます。次のコマンドは GRUB を既存の OS X パーティションの /efi/grub にインストールしたと仮定しています:

# bless --folder /efi/grub --file /efi/grub/grub.efi

コンパイル

機種によっては EFI_ARCH を i386 に設定する必要があります。

bzr branch --revision -2 bzr://bzr.savannah.gnu.org/grub/trunk/grub grub
cd grub
./autogen.sh
patch -p1 < appleloader_macbook_7_1.patch
export EFI_ARCH=x86_64
./configure --with-platform=efi --target=${EFI_ARCH} --program-prefix=""
make
cd grub-core
../grub-mkimage -O ${EFI_ARCH}-efi -d . -o grub.efi -p "" part_gpt part_msdos ntfs ntfscomp hfsplus fat ext2 normal chain boot configfile linux multiboot
cp grub.efi *.mod *.lst yourinstalllocation

インストール

ノート: このセクションは Mac OS X を Arch Linux と共存させたい場合にのみ必要になります。そうでない場合は、公式インストールガイドの手順に従って、#インストール後の設定まで進んで下さい。
  • Arch Linux インストール CD もしくは必要に応じて最新の Archboot iso (非公式) から起動してください。Apple の UEFI で起動できる USB を作るには、UEFI ブータブル USB を作成する手順に従う必要があります。
ノート:
  • MacBook Pro 7,1 で、起動したときに pacpi_set_dmamode でエラーが発生することがあります: "unable to handle kernel NULL pointer dereference at 0000000000000010" (インストールメディアのバージョン 2012.12.01 で確認)。この問題を修正するには、次のオプションを使って起動してください: acpi=off。chroot した後、MODULES="ata_generic"/etc/mkinitcpio.conf に追加して mkinitcpio -p linux を実行します。参照: インストールガイド: システムの設定
  • 複数の MacBook ユーザーが文字が二重になったり長い遅延などキーボードの出力がおかしくなることを報告しています。この問題を修正するには、次のオプションを使って起動してください: arch noapic irqpoll acpi=force
  • インストールガイドに則ってインストールを進めて下さい。ただし以下の箇所は別です:
    • ハードドライブの準備では、パーティションのフォーマットファイルシステムのマウントポイントの設定だけを行なって下さい。適切なパーティションを割り当てるように注意してください。#パーティションに従っていればパーティションは既に作成されているはずです。
    • (EFI で起動する場合) ブートローダーをインストールした後、インストーラーを終了して GRUB をインストールしてください。
    • (BIOS 互換で起動する場合) ブートローダーをインストールした後、menu.lst ファイルを編集して reboot=pcikernel 行の最後に追加してください、例:
      kernel /vmlinuz-linux root=/dev/sda5 ro reboot=pci
      これで MacBook が Arch から正しく再起動できるようになります。
    • (BIOS 互換で起動する場合) ブートローダーのインストールでは、/boot があるパーティションに GRUB をインストールしてください。
      警告: GRUB を /dev/sda にインストールしないでください。これをしてしまうとインストール後の環境が不安定になります。
    • システムの設定では、/etc/mkinitcpio.conf を編集して autodetect フックの後のどこかに keyboard フックを追加してください。これで Arch が起動する前にキーボードを使う必要があるときにキーボードのドライバーがロードされます (例: LUKS パスワードを入力したりトラブルシューティングのシェルを使う場合など)。
  • インストール作業が完了したら、コンピュータを再起動してください。
  • オプティカルメディアを使っている場合、MacBook の起動時にエジェクトキーを押して下さい、これで Arch Linux のインストールディスクが排出されるはずです。
  • Mac OS X と Arch Linux のデュアルブートをする場合、システムの起動時に alt (option) キーを押すことで Mac ブートローダーを使って起動する OS を選択します。

インストール後の設定

Xorg

Xorg の記事に従って Xorg をインストール・設定してください。

ビデオ

MacBook はモデルによって異なるグラフィックカードが搭載されています。

搭載されているグラフィックカードを確認するには:

$ lspci | grep VGA
  • intel を含む文字列が表示された場合、Intel Graphics を読んでください。
  • nVidia が返される場合、NVIDIA を読んで下さい。
  • もしくは ATIAMD の文字が確認できた場合、ATI を読んで下さい。
NVIDIA ノート
ヒント: EFI モードで OS をインストールしたのに NVIDIA のバイナリドライバーが BIOS モードでしか動作しない場合 (EFI ブートで黒画面になるなど)、次のページを見てください: https://askubuntu.com/a/613573/492886

NVIDIA のグラフィックカードが搭載された MacBook では、バックライトを正しく動作させるために AURnvidia-blAUR パッケージが必要になるかもしれません。

ヒント:
  • nvidia-bl をインストールしてもバックライトの操作ができない場合、apple_bl カーネルモジュールをブラックリストに入れて下さい。
  • 輝度の制御ができない場合、/etc/modprobe.d/nvidia_bl.confoptions nvidia_bl max_level=0x1ffff shift=11 をアンコメントしてください。
  • もしくは、pommed-lightAUR パッケージを使うことを選ぶこともできます。この場合、希望する明るさのレベルに応じて /etc/pommed.conf.mactel の step 設定を 5000-10000 のあたりに変更すると良いでしょう。最大輝度は 80000 前後です。

タッチパッド

デフォルトでタッチパッドは基本的な機能が使えるはずです。ネイティブの OSX と全く同じように使える真のマルチタッチドライバーは AUR からインストールできます: xf86-input-mtrack-gitAUR。詳細については readme で読むことができます。

以下は Macbook 7,1 で上手く動作する mtrack のオプションです:

Option "Thumbsize" "50"
Option "ScrollDistance" "100"

もしかしたら次を追加する必要があるかもしれません:

MatchDevicePath "/dev/input/event10"

タップでクリックを無効化 (つまりクリックするときは押すように) するには、以下を mtrack の設定セクションに追加してください:

Option          "TapButton1" "0"
Option          "TapButton2" "0"
Option          "TapButton3" "0"

ナチュラルスクロール: Mac OSX のような自然な2本指のスクロールを設定するには、Synaptics タッチパッド#ナチュラルスクロールを参照してください。

xf86-input-mtrack-gitAUR を使用している場合、上スクロールと下スクロールのボタンを入れ替えることができます (同じく左スクロールと右スクロールも):

/etc/X11/xorg.conf.d/10-mtrack.conf
...
Option "ScrollUpButton" "5"
Option "ScrollDownButton" "4"
Option "ScrollLeftButton" "7"
Option "ScrollRightButton" "6"
...

古い Macbook 機種の特記事項 (MacBook 2,1 で確認): 古い Macbook のモデル (マルチタッチ未対応) では、xf86-input-synaptics パッケージをインストールしないとタッチパッドが正しく動作しません。このパッケージのインストールと設定については Synaptics タッチパッドを見て下さい。

Macbook Pro(5,5) のノート: Extra の xf86-input-synaptics を使うのがずっとシンプルです。3本指のスワイプなどの機能がありませんが、このドライバーは高速なレスポンスを提供します。gpointing-device-settings にはシンプルな GUI 設定が入っています。参考用に、以下は Xorg の設定ファイル /etc/X11/xorg.conf.d/60-synaptics.conf です。

 Section "InputClass"
       Identifier "touchpad catchall"
       Driver "synaptics"
       MatchIsTouchpad "on"
       MatchDevicePath "/dev/input/event*"
       Option "SHMConfig" "on"
       Option "TapButton1" "1"
       Option "TapButton2" "3"
       Option "TapButton3" "2"
       Option "PalmDetect" "on"
       Option "VertEdgeScroll" "off"
       Option "HorizEdgeScroll" "off"
       Option "CornerCoasting" "off"
       Option "EdgeMotionUseAlways" "off"
       Option "AreaLeftEdge" "10"
       Option "AreaRightEdge" "1270"
 EndSection

OS X のようなマルチタッチジェスチャー現在新しい synaptic ドライバーでは壊れています。OS X のマルチタッチジェスチャーを Arch に追加したいユーザーには、xSwipe が細かくカスタマイズ可能で、軽量な Perl スクリプトとしてピッタリでしょう。インストールして設定したら (Github の xSwipe wiki を参照)、xSwipe をスタートアップアイテムとして追加することを推奨します。

キーボード

MacBook のキーボードはデフォルトで動作します。fn キーを Fx キーと交換するには Apple Keyboard を見て下さい。

xbindkeys などの適当なアプリケーションを使うか DE の設定によってマッピングすることができます。しかしながら他の良い方法として AUR から pommed-lightAUR をインストールすることを推奨します。MacBook のハードウェアにあわせて /etc/pommed.conf を編集してください。サンプルファイルの /etc/pommed.conf.mac/etc/pommed.conf.ppc から作成します。

設定ファイルがなくても動作させることは可能で、デフォルトの設定でおそらく動作します。それから pommed の systemd サービス (pommed.service) を有効化起動してください。

ヒント: GNOMEKDE を使っている場合、キーボードの設定でマルチメディアキーなどを簡単に設定できます。
ノート: 他の設定情報については Xorg のページを見て下さい。
キーボードのバックライト

キーボードのバックライトは /sys/class/leds/smc::kbd_backlight によって制御されています。このディレクトリの brightness に適当な値を書き出して下さい。

acpilightAURkbdlightAUR (2015年から開発は停滞しています) を使ってスクリプトでスクリプトを実行してキーボードバックライトを制御することも可能です。適切な udev ルールや sxhkd を使うことで root にならなくてもキーボードの光量を変更できます。

2017年11月12日現在、MacbookPro 8,1 では acpilightAUR で制御できることをテスト済みです。

NVIDIA ノート

pommed でバックライトが正しく動作しない場合、nvidia-blAUR パッケージをインストールしているか確認して以下を

find . -name "*" -exec sed -i 's/mbp_backlight/nvidia_backlight/' '{}' \;

pommed の PKGBUILD の build() 関数の2行目に挿入してパッケージを再作成してください。フォーラムの投稿 より。

もしくは pommed の PKGBUILD の build() を修正する方法もあります:

find . -name "*" -exec sed -i 's/nvidia_backlight/apple_backlight/' '{}' \;

上の方法で上手く行かない場合は以下を試して下さい。

nvidia-settings を実行して、/etc/X11/xorg.conf ファイルを編集し、以下の行を Device セクションに追加:

Option "RegistryDwords" "EnableBrightnessControl=1"

保存して再起動し、バックライトボタンが動作するか確かめる。 詳しい情報は ubuntu macbook pro 5,5 にあります。

Wi-Fi

MacBook はモデルによって異なるワイヤレスカードが搭載されています。

あなたの MacBook にどのカードが使われているかは次のコマンドで簡単に確認できます:

# lspci | grep Network
  • Atheros のカードが載っている場合、何も設定しなくても全て上手く動くはずです。
  • Broadcom のカードが載っている場合、Broadcom BCM4312 のページに従って下さい。
  • 5.0 と 6.0 世代の MacBook には BCM43xx が載っていることがあります、Broadcom ワイヤレスページの broadcom-wl ドライバーの手順に従って下さい。再起動するとインターフェイスが入れ替わってしまうことがあるので udev ルールでインターフェイスを定義するのが良いでしょう。
  • 8.1 世代の MacBook には BCM4331 が載っており、Linux (3.0 と 3.1) にも Broadcom のプロプライエタリドライバーにもありません。ただし Linux 3.2 では実験的なサポートがあります。3.2 以前のカーネルでこのドライバーを実行するには、compat-drivers を使う必要があります。
  • 適切な broadcom の DKMS ドライバー (例: broadcom-wl-dkms) をインストールしても wifi カードが認識されない場合、ドライバーを再ビルドしてみてください (Dynamic Kernel Module Support を参照)。
ノート: 接続が頻繁に落ちる場合、Wi-Fi の電源管理を無効にする必要があるかもしれません。pm-utils を実行しているなら、以下の内容の実行可能ファイル /etc/pm/wireless を作成することで無線の電源管理を上書きすることができます:
#!/bin/sh
iwconfig wlp2s0 power off

電源管理

Powerdown はバッテリーの寿命を伸ばすスクリプトのセットで、簡単に設定することができます。powerdown をインストールしただけで MacBook Air 2013 なら約11時間もちます。もちろん電源管理における通常の推奨事項はすべてあてはまります。

カーネルパラメータacpi_osi= を追加することで MacBook Air 2013 のバッテリーの持ちを5時間から11-12時間まで伸ばすことができたという報告があります。詳しくは こちらのフォーラムの投稿 を見てください。

サスペンドとハイバネート

サスペンド (suspend to ram) とハイバネート (suspend to disk) は何も設定しなくても問題なく動作します:

$ systemctl suspend

フタを閉じてサスペンドしたときなど、特定の状況下でマシンが"復帰した後にすぐサスペンドする"という問題が報告されています。この問題は dconf-editor を使って "sleep-inactive-ac-type" オプションを "nothing" に設定することで解決します (オプションのパスは: org → gnome → settings-daemon → plugins → power)。

ハイバネーションの設定方法の詳細はサスペンドとハイバネートを見て下さい。特に、スワップパーティションかファイルのどちらかが必要です。

サスペンドした後、ノートパソコンが数秒で立ち上がってしまう場合、/proc/acpi/wakeup の中にある LID0 以外の全てを無効化すると良いかもしれません:

# echo XHC1 > /proc/acpi/wakeup
$ cat /proc/acpi/wakeup
Device	S-state	  Status   Sysfs node
P0P2	  S3	*disabled
EC	  S3	*disabled
HDEF	  S3	*disabled  pci:0000:00:1b.0
RP01	  S3	*disabled  pci:0000:00:1c.0
RP02	  S3	*disabled  pci:0000:00:1c.1
RP03	  S3	*disabled  pci:0000:00:1c.2
ARPT	  S4	*disabled  pci:0000:03:00.0
RP05	  S3	*disabled  pci:0000:00:1c.4
RP06	  S3	*disabled  pci:0000:00:1c.5
SPIT	  S3	*disabled
XHC1	  S3	*disabled  pci:0000:00:14.0
ADP1	  S3	*disabled
LID0	  S3	*enabled

永続的に無効化するには:

/etc/udev/rules.d/90-xhc_sleep.rules
# disable wake from S3 on XHC1
SUBSYSTEM=="pci", KERNEL=="0000:00:14.0", ATTR{power/wakeup}="disabled"

上記の設定が使えない場合、ARPT が無効になっていることを確認して、適切なルールを udev に追加してください:

SUBSYSTEM=="pci", KERNEL=="0000:03:00.0", ATTR{power/wakeup}="disabled"

環境光センサー

次のパスから値を読み出すことができます:

/sys/devices/platform/applesmc.768/light

上記のパスを "cat" すると (4,0) といったふうに値が返ってきます。スクリプトは2番目の値を無視して、1番目の値を環境光の明るさとして使います。

内蔵の環境光センサーを使って画面やキーボードのバックライトの輝度を自動的に調整したい場合、Lighter [3] (シンプルな perl スクリプト、簡単に調整可能) や Lightum [4] (Gnome や KDE が必要ですが Lighter よりも古く機能が揃っています)。

サウンド

ヒント:
  • MBP 5.5: カーネル 2.6.32 から何も設定しなくても動くようになりました - フロントスピーカーをアンミュートしてサウンドレベルを保存してください。
  • ALSA を使っている場合、ヘッドフォンジャックを使っている時は内蔵スピーカーが無効にならないことがあります。これを解決するには、alsamixer を使って "Auto-mute" を有効にしてください。

まず最初に ALSA の wiki ページを参照してください。それで何かが上手く動かない時は、以下を読んで下さい。

/etc/modprobe.d/50-sound.conf または /etc/modprobe.d/modprobe.conf を編集して次の行を加えて下さい:

options snd_hda_intel model=intel-mac-auto

これで MacBook のコーデックが自動的に指定されます。また MacBookPro5,X では、次を使うこともできます (ジャック出力は "HP" で制御されます):

options snd_hda_intel model=mb5

MacBookPro12,1 の場合:

options snd-hda-intel index=1,0

iMac8,1 を使っている場合、代わりに次を使って下さい

options snd-hda-intel model=mbp3 position_fix=2

ハードウェアにあわせて、他のオプションを指定してみることもできます。全ての利用可能な設定はカーネルドキュメントに記載されています。オンラインで閲覧可能です:

設定したら、再起動してください。

Bluetooth

ノート: Bluetooth はそのまま動くはずです。bluez 4.91 からデフォルトで hid2hci ユーティリティが使用されます。

Bluetooth の記事を見て必要なソフトウェアをインストール・設定してください。

Magic Mouse

マジックマウスは特に設定をしなくても問題なく動作します。スクロール速度や加速度などの設定を変えたい場合、カーネルドライバー (hid_magicmouse) に以下のようにパラメータを設定する必要があります。GUI は存在しません。使用しているマウスにあわせて modprobe の設定ファイルを作成してください:

/etc/modprobe.d/magicmouse.conf
options hid_magicmouse scroll-speed=55 scroll-acceleration=1 emulate_3button=0

上記の設定でスクロール速度が速くなり、急激な加速が有効になり、3ボタンマウスのエミュレーションが無効になります。利用可能なパラメータと設定は /sys/module/hid_magicmouse/parameters で確認できます。

再起動せずにコマンドラインから設定を変更したい場合、以下のようにコマンドを実行してください:

# echo 55 | sudo tee /sys/module/hid_magicmouse/parameters/scroll_speed
ノート: 4.10.10-1-macbook カーネルを使用している場合 Magic Mouse (hid_magicmouse) によってシステムがフリーズする可能性があります。ランダムに止まってしまう場合、別の有線マウスを使ってみてください。

ウェブカメラ

iSight

ノート: 2.6.26 から Linux カーネルには Linux UVC ドライバーがネイティブで含まれています。MBP 6,2+ の (カーネル ~2.6.37+) iSight は何も設定をせずとも動作し OS X のファームウェアを使う必要はありません。isight-firmware-tools は正常に動作しないときだけ使って下さい。

Macbook や pre 6,2 MacBook Pro (6,2 は2010年発売) の iSight ウェブカメラには Apple のプロプライエタリなファームウェアが必要ですが、このファームウェアは再配布することができません。そのためファームウェアを MacOS から抽出して Arch にロードさせる必要があります。

AUR から isight-firmware-toolsAUR をインストールしてファームウェアを抽出してください。この AUR パッケージにいは必要な udev ルールや ELF バイナリも含まれており、ファームウェアファイルを /lib/firmware/isight.fw に抽出さえすれば、コンピュータを起動するたびにファイルがロードされるようになっています (つまり /etc/udev/rules.d/isight.rules/usr/lib/udev/ift-load を使用します)。

手順:

まず OS X をインストールしたディスク上にある特定のファイルからファームウェアを取得しなくてはなりません。ファイルは /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport にあります。

ヒント: Mac OSX 10.6 (Snow Leopard) の AppleUSBVideoSupport ファイルは正しく動作しないことがあります。可能であれば、OSX 10.5 以前のファイルを使って下さい。

マルチブートしている場合 MacOSX ドライブをマウントするには:

# sudo mkdir /media/MacOSX
# sudo mount -t hfsplus /dev/sda2 /media/MacOSX

そして AUR から isight-firmware-toolsAUR をインストールします。

上述の OSX ディレクトリにある AppleUSBVideoSupport ファイルを探してください。Arch の方にコピーするか (どの OSX 環境でもかまいません、iMac など、システム特有のものではありません)、マルチブートしている場合、OSX ドライブをマウントして件のディレクトリまで移動してください (10.7 (Lion) ではディレクトリは /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS です)。ディレクトリの中まで進めたらドライバーを抽出します:

# ift-extract --apple-driver AppleUSBVideoSupport

抽出が完了したら、ファームウェアが存在するか確認します:

# ls /lib/firmware/isight.fw

ファームウェアが見つかったら、Mac を一度シャットダウンして起動しなおします (カメラのハードウェア状態をクリアするため)。再起動してはいけません

ブート時に自動でロードされるようになるはずです。ロードされない場合は uvcvideo モジュールを手動でロードすることができます。

様々なアプリケーションを使ってカメラをテストすることができます:

# mplayer tv:// -tv driver=v4l2:width=320:height=240:device=/dev/video0 -fps 30

スナップショットを撮るシンプルな方法は:

# mplayer tv:// -vf screenshot

s キーを押してスナップショットを撮影してください。ファイルのフォーマットは shot\d\d\d\d.png で標準出力に表示されます。

Facetime HD

Apple によれば、最近発売された MacBook には全て iSight のかわりに Facetime HD カメラが搭載されています。例えば以下の機種があてはまります:

  • iMac (21,5" mid 2011)
  • iMac (27" mid 2011)
  • MacBook Air (mid 2011)
  • MacBook Pro (15" early 2011)
  • MacBook Pro (17" early 2011)
  • MacBook Pro (13" early 2011)

使用している MacBook が上記の機種よりも新しい場合、おそらく Facetime HD カメラが装備されているはずです。

カメラを使うには bcwc-pcie-gitAUR パッケージをインストールする必要があります。facetimehd カーネルモジュールを使ってカメラのビデオサポートを有効にできます。

パッケージをインストールした後に Facetime カメラが機能するようにするにはシステムの再起動が必要です。

ノート: 機能するとはいえリバースエンジニアリングによって作成されたドライバーです。カメラを使っているプログラムが動作しているときに PC をサスペンドすることはサポートされていません。

温度センサー

温度を見るには lm_sensors をインストール・設定してください。Lm sensors のページを見て下さい。

カラープロファイル

Mac OS のカラープロファイルを使用することができます。

まず、AUR から xcalibAUR をインストールしてください。

次に Mac OS パーティションの /Library/ColorSync/Profiles/Displays/ ある規定のカラープロファイルを ~/colorprofiles/ などにコピーします。

MacBook モデルのプロファイルと一致するカラープロファイルが存在します、適切なプロファイルを選択してください:

  • Color LCD-4271800.icc CoreDuo CPU の MacBook Pro
  • Color LCD-4271880.icc Core2Duo の MacBook
  • Color LCD-4271780.icc CoreDuo または Core2Duo の MacBook (Pro ではない)
ヒント: Mac OS を使って Mac OS System PreferencesDisplays > Color セクションから現在のカラープロファイルを保存することもできます。この場合、ファイルは /Users/<username>/Library/ColorSync/Profiles に保存されます。

最後に次を実行してプロファイルを有効にできます:

# xcalib ~/colorprofile.icc
ノート: 上記のコマンドで設定されるカラープロファイルは現在のセッションにおいてのみ有効です。ログインするたびにコマンドを実行する必要があります。自動でコマンドを実行させる方法は自動起動を見てください。
警告: GNOME は xcalib によって設定されたプロファイルを戻してしまいます。GNOME の設定の Color を使ってプロファイルを設定することを推奨します。

Apple Remote

まず、LIRC の wiki ページを見て IR を操作するソフトウェア lirc を正しくインストール・設定してください。

そして /etc/conf.d/lircd を編集して LIRC が /dev/usb/hiddev0 (または /dev/hiddev0) を使うように設定してください。以下のようになります:

#
# Parameters for lirc daemon
#
LIRC_DEVICE="/dev/usb/hiddev0"
LIRC_DRIVER="macmini"
LIRC_EXTRAOPTS=""
LIRC_CONFIGFILE="/etc/lirc/lircd.conf"

irrecord (lirc をインストールして利用できます) を使ってリモートコントローラの信号にあうように設定ファイルを作成します (または、下の lircd.conf を使うこともできます):

# irrecord -d /dev/usb/hiddev0 -H macmini output_conf_file

lircd を起動して irw で動作するか確認してください。

/etc/lirc/lircd.conf の例:

begin remote

  name  lircd.conf.macbook
  bits            8
  eps            30
  aeps          100

  one             0     0
  zero            0     0
  pre_data_bits   24
  pre_data       0x87EEFD
  gap          211994
  toggle_bit_mask 0x87EEFD01

      begin codes
          Repeat                   0x01
          Menu                     0x03
          Play                     0x05
          Prev                     0x09
          Next                     0x06
          Up                       0x0A
          Down                     0x0C
      end codes

end remote

HFS パーティションの共有

まず、hfsprogs パッケージをインストールする必要があります。

パーティションのリストを表示してください:

# fdisk -l /dev/sda

出力例:

    Device  Boot     Start         End      Blocks   Id  Type
 /dev/sda1               1          26      204819   ee  GPT
 /dev/sda2              26       13602   109051903+  af  Unknown
 /dev/sda3   *       13602       14478     7031250   83  Linux
 /dev/sda4           14478       14594      932832+  82  Linux swap / Solaris

"Unknown" パーティションが OS X のパーティションで /dev/sda2 にあることがわかります。

/media に "mac" フォルダを作成してください:

# mkdir /media/mac

/etc/fstab の最後に次の行を加えて下さい:

/dev/sda2    /media/mac     hfsplus auto,user,rw,exec   0 0

マウントして下さい:

# mount /media/mac

確認してください:

# ls /media/mac

HFS+ パーティション

ジャーナリング

HFS+ パーティションは現在 Mac OS X のデフォルトになっていますが、Linux では完全なサポートがなくデフォルトでは読み込み専用でマウントされます。HFS+ パーティションに書き出しを行うには、ジャーナリングを無効にする必要があります。これは Mac OS X のディスクユーティリティを使うことで可能です。詳しくは Apple のサポートページ を参照してください。もしくはコマンドラインから実行してください:

パーティションを確認:

$ diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *750.2 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS OSX                     149.5 GB   disk0s2
   3:                  Apple_HFS Macintosh HD            599.2 GB   disk0s3
   4:                 Apple_Boot Recovery HD             650.0 MB   disk0s4

この例では Macintosh HD という名前の disk0s3 パーティションを使います。ジャーナリングが有効になっているかどうか確認するために次を実行:

$ diskutil info /dev/disk0s3 | grep -i journal
File System Personality:  Journaled HFS+
Name (User Visible):      Mac OS Extended (Journaled)
Journal:                  Journal size 49152 KB at offset 0x1176000

ジャーナリングを無効化するには次を実行:

$ sudo diskutil disableJournal disk0s3
Password:
Journaling has been disabled for volume Macintosh HD on disk0s3

ジャーナリングが無効になったことを確認するため info コマンドを再度実行:

$ diskutil info /dev/disk0s3 | grep -i journal

何も出力されなければ、ジャーナリングは無効になっています。

ジャーナリングが無効にならない場合、/etc/fstabauto,user,rw,execauto,user,force,rw,exec に変更してマウントしてみてください。

Yosemite 以降

Yosemite から HFS+ パーティションは CoreStorage ボリュームの中に入っています。CoreStorage ボリュームを確認してください:

# fdisk -l /dev/sdX
 Disk /dev/sdX: 298.1 GiB, 320072933376 bytes, 625142448 sectors
 Units: sectors of 1* 512 = 512 bytes
 Sector size (logical/physical): 512 bytes / 4096 bytes
 I/O size (minimum/optimal): 4096 bytes / 4096 bytes
 Disklabel type: gpt
 Device      Start      End         Sectors    Size     Type
 /dev/sdX1   40         409639      409600     200M     EFI System
 /dev/sdX2   409640     623872871   623463232  297.3G   Apple Core storage
 /dev/sdX3   623872872  625142407   1269536    916.0M   Apple boot

HFS+ は2つのボリュームヘッダを使用しています。デバイス内の1024バイトのヘッドとデバイスの終末にある1024バイトのヘッダです。CoreStorage ボリュームに含まれている HFS+ パーティションでは、パーティションの末尾が /dev/sdX2 パーティションの末尾の1024バイトと異なっています。修正するにはマウントするときに sizelimit=X を指定する必要があります。

sizelimit に指定する値を確認するには:

  1. testdisk /dev/sdX を実行してドライブを選択。
  2. EFI GPT を選択。
  3. Analyse を選択して Quick Search を実行。

出力例:

TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org
 
Disk /dev/sdX  - 320 GB / 298 GiB - CHS 38913 255 63
    Partition     Start      End        Size in sectors
P  EFI System     40         409639     409600  [EFI]
P  Mac HFS        409640     623147815  622738176
P  Mac HFS        623872872  625142407  1269536

CoreStorage ボリュームを含まない HFS パーティション自体の出力が確認できます。セクタサイズ (上記の例では 622738176) を論理セクタサイズのバイト数 (例えば 512) でかけてください: 622738176 * 512 = 318841946112

計算した値で sizelimit=X オプションを使ってディスクをマウント:

# mount /dev/sdX -t hfsplus -o ro,sizelimit=318841946112

ホームシェアリング

UID の同期

OS X

ノート: OS X でも Arch Linux でも、UID や GID の操作は新しいユーザーアカウントを作成したすぐ後に行うことを強く推奨します。最初から OS X をインストールした場合、最初にアカウントにログインした後に操作できるはずです。
手順 1: UID と GID を変更する

Leopard 以前

  1. /Applications/Utilities フォルダの NetInfo Manager を開く。
  2. ウィンドウ下部にある鍵をクリックして、ユーザーアカウントのパスワードあるいは (root アカウントを作成した場合) root パスワードを入力して、ユーザーアカウントのトランザクションへのアクセスを有効にしてください。
  3. /users/<new user name> を開いてください (<new user name> は Arch と共有するフォルダの読み書き権限を持っているアカウントの名前に置き換えてください)。
  4. UID の値を 1000 に変更 (Arch で作成した最初のユーザーで使われるデフォルト値)。
  5. GID の値も 1000 に変更 (Arch で作成した最初のユーザーで使われるデフォルト値)。
  6. /groups/<new user name> を開いてください。変更が自動的に保存されます。
ノート: トランザクションが許可されないというエラーメッセージが表示される場合、一度ログアウトしてからログインし直してください。

Leopard

Leopard には、NetInfo Manager アプリケーションが存在しません。UID の同期に必要な手順は異なります:

  1. System Preferences を開く。
  2. Users & Groups をクリック。
  3. ペインのロックを解除してください。
  4. ユーザーを右クリックして Advanced Options を選択。
  5. User ID フィールドの値をメモしてください。後で必要になります。UID と GID の値を両方変更して Arch の共有したいアカウントの UID と GID にしてください (Arch では最初に作成されたユーザーの UID と GID は 1000 になります)。
手順 2: "Home" のパーミッションを変更する
  1. /Applications/Utilities フォルダの Terminal を開く。
  1. 以下のコマンドを入力してホームフォルダのパーミッション設定を戻してください。<your user name>, <your user group>, <your old UID> は UID の値を変更したユーザーの名前、GID を変更したグループの名前、変更する前の UID 番号にそれぞれ置き換えてください。
# find /User/<your user name> -user <your old UID> -exec chown <your user name>:<your user group> {} \;

Arch

Arch Linux で UID を同期する際は、新しいユーザーアカウントを作成するときに行うのが推奨されます。そのため Arch Linux をインストールしてすぐに同期するのを推奨します。

/etc/fstab のエントリを編集して Arch のホームを Mac OS のホームで置き換えます。

起動前の EFI の待機を止める

起動する前に"白画面"で Macbook が30秒も待機してしまう場合、ファームウェアに起動するパーティションを伝える必要があります。

Mac OS X を起動してください。インストールしていない場合は、インストール DVD を使うか (言語を選択して、Utilities->Terminal をクリック)、または他の MacBook の Mac OS X を使います (2つのコンピュータを firewire か thunderbolt で接続して、T を押しながら別の MacBook を起動し、Options を押しながら自分の MacBook を起動する)。

MacBook に Mac OS X ターミナルを呼び出したら、ブートパーティションが EFI かどうかに応じて、それぞれ異なるコマンドを root で実行してください:

# bless --device /dev/disk0s1 --setBoot            # if the booting partition is EFI

もしくは

# bless --device /dev/disk0s1 --setBoot --legacy   # if the booting partition is not EFI

(GRUB や EFI が sda1 にある場合。sdb2 にあるときは /dev/disk1s2 などにしてください)。https://bbs.archlinux.org/viewtopic.php?pid=833215https://support.apple.com/kb/HT1533 も参照。

起動音を消す

起動音のチャイムのボリュームは EFI 変数の SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82 によって制御されています。ミュートにするには:

# printf "\x07\x00\x00\x00\x00" > /sys/firmware/efi/efivars/SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82

もしくは、Mac OS X インストールディスクを使ってミュートすることもできます。インストールディスクで起動して、言語を選択し、Utilities > Terminal をクリックして、次を入力 (ボリュームの値は自由に設定してください):

# /usr/sbin/nvram SystemAudioVolume=%01
ノート: SystemAudioVolume キーに指定する値の形式は MacBook の機種や OS X のインストールメディアのバージョンによって変わります。上記のコマンドが失敗する場合、値をダブルクォートで囲ってみてください。

kworker が CPU を占有してしまう

Yosemite を使っている場合、kworker の CPU 使用量が跳ね上がることがあります [5]。これは ACPI の割り込みが暴走しているのが原因です。

最近の ACPI の割り込みの数を調べることで問題が起こっているかどうか確認できます:

$ grep . -r /sys/firmware/acpi/interrupts/

特定の割り込み (GPE66 の場合が多いです) がおかしくなっているようだったら、それを無効化します (XX は暴走している割り込みに置き換えて下さい):

# echo "disable" > /sys/firmware/acpi/interrupts/gpeXX

間違った ACPI 割り込みを無効化してしまうと他の問題が噴出するので、自己責任で行って下さい。上記のコマンドで問題が解決する場合、起動時に自動的に割り込みを無効化する systemd サービスを作成する方法が書かれた こちらのスレッド を見て下さい。

rEFIt

ノート:
  • rEFIt の一種の後継である、rEFInd についても知っておくと良いでしょう。
  • rEFIt は必須ではありません。起動毎に OS X と Arch Linux を選択するメニューを表示するだけです。

詳細は refit myths を見て下さい。

OS X で、Refit のホームページ から ".dmg" をダウンロードしてインストールします。

ノート: Arch のインストールのために既にハードディスクをパーティションしている場合、rEFIt はデフォルトで有効にならないことがあります。/efi/refit/enable.sh スクリプトを実行してください。

Terminal を開いて以下を入力してください:

cd /efi/refit;
./enable.sh

rEFIt の問題

Arch や rEFIt をインストールした後に問題が発生する場合、特に起動する OS が正しく表示されなかったり GRUB のプロンプトでスタックして以下のように表示する場合:

GRUB>_

次のリンクを見て下さい: http://mac.linux.be/content/problems-refit-and-grub-after-installation

Arch のライブ CD を起動して chroot して gptsync を使って GRUB を再インストールする方法が載っています。Debian 環境におけるコマンドを自分の Arch 環境にあわせて修正できる上級者向けです。GRUB を間違ったところにインストールしないように注意してください。

gptsync のコピーが必要な場合、次の URL から wget できます: http://packages.debian.org/sid/gptsync 。64ビットの場合:

$ wget http://ftp.us.debian.org/debian/pool/main/r/refit/gptsync_0.14-2_amd64.deb

i386 の場合:

$ wget http://ftp.us.debian.org/debian/pool/main/r/refit/gptsync_0.14-2_i386.deb

.deb パッケージなので deb2targzAUR プログラムが必要です。

Mavericks のアップグレードが Arch のブートオプションを破壊する

Linux のブートパーティションを別にしてマルチブートしている場合、OSX Mavericks のアップグレードによって Apple のリカバリブートパーティションでブートパーティションが上書きされていますことがあります。こうなると rEFIt/rEFInd の Archlinux 起動オプションが破壊されます。この状況を解決するにはブートパーティションを別にするのをやめて EFI system partition (ESP) を使ってブートローダーをインストールするのがベストです。また、開発が停止している rEFIt ではなく rEFInd を使うことが推奨されます。

ブートローダーが grub2 の場合:

Arch LiveCD を使ってシェルを起動し、破壊された Archlinux 環境に chroot します。

ESP を /boot にマウントします。

fstab を編集して古いブートパーティションを削除して ESP を新しいブートパーティションにします。そして ESP を新しい /boot パーティションにマウントします:

# mount -a

linux を再インストール:

# pacman -S linux

/boot に新しい initramfs と vmlinuz を作成:

# mkinitcpio -p linux

grub をインストール:

# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub --recheck --debug

新しい grub.cfg ファイルを作成:

# grub-mkconfig -o /boot/EFI/grub/grub.cfg

grub.cfggrubx64.efi と同じディレクトリにある必要があります。

rEFInd に付いている mkrlconf.sh を実行して新しい refind_linux.conf ファイルを /boot に生成します。

chroot 環境を終了します。

再起動してください。rEFInd に Archlinux の新しいエントリが追加され、Archlinux を起動することができるはずです。

モデルごとの情報

MacBook

April 2016 12" - バージョン 9,1

  • intremap=nosid カーネルオプションを指定することで EFI から USB ブートできます (Ubuntu の場合、noacpi nomodeset も必要なようです)。起動時に Alt キーを押すのを忘れないでください。
  • ワイヤレスカードは brcmfmac で特に設定しなくても動作します。
  • サスペンドやハイバネートは動作しません。NVMe が復帰しないことが問題です。外付けドライブから起動する場合、サスペンドとハイバネートは問題なく動作します。
  • 録音は問題なく動作します。再生自体も動作はしますが、内蔵スピーカーは機能しません (解決方法もまだありません)。
  • キーボードやタッチパッドは動作しません。DSDT をハックする開発中のドライバーなら動作します: macbook12-spi-driver-dkmsAUR。ときどきタッチパッドが動作しなくなることがありますが、rmmod applespi && modprobe applespi でドライバーをリロードすることで解決します。
  • キーボードバックライトは動作しません (解決方法もまだありません)。

Mid 2007 13" - バージョン 2,1

ノート: 201212 ISO イメージでテスト済み。

古い Macbook は32ビットの EFI を使っているため、通常のインストールイメージは認識されません。ディスクから UEFI サポートを削除するか (Unified_Extensible_Firmware_Interface#オプティカルメディアから UEFI ブートサポートを削除する) またはディスクの32ビット EFI バージョンを作成する必要があります。以下では最初の方法を使って、BIOS モードで起動します。もうひとつの方法を試したい場合は、まず Unified_Extensible_Firmware_Interface#ISO から UEFI ブータブル USB を作成する を読んで下さい。

まず必要に応じてハードディスクを準備します。ここでは "Linux のみインストール" を行います:

/dev/sda1 HFS+ AF00 200M -> EFI boot system on Apple HFS+ partition
/dev/sda2 ext4 8300 147G -> arch system
/dev/sda3 swap 8200 1G   -> swap

hfsprogs パッケージには HFS/HFS+ ファイルシステムを扱うためのツールが含まれています。rEFInd ブートローダーは自動的に hfsprogs を認識します。EFI ブートローダーのパーティションは通常 FAT32 (vfat) パーティションです。rEFIt を最初に試す場合、HFS+ ファイルシステムを動作させる必要があるので、そのままにしておきます。

マウントポイントは:

/dev/sda2 -> /
/dev/sda1 -> /boot

使用しているブートローダーは rEFIt ではなく rEFInd です。インストール方法は rEFInd のホームページにあります。通常は rEFInd をコピーすることでインストールできます:

mkdir /boot/EFI
cp -vr /usr/share/refind/drivers_ia32 /boot/EFI/refind/
cp -vr /usr/share/refind/tools_ia32 /boot/EFI/refind/
cp -vr /usr/share/refind/fonts /boot/EFI/refind/
cp -vr /usr/share/refind/icons /boot/EFI/refind/
cp -v /usr/share/refind/refind_ia32.efi /boot/EFI/refind/
cp -v /usr/share/refind/refind.conf-sample /boot/EFI/refind/refind.conf
cp -v /usr/share/refind/refind_linux.conf-sample /boot/refind_linux.conf
ノート: 古い MacBook の EFI は32ビットであるため32ビット版の Arch と refind を使っています。32ビットの rEFInd で64ビットの Arch を起動できるかは不明です。

問題はシステムが EFI モードではなく BIOS 互換でモードで起動するということです。('modprobe efivars' を実行しても) EFI 変数が使えないため、efibootmgr を使用することができません。システムのインストール時に mactel-bootAUR をインストールしてください。hfs-bless ユーティリティを使うことで EFI ブートローダーを立ち上げることができます。以下のように呼び出します:

hfs-bless /boot/EFI/refind/refind_ia32.efi

Since the Linux kernel does come with EFI stub enabled, it seems a good idea to run it through a bootloader first. Especially if it runs not out of the box. But using rEFInd makes GRUB (or any other bootloader) obsolete, because of that.

ノート: In the refind_linux.conf you add any kernel option you may want as long as you use the EFI stub of your kernel. In refind.conf you adjust your needs for the bootloader itself, like menu entries. If you use them (menu entries), rEFInd should not look for these EFI stub kernels itself, so blacklist the directories used in here, like /boot/.

Not running out of the box is unfortunately the initial stage for the kernel. Since we installed it in BIOS mode, two modules are missing to grant access to the root partition while booting. Hence the 'initfsram-linux.img' can not be found/loaded. Adding the following modules to your 'MODULES' line in /etc/mkinitcpio.conf solved this (original post).

/etc/mkinitcpio.conf
MODULES="ahci sd_mod"

カーネルイメージを再生成:

# mkinitcpio -p linux

The bootloader rEFInd can scan kernels even out of the '/boot/efi/...' directory and assumes an efi kernel even without the extension '.efi'. If you do not want to try out special kernels, this should work without the hassle to copy each kernel after building to some spot special.

If you happen to get multiple entries for one boot image, it often results of a previous installation of a bootloader within the MBR. To remove that, try the following - taken from the original post. This is valid for GPT partitioned discs, so please check your environment and save your MBR first.

# dd if=/dev/zero of=/dev/sda bs=440 count=1

MacBook Pro

Early 2015 13"/15" - バージョン 12,x/11,4+

ワイヤレス

brcmfmac ドライバーが動作します (2015年11月20日現在)。5Ghz 帯を使うには新しいファームウェアが必要です ([6] を参照)。

Bluetooth

Bluetooth はカーネル 4.4.0 から完全にサポートされています。

サスペンド & 電源オフ (11,4+)

11,4 や 11,5 の MacBook Pro はデフォルトのカーネルだと正しくシャットダウンしたりサスペンドすることができません。この問題の詳細は Bug 103211 にあり、一時的なパッチは linux-macbookAUR でインストールできます。Linux 4.13.0 からメインラインにパッチがマージされています。

キーボード & タッチパッド

ハプティックフィードバックはトラックパッドにファームウェアが組み込まれているため何も設定しなくても動作します。

マルチタッチのサポートについては複数のドライバーが利用できます。以下は MacBookPro12,1 で動作することを確認済みです。

xf86-input-libinput を使う場合、以下の設定で OS X の機能をエミュレートできます。詳しくは libinput(4) を見てください。

/etc/X11/xorg.conf.d/90-libinput.conf
Section "InputClass"
    Identifier "libinput touchpad catchall"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
    Option "NaturalScrolling" "true"
EndSection

xf86-input-synaptics を使う場合、タッチパッドを完全に動作させるには以下の設定が必要です。

/etc/X11/xorg.conf.d/60-magictrackpad.conf
Section "InputClass"
    Identifier "Trackpad"
    Driver "synaptics"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
EndSection

さらに、US/ANSI キーボードの場合、チルダキー (Esc と Tab の間にある ~ のキー) が < や > として登録されてしまうという問題があります。以下の設定ファイルで問題は解決します。

/etc/modprobe.d/hid_apple.conf
options hid_apple iso_layout=0

昔のカーネル用のパッチなど、詳しくは カーネルの bugzilla を見て下さい。

グラフィック

Intel のグラフィックカードを使う場合、xf86-video-intel をインストールしてください。OpenGL/3D のサポートに関する情報は Intel Graphics を見て下さい。

デュアルグラフィックについては 11,3 のグラフィックセクションを見て下さい。

ノート:
  • カーネル 4.2 から acpi_backlight, i915.lvds_downclock, i915.enable_ips, intel_iommu カーネルパラメータは必要なくなっています。
  • Xorg でちらつきが発生したりランダムにフリーズする場合、xf86-video-intel を完全に (設定ファイルも) 削除してみてください。Xorg はデフォルトの modesetting DDX ドライバーを使うようになります。詳しくは Intel Graphics を参照。
  • それでもちらつきが消えない場合、カーネルパラメータで i915.enable_rc6 を 0 に設定して Intel Graphics の省電力機能を無効化することで解決する場合があります。
Apple Thunderbolt 2 ギガビットイーサネットドングル

MacBookPro12,1 (# dmidecode -s system-product-name の出力で確認できます) にはバグが存在 (カーネル 4.0.4) し起動時にはドングルが認識され動作するのに、ホットプラグすることができずに、切断してから再接続したときに認識・動作しません。次のカーネルバグレポートを参照: https://bugzilla.kernel.org/show_bug.cgi?id=100191

2012 - 2014 モデル

MacBook Air

Early 2014 11" - バージョン 6,1

2013年バージョンとほとんど同じで、唯一と言っていい違いはプロセッサーが少し速くなったことだけです。バージョン番号は2013年版から変わっていません。

このページやフォーラムスレッドの MBA 2013 13" の記述に従うことで間違いなく動作します。 Bluetooth は2013年版では動作しないと報告されてたのに対して、ほとんど同じはずなのに2014版では問題なく動作します。

ノート: USB ディスクにローカルリポジトリを構築しない場合、Arch Linux を簡単にインストールするには USB からイーサネットに変換するアダプタかカーネルによってネイティブでサポートされている USB ワイヤレスアダプタが必要です。broadcom-wl-dkms パッケージをインストールしないと内蔵されているワイヤレスアダプタを動作させることはできないためです。

未解決の問題:

  • ウェブカメラのドライバーがまだ存在しない。
  • rEFInd が起動を始めるのに30秒もかかる。bless を使うと rEFInd のロードを止められますが、再インストールが必要です。

Mid 2013 13" - バージョン 6,2

Dedicated forum thread

インストールとブート

Booting from a normal 2013.6 USB key works fine, but I could not seem to get either GRUB or Syslinux working.

I was able to boot by first installing Arch Linux following the Macbook guide at the wiki (having a separate FAT32 /boot partition). Skip the bootloader installation.

Installing rEFInd from OS X (important!) and installing the EFI stub loader made me able to boot fine.

Dedicated thread.

ノート: Installing rEFInd from Linux (or from OS X, but to the esp) also works fine
Arch だけのインストール

以下の方法では refind を使わず GRUB を使って EFI を起動します。パーティションは以下の通りです:

/dev/sda1 200M Microsoft basic data
/dev/sda2 256M Linux filesystem
/dev/sda3 4G Linux swap
/dev/sda4 108.6G Linux filesystem

EFI では sda1 も HFS+ パーティションにできます。上記の例では FAT32 (vfat) を使っています。スワップは任意ですが、ハイバネートを使う場合は必須です。sda5 をホームパーティションとして追加することもできます。

フォーマットしてマウント:

# mkfs.vfat -F 32 /dev/sda1
# mkfs.ext2 /dev/sda2
# mkswap /dev/sda3
# swapon /dev/sda3
# mkfs.ext4 /dev/sda4
# mount /dev/sda4 /mnt
# mkdir /mnt/boot
# mount/dev/sda2 /mnt/boot
# mkdir /mnt/boot/efi
# mount /dev/sda1 /mnt/boot/efi

インストールガイドに従ってインストールを行ってください。initramfs を生成して root のパスワードを設定したら以下のように GRUB をセットアップします:

# pacman -S grub efibootmgr
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --recheck --debug
# grub-mkconfig -o /boot/efi/EFI/grub/grub.cfg
# cp /boot/efi/EFI/grub/grub.cfg /boot/grub/grub.cfg
# cp /boot/efi/EFI/grub/grubx64.efi /boot/efi/EFI/boot/bootx64.efi}}

その後 exit/unmount/reboot してください:

# exit
# umount -R /mnt
# reboot
安定性の問題
ノート: カーネルパラメータに libata.force=1:noncq を指定することで問題は解決します。

システムがしばらくフリーズして、ネットやディスクなどのアクセスが止まってしまうことがあります。ディスクや CPU に負担をかけているときに発生します。また、X が起動できずに画面に以下のようなメッセージが何度も表示されることがあります:

ata1.00: failed command: WRITE FPDMA QUEUED
ata1.00: cmd 61/08:f0:10:8c:c2/00:00:0b:00:00/40 tag 30 ncq 4096 out
res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
ata1.00: status: { DRDY }

SMART のテストを実行しても問題は検出されません: smartctl -a

There are some messages in my boot that indicate this could be disk and/or ACPI related.

These are with 2013-06 ISO, 3.9.7-1 2013 x86_64 kernel.

journalctl -b Seems to only work with the headphone jack, not with the speakers.

dmesg

ノート: Macbook Air early 2014 でも同じ問題があります。(macOS Sierra に移行して) ファームウェアをアップデートすることで問題は解決します。
Marvell ATA サスペンドバグ

Marvell 128・256 GB ドライブが載っている 2013 Macbook Air を使っている場合、pm-suspend を使った後で以下の ata エラーが表示されることがあります:

ata1: exception Emask 0x10 SAct 0x0 SErr 0x10000 action 0xe frozen
ata1: irq_stat 0x00400000, PHY RDY changed
ata1: SError: { PHYRdyChg }
ata1: hard resetting link
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
ata1.00: unexpected _GTF length (8)
ata1.00: unexpected _GTF length (8)
ata1.00: configured for UDMA/33
ata1: EH complete

[7] に書かれている Patrick と Tejun のコメントを見てください。

サスペンド/レジューム

サスペンドから復帰した後に輝度が 0% か 100% のどちらかになります。カーネルが修正されるまでは、mba6x_bl-dkmsAUR をインストールして patjak の fix を使って下さい。Patjak の github は [8] にあります。

WiFi

WiFi は設定をしなくても動作します。broadcom-wl-dkms をインストールしてネットワークに接続します。

タッチパッド

カーネル 3.10.3 からタッチパッドは xf86-input-synaptics で完全に動作します。

オーディオ

Linux 3.12 からサウンドは設定をしなくても動作します。alsa-utils だけでは音が鳴らない場合は、以下のエントリで /etc/asound.conf を作成する必要があるかもしれません:

defaults.pcm.card 1
defaults.pcm.device 0
defaults.ctl.card 1

Mid 2012 13" — バージョン 5,2

arch カーネル 3.5 のデフォルトのブートメディアではカーネルパニックが起きます。intremap=off を追加することで直ります。さらに、applesmc モジュールのロードに問題があります (温度センサー、ファン、キーボードのバックライトが動作しません)。これらの問題は linux 3.6-rc4 メインラインカーネルで修正されています (テスト済み)。

Mid 2012 11.5" — バージョン 5,1

スリープ状態から復帰したときに X11 に問題が発生する場合 (黒画面になる、コンソールでマウスカーソルが動かないなど)、xf86-input-synaptics を削除して xf86-input-mtrack-gitAUR をインストールしてください。このパッケージは以下のようなエラーを修正します:

 (EE) [dix] bcm5974: unable to find touch point 0

同じトラックパッドを使っているバージョン 5,2 にも上記は適用できます。

Mid 2011 — バージョン 4,x

カーネル 3.2 から何も設定しなくても動作します。Archboot を使用して、GRUB をインストールし EFI を使うことが推奨されています。

Early 2008 — バージョン 1,1

ワイヤレスアダプターを動作させるために b43-fwcutter (もしくは b43-firmwareAUR) パッケージが必要なことを除けば、全て問題なく動作します。

このモデルには USB ポートが一つしかないので、Arch をインストールするにはセルフパワーの USB ハブを使うのが楽です。USB ネットワークアダプタ (USB ポートに接続できる無線または ethernet アダプタ) と Arch のインストールメディアを USB ハブに接続します。

起動後に無線ネットワークをスキャンしても何も結果が得られない場合、一度 b43ssb モジュールをアンロードしてから再度ロードし直して下さい:

# rmmod ssb
# rmmod b43
# modprobe b43

dmesg のログから DMA の問題を確認できるかもしれません。

モジュールを再ロードしたら無線ネットワークがスキャンできるようになっても、一部のネットワークにしか接続できないことがあります。b43 モジュールに pio=1,qos=0 オプションを追加することで問題は解決します。詳しくは http://crunchbang.org/forums/viewtopic.php?id=17368 を参照。

BCM4321 チップセットが搭載された13インチの MacBook Air 1,1 で動作することを確認しています。

参照