# MacBook (日本語)

関連記事

- インストールガイド
- ビギナーズガイド
- 全般的な推奨事項
- MacBook 4,2 (late 2008)
- MacBook 5,2 (early-mid 2009)
- MacBook Pro 7,1
- MacBook Pro 8,1 / 8,2 / 8,3 (2011)
- MacBook Pro 9,2 (Mid-2012)
- MacBookPro10,x
- MacBookPro11,x

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

## 概要

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

1. OS X のインストール: 最終的な構成をどうしたいのかに関わらず、出来る限り OS X のクリーンインストールから始めて下さい。
2. ファームウェアのアップデート: アップデートを行うことでエラーが減りハードウェアの新しい機能が使えるようになるはずです。
3. パーティション: このステップでは OS X パーティションを縮小または削除して Arch Linux のためのパーティションを作成します。
4. Arch Linux のインストール: 実際にインストールを行います。
5. インストール後の設定: MacBook の特有設定。

Tip: rEFIt は (Mac を含む) EFI ファームウェアのコンピュータ向けの人気のブートローダーです。インストールの間ならいつでもインストールすることが可能です。詳しい説明は #rEFIt を見て下さい。

## Mac OS X のインストールとファームウェアのアップデート

OS X をインストールする方法については Apple による資料を参照してください。OS X をインストールしたら、アップルメニュー > ソフトウェアアップデート を開き、全てのソフトウェアを更新しましょう。ソフトウェアアップデートを実行した時は、コンピュータを再起動する必要があります。再起動後、ソフトウェアアップデートをもう一度実行して全ての更新がインストールされたことを確認してください。

OS X をインストールしておくつもりがない場合は、以下のファイルのバックアップを作成してください:

    /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport

後で iSight を使うのにこのファイルが必要になります。

    /Library/ColorSync/Profiles/Displays/<FILES HERE>

カラープロファイルを調整するにはこのファイルが必要です。

## パーティション

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

- EFI: ディスクの最初にある 200 MB のパーティション。パーティションツールによっては msdos や FAT と認識されることがあり通常は #1 とラベル付けされます。
- Mac OS X: ディスクの残り容量全てを占めている (HFS+) パーティション。通常は #2 とラベルが設定されます。
- Recovery: リカバリーパーティション (Mac OS X 10.7 以上のみ)。

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

- Arch Linux だけのシングルブート。
- OS X と Arch Linux のデュアルブート。

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

### Arch Linux のみ

一番簡単です。Arch Linux がインストールできる他のハードウェアと同じようにパーティションをすれば、ほとんど上手くいきます。特筆すべきは MacBook のファームウェアの起動音です。このサウンドをオフにするには: インストールを始める前に OS X でボリュームをミュートにしてください。MacBook のファームウェアは (可能であれば) OS X の値を使います。OS X パーティションを取り除くと、マシンのファームウェアを簡単に更新する方法がなくなるので注意してください。外付けドライブを使って OS X を起動する必要があります。 EFI モード (推奨) もしくは bios 互換モードで起動することができますが、よくわからない場合は EFI を選択してください。

EFI を使ってインストールするには、EFI ブータブルメディアを作成する手順に従って下さい。完了したら EFI モードで USB キーがちゃんと起動しているかどうかを EFI カーネル変数をチェックして確認してください。EFI パーティションは vfat ではなく `hfsplus` ファイルシステム (hfsprogs) でフォーマットする必要があります。そうしないと mactel-boot が失敗します。Macbook では efibootmgr は使用できません。

#### EFI

- 動作させるには GRUB が必要です。
- インストールメディアを起動して tty を切り替えて下さい。
- cgdisk (gptfdisk パッケージ) を実行してください。
- 必要なパーティションを作成してください。

Note:

- スワップパーティションは任意です。RAM が 4GB 以上あるマシンでは、スワップパーティションがないほうが良いパフォーマンスを期待できます。また、後でスワップファイルを作ることも可能です、スワップファイルを参照してください。
- パーティションに関する詳細は、Partitioning (日本語) を見て下さい。

シンプルな例 (LVM や crypto なし):

    partition  mountpoint  size    type  label
    /dev/sda1  /boot/efi   200MiB  vfat  EFI
    /dev/sda2  /boot       100MiB  ext2  boot
    /dev/sda3  -           adjust  swap  swap
    /dev/sda4  /           10GiB   ext4  root
    /dev/sda5  /home       remain. ext4  home

- 完了したら、#インストール に進んで下さい。

#### BIOS 互換

- インストールメディアを起動して tty を切り替えて下さい。
- parted を起動して下さい。パーティションテーブルを msdos に変更してから通常通りにパーティションしてください。GRUB は GPT に対応しています。

- 必要なパーティションを作成してください。

- 完了したら、#インストール に進んで下さい。

### Mac OS X と Arch Linux

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

Warning: この方法は OS X をクリーンインストールした後にするのが強く推奨されます。以下の方法を既存のシステムで行うと予期せぬ結果を招くおそれがあります。
Note: 問題が発生する場合は、gparted を使ってみて下さい (Disk Utility や cgdisk を使わない)。gparted は OS X パーティションを縮小してインストールのための Linux パーティションを作成できます。

手順:

- OS X で、Disk Utility.app を実行してください (`/Applications/Utilities` にあります)。

- 左のカラムからパーティションするドライブを選択してください (パーティションではありません)。右のパーティションタブをクリックしてください。

- ボリュームスキームからリサイズするボリュームを選択してください。

- OS X パーティションと Arch Linux パーティションにそれぞれ容量をどれくらい割り当てるか決めて下さい。ソフトウェアアプリケーションやファイルの数にもよりますが、標準的な OS X のインストールには 15-20 GiB が必要だということを覚えておいて下さい。

- 最後に、サイズのところに OS X パーティションに割り当てる新しい (縮小した) サイズを入力して適用をクリックします。これで空きスペースから新しいパーティションが作成されます。このパーティションは後で削除します。

Note: OS X と Arch Linux で共有パーティションを作りたい場合は、ここで追加の手順が必要になります。#HFS パーティションの共有 を見て下さい。

- 上記作業が完了したら、次に進んで下さい。もし失敗した場合は、先に OS X の中からパーティションを修復する必要があるかもしれません。

- ブート中に alt キーを押して Arch インストール CD を起動して下さい。あなたが選択したブート方法によって以下の方法のどちらかに従って下さい。

#### EFI

- cgdisk を実行してください。

- Disk Utility.app で作成したパーティションを削除して Arch Linux に必要なパーティションを作成してください。OS X ではパーティションの後に 128 MiB の隙間があると良いので、最後の Mac OS X パーティションの後に最初のパーティションを作成する際、cgdisk がパーティションの最初のセクターを聞いた時に +128M と入力してください。シンプルな例 (LVM や crypto なし):

Note:

- スワップパーティションは任意です。RAM が 4GB 以上あるマシンでは、スワップパーティションがないほうが良いパフォーマンスを期待できます。また、後でスワップファイルを作ることも可能です、スワップファイルを参照してください。
- 一番楽なデュアルブートの選択肢は OSX の中から root ディレクトリ (install.sh のデフォルト) に refind をインストールすることです。その後、インストールの tarball からドライバーフォルダを新しい refind の場所にコピーして、refind.conf の "scan_all_linux_kernels" と "also_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 を見て下さい)。
- パーティションに関する詳細は、Partitioning (日本語) を見て下さい。
- 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 を実行してください。

- Delete the empty space partition and partition the space as you would for any other installation. Note that MBR is limited to 4 primary partitions (including the efi partition). That leaves 2 primary partitions for arch. One strategy is to have a system and home partition, and use a swap file (I have not tried to use logical partitions). Another is to dedicate one partition to a shared partition (see below).

- Next, create new filesystems on those partitions which need them, especially the partition which will contain /boot. If you are not sure how to do this using `mkfs.ext2` (or whatever), run `/arch/setup` and work through until you get to Prepare Hard Drive and use the "Manually configure block devices..." option, then exit the installer. This is necessary so that rEFIt will set the right partition type in the MBR in the next step (without an existing filesystem, it seems to ignore the partition type set by parted), without which GRUB will refuse to install to the right partition.

- At this point you should reboot your computer and have rEFIt fix the partition tables on your hard drive. (If you do not do this, you may have to reinstall GRUB later on in order to have your Mac recognize the Linux partition.) When you are into the rEFIt menu, select update partition table, then press Y. Reboot.

- 完了したら、#インストール に進んで下さい。

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

This may not work for everyone but it has been successfully tested on a Macbook from late 2009.

The easiest way to partition your hard drive, so that all these operating systems can co-exist, is to use disk utility in Mac OS X, use the formatter on windows XP install CP, and then finish with Arch Linux tools.

Warning: It is highly recommended that this only be attempted after a clean install of Mac OS X. Using these methods on a pre-existing system may have undesired results. At least back your stuff up with timemachine or clonezilla before you begin.

手順:

- OS X で、Disk Utility.app を実行してください (`/Applications/Utilities` にあります)。

- 左のカラムからパーティションするドライブを選択してください (パーティションではありません)。右のパーティションタブをクリックしてください。

- ボリュームスキームからリサイズするボリュームを選択してください。

- Decide how much space you wish to have for your Mac OS X partition, how much fo XP, and how much for Arch Linux. Remember that a typical installation of Mac OS X requires around 15-20 GiB, and XP about the same, depending on the number of software applications and files. Something like OSX 200Gb, XP 25Gb, Arch 25Gb should be fine.

- Put your decisions into action by pressing the + button and adding the new partitions, Label them as you like and make sure that your XP partition is the last one on the disk and is formatted for FAT32. It is probably best to have Arch formatted in HFS format as to not confuse you later, it will be reformatted anyway.

So in linux terms your partitions will be something like:

  - sda (disk)
  - sda1 (Mac boot partition - you cannot see this one in OSX)
  - sda2 (OSX install in HFS+)
  - sda3 (Arch install temporarly in HFS)
  - sda4 (XP install in FAT32)

- 最後に、適用をクリックします。これで空きスペースから新しいパーティションが作成されます。

Note: Using this method you may not be able to have a shared partition between Mac OS X and Arch Linux, this is because the mac will only allow for 4 active partitions. You will however be able to mount a HFS partition in Arch for one workaround. There are other workarounds possible also.

- 上記作業が完了したら、次に進んで下さい。もし失敗した場合は、先に Mac OS X の中からパーティションを修復する必要があるかもしれません。

- この方法でブートキャンプをする必要はありません。EFIt プログラムはかなりの柔軟性があります (ただし GRUB ほどの柔軟性はありません)。rEFIt をダウンロードしてインストールしてください [1]。

- OS X のターミナルを開き以下を実行してください、これで rEFIt ブートマネージャが有効になります。

    cd /efi/refit
    ./enable.sh

- rEFIt が動作するか再起動して確認してください、起動時に表示されるはずです。立ち上がったら rEFIt パーティションマネージャを開いて変更を承諾してください。

- Put your XP install CD and boot it with rEFIt - You may have to reboot a few times until it is recognized by the boot loader. Install XP and once it is installed use the OSX install CD to get your drivers running nicely in XP.
  - Note: when installing XP make sure you select your XP partition and format it again inside the XP installer. If you do not reformat it will not work.

- Arch インストール CD を起動して、root でログインし `# /arch/setup` を実行してください。

- Follow the install as normal but note that you will have to tell that arch installer to mount sda3 as the root partition and format it as ext3, there will not be a /boot or swap partition so ignore those warnings.

- At this point, if you are dual booting, you should reboot your computer and have rEFIt fix the partition tables on your hard drive. (If you do not do this, you may have to reinstall GRUB later on in order to have your Mac recognize the Linux partition.) When you are into the rEFIt menu, select update partition table, then press Y.

    # reboot

- これで完了です。#インストール に進むことができますが、#GRUB から直接ブートする を読んでおいて下さい。

## GRUB から直接ブートする

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

- GRUB をメインのブートローダーとして使用し、rEFIt (http://refit.sourceforge.net/、上の #BIOS 互換 や #Mac OS X, Windows XP, Arch Linux のトリプルブート で記述) などを使う代わりに"ブート中に Alt/Option キーを押す"方法で Mac OS X に戻したい場合は、Mac の既存の EFI パーティション (下記参照) に grub をインストールする必要があります。

Note: These instructions are known to work on a Macbook Pro (Early 2011). Please read the procedure carefully as well as the details following it.

手順:

- grub をインストールしてください

- `/boot` に `efi` という名前のディレクトリを作成してください

- Mac 上にある既存の EFI パーティションをこの `/boot/efi` ディレクトリにマウントしてください

- このディレクトリに GRUB をインストールしてください

- `/boot/grub` に `locale` という名前のディレクトリを作成してください

- `/usr/share/locale/en\@quot/LC_MESSAGES/` から `/boot/grub/locale` に `grub.mo` をコピーしてください

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

- 完了です。これで再起動後 GRUB が起動し新しくインストールした Archlinux を起動することができます。

- Mac OS X を起動したいときはコンピュータの起動中に ALT/Option キーを押し続けて下さい。

詳細 (GRUB_EFI_Examples#M5A97 から引用):

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

GRUB (日本語)#UEFI システム 2 より:

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

### grub.cfg のサンプル

Note that there may be a better method for loading Windows.

    set debug=video
    insmod efi_gop

    menuentry "Arch Linux EFI" {
      set root=(hd0,3)
      #search --set -f /boot/vmlinuz26-efi-physical
      #loadbios /boot/vbtrace_bios.bin /boot/int10.bin
      linux /boot/vmlinuz26-efi-physical root=/dev/sda3 reboot=pci resume=/dev/sda3 resume_offset=151552
      initrd /boot/kernel26-efi-physical.img
    }

    menuentry "MacOSX" {
      set root=(hd0,2)
      # Search the root device for Mac OS X's loader.
      #search --set -f /usr/standalone/i386/boot.efi
      # Load the loader.
      chainloader /usr/standalone/i386/boot.efi
    }

    menuentry "Windows 7" {
      appleloader HD
    }

    menuentry "Boot from CD" {
      appleloader CD
    }

    menuentry "Boot from USB" {
      appleloader USB
    }

## インストール

Note: This section is only required if you want to have Mac OS X installed along with Arch Linux. If not, follow the steps in the official install guide, then skip to #Post-install configuration.

- Arch Linux インストール CD もしくは必要に応じて最新の Archboot iso (非公式) から起動してください。Apple の UEFI で起動できる USB を作るには、create a UEFI ブータブル USB を作成する手順に従う必要があります。

Note:

- On MacBook Pro 7,1, I had an error booting the installation media Version 2012.12.01: "unable to handle kernel NULL pointer dereference at 0000000000000010" during pacpi_set_dmamode. To fix this problem, boot with the option: acpi=off. After chrooting, add MODULES="ata_generic" into /etc/mkinitcpio.conf and execute mkinitcpio -p linux, see: Installation Guide, 9 Configure the system.
- Some MacBook users report strange keyboard output such as long delays and character doubling. To fix this problem, boot with the following options: arch noapic irqpoll acpi=force

- root でログインしてください。

Note: If you want to do a netinstall rather than installing the possibly outdated packages on the iso and depend on a wireless network that is encrypted, you should change to a free tty and connect manually before proceeding, see Beginners_Guide

- インストールガイドに則ってインストールを進めて下さい。ただし以下の箇所は別です:
  - ハードドライブの準備では、ファイルシステムのマウントポイントの設定だけを行なって下さい。適切なパーティションを割り当てるように注意してください。#パーティション に従っていればパーティションは既に作成されているはずです。
  - (EFI で起動する場合) ブートローダーをインストールした後、インストーラーを終了して GRUB をインストールしてください。
  - (BIOS 互換で起動する場合) ブートローダーをインストールした後、menu.lst ファイルを編集して reboot=pci を kernel 行の最後に追加してください、例:

        kernel /vmlinuz26 root=/dev/sda5 ro reboot=pci

    これで MacBook が Arch から正しく再起動できるようになります。
  - (BIOS 互換で起動する場合) ブートローダーをインストールでは、`/boot` があるパーティションに GRUB をインストールしてください。
    Warning: Do not install GRUB onto /dev/sda !!! Doing so is likely to lead to an unstable post-environment.
  - システムの設定では、/etc/mkinitcpio.conf を編集して autodetect フックの後のどこかに usbinput フックを追加してください。これで Arch が起動する前にキーボードを使う必要があるときにキーボードのドライバーがロードされます (例: LUKS パスワードを入力したりトラブルシューティングのシェルを使う場合など)。

- インストール作業が完了したら、コンピュータを再起動してください。

- オプティカルメディアを使っている場合、MacBook の起動時にエジェクトキーを押して下さい、これで Arch Linux のインストールディスクが排出されるはずです。

- Mac OS X と Arch Linux のデュアルブートをする場合、システムの起動時に alt (option) キーを押すことで Mac ブートローダーを使って起動する OS を選択します。

### Arch Linux だけのインストールにおける追加の手順

GRUB seems to be more complicated and less straightforward than rEFInd on EFI environments, so it's usually the prefered choice. It will also add entries for bootable devices if they are plugged in, and requires no rebuild/redeployments when the configuration is updated.

#### GRUB

Note: Do this after you tested that your setup is working. This procedure has been tested on a MacBook 4,1 with an msdos partition table. It may not work on newer versions. Please update if it works for you.

- In order for Linux to boot up straight away, you will have to tell the firmware that your /boot partition is bootable, or you will always have to hold down the option (alt) key whenever you want to start up your computer.
- In order to do this you will need the original Mac OS X install disk
- Boot into it (you may need to hold the option (alt) key during boot again to access it)
  - Open Terminal.app (found under the Utilities menu in the menu bar), and type:

    # diskutil list

- - Find the device name of your /boot partition (this is your root (/) partition, if you do not have it separate). The format should be /dev/disk0sX, where X is a number from 1 to infinity
  - If using EFI type (replace X with the appropriate number):

    # bless --folder=/Volumes/efi --file=/Volumes/efi/efi/arch/grubx64.efi --setBoot
    # bless --mount=/Volumes/efi --file=/Volumes/efi/efi/arch/grubx64.efi --setBoot

- - If using BIOS-compatibility type (replace X with the appropriate number):

    # bless --device /dev/disk0sX --setBoot --legacy --verbose

- Remove the installation disk and restart your computer
- After a few seconds of grey screen, your boot loader screen should appear automatically.

#### rEFInd

Note: This has been tested on a 2013 MBA. There is no reason for it not to work on older models.

- [extra] から rEFInd をインストールしてください。
- rEFInd を EFI パーティションにインストールしてください:

    # refind-install

- /boot にある linux イメージの設定ファイルを作成してください:

    # refind-mkrlconf

- カーネルパラメータを追加する必要があるときは /boot/refind_linux.conf を編集してください。

## インストール後の設定

### Xorg

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

#### ビデオ

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

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

    $ lspci | grep VGA

- intel を含む文字列が表示された場合、xf86-video-intel ドライバーのみが必要です。Intel ベースの MacBook は設定をせずとも動作します。

- nVidia が返される場合、NVIDIA を読んで下さい。

- もしくは ATI や AMD の文字が確認できた場合、ATI を読んで下さい。

##### NVIDIA ノート

Tip: MBP 6.2 - プロプライエタリの NVIDIA ドライバーでは、ハードウェアによるビデオデコードのための PureVideo HD がサポートされています。

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

Tip:

- nvidia-bl をインストールしてもバックライトの操作ができない場合、apple_bl カーネルモジュールをブラックリストに入れて下さい。
- Alternatively, you can choose to use the pommed-light package. If you do so, you may wish to change the step settings in `/etc/pommed.conf.mactel` to something around 5000-10000 depending on how many levels of brightness you desire. The max brightness is around 80000, so take that into account.

##### Macbook 6.2+ - EFI

As of 4/30/2011, the proprietary nvidia driver is not known to work under X with this model in efi mode. The nouveau driver should work out of the box, but dri should be installed from the mesa-git package.

##### MacbookPro 5.5, NVIDIA とセカンダリディスプレイ

As of January 1 2011, the latest NVIDIA drivers (290.10) might not work properly when a secondary display is used (tested with TwinView), NVIDIA's current long-live supported 275xx drivers seem to work fine. Install nvidia-275xx and nvidia-utils-275xx, and possibly lib32-nvidia-utils-275xx if you are on x86_64 system and want 32-bits support.

MacbookPro 5.5 has an NVIDIA 9400m graphics card. This problem might apply to other devices as well.

#### タッチパッド

The touchpad should have basic functionality by default. A true multitouch driver which behaves very similarly to native OSX can be installed from the AUR: xf86-input-multitouch-git. It supports 1, 2 and 3 finger gestures, including differentiation between horizontal and vertical 3 finger swipe. Additional details are available at the driver's project page.

xf86-input-multitouch-git does not support any sort of configuration without editing the driver's source. Some users are also experiencing issues with false clicks from palm touches. There is now a much more configurable fork available as xf86-input-mtrack-git. Configuration options are documented in the readme.

The following mtrack options work well on a Macbook 7,1:

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

Probably you need also to add:

     MatchDevicePath "/dev/input/event10"

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

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

Note on Macbook Pro(5,5): I found it is much simpler to use the xf86-input-synaptics in Extra. Although it does not have much function as 3 finger swipe, this driver provides faster response. gpointing-device-settings also provides a simple GUI config. Below is a Xorg config file /etc/X11/xorgconfig.d/60-synaptics.conf for reference only.

     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 like MultiTouch Gestures currently broken due to newer synaptic drivers! For users looking to add more of OS X's multitouch gestures to Arch, xSwipe is a highly customisable, light weight pearl script, which does just that. Once installed and configured (see xSwipe wiki on Github) I would recommend adding xSwipe as a start up item.

#### キーボード

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

xbindkeys などの適当なアプリケーションを使うか DE の設定によってマッピングすることができます。しかしながら他の良い方法として AUR から pommed をインストールすることを推奨します。

    Edit the /etc/pommed.conf according to your hardware on MacBook, building
    it from /etc/pommed.conf.mac or /etc/pommed.conf.ppc example files.

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

    systemctl enable pommed
    systemctl start pommed

Tip: if you are using Gnome or KDE you can easily configure 3rd level functionality, multimedia key, etc. in Keyboard Preferences.
Note: See the Xorg input hotplugging page for other configuration information.

##### キーボードのバックライト

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

kbdlight を使ってスクリプトを使用したり sxhkd または xbindkey などを実行してキーボードバックライトを制御することも可能です。root にならなくてもキーボードの光量を変更できるという利点があります。

###### NVIDIA ノート

If the brightness does not function correctly through pommed, make sure you have installed the nvidia-bl package and insert

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

into the second line of the pommed PKGBUILD build() function and remake the package. From this forum post.

Another possible solution is to modify the pommed PKGBUILD build():

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

If the previous does not work try the following,

run nvidia-settings, edit the file '/etc/X11/xorg.conf' and add this line into the Device section:

    Option "RegistryDwords" "EnableBrightnessControl=1"

Save and reboot and check backlight buttons work. More information available at ubuntu macbook pro 5,5

### Wi-Fi

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

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

    # lspci | grep Network

- Atheros のカードが載っている場合、何も設定しなくても全て上手く動くはずです。

- Broadcom のカードが載っている場合、Broadcom BCM4312 のページに従って下さい。

- 5.0 and 6.0 generation MacBooks may have a BCM43xx, follow the instructions for the broadcom-wl driver on the Broadcom wireless page. The interfaces can swap during reboot so its best to define them in a udev rule (instructions on the Broadcom wireless page).

- 8.1 generation MacBooks have BCM4331, for which support is not present in either Linux (3.0 and 3.1) or the proprietary drivers by Broadcom. There is however preliminary support for it in Linux 3.2. To run the drivers on earlier kernels, you will need to use compat-wireless

Note: If your connection frequently drops, you may have to turn off Wi-Fi power management. If you are running pm-utils, you may override wireless power management by creating an executable file `/etc/pm/wireless` with the lines:

    #!/bin/sh
    iwconfig wlp2s0 power off

### 電源管理

#### Laptop-mode-tools

Because the MacBook is obviously a laptop, you may wish to control its power management features using something like Laptop Mode Tools.

However, Laptop Mode Tools is known to disable the keyboard in console mode after being idle for a few seconds (does not happen when using X). If this happens to you set

    CONTROL_USB_AUTOSUSPEND=0

in `/etc/laptop-mode/conf.d/usb-autosuspend.conf`. See this forum thread for the original workaround.

#### Suspend to RAM (カーネルサスペンド)

Suspend (the kernel suspend) should work out of the box (I had a problem in which the machine would "suspend immediately after resume" in certain conditions when suspending by closing the lid. This was solved by de-selecting the option "event_when_closed_battery" in gconf-editor → gnome-power-manager → actions).

For a macbook2,1 (bought in 2007) s2ram works using

    s2ram -f -a 3

To make it work with kde4 you have to create a file named "config" into /etc/pm/config.d containing

    SLEEP_MODULE="uswsusp"
    S2RAM_OPTS="-f -a 3"

For a MacBook Pro 3,1 (bought in 2008), the following command should work, both in X and in a console:

    s2ram -f -a 1

Note: If you use pm-utils suspending lead (at least for me) disk freeze. Try changing /etc/pm/config.d/module to

    SLEEP_MODULE=tuxonice

For a macbook5.5, s2ram may work using (be sure to run it in X)

    s2ram -f -p -m

#### Suspend to disk (ハイバネート)

Hibernate should work if you have a swap partition. If you opted for a swap file because of the MBR limitation to 4 primary partitions, you can still get hibernate functionality by following these instructions (this is mostly taken from http://ubuntuforums.org/showthread.php?t=1042946):

- Create a swapfile (here 2G = bs*count):

    # dd if=/dev/zero of=/swapfile bs=1024 count=2M

It is recommended, but not necessary, to create the swapfile on a newly created partition, so that fragmentation is minimum.

    # chmod 600 swapfile
    # mkswap swapfile
    mkswap: swapfile: warning: do not erase bootbits sectors
            on whole disk. Use -f to force.
    Setting up swapspace version 1, size = 2097148 KiB
    no label, UUID=6bf46166-4f9e-433a-aac1-91cb3f5cf8ba
    #
    Note that we will not use this UUID later.

- Add the swapfile in `/etc/fstab`:

    /swapfile   none   swap   sw   0   0

- Determine the UUID of partition on which the swapfile is (/usr/bin/blkid is provided by util-linux-ng)

    # blkid -g
    # blkid
    /dev/sda4: UUID="388014d3-1d18-4ca0-980e-ef2f9fdebde4" TYPE="ext3"

388014d3-1d18-4ca0-980e-ef2f9fdebde4 is the number we are looking for.

- Determine the physical offset of the swapfile:

    # filefrag -v /swapfile | head
    Filesystem type is: ef53
    Filesystem cylinder groups is approximately 132
    File size of /swapfile is 2147483648 (524288 blocks, blocksize 4096)
     ext logical physical expected length flags
       0       0    24576              12 merged
       1      12    24589    24587   1024 merged
       2    1036    25615    25612   1024 merged
       3    2060    26640    26638   1024 merged
       4    3084    27665    27663   1024 merged
       5    4108    28690    28688   1024 merged
    $

Here, 24576 is the number we want.

- Edit `/boot/grub/grub.cfg` and add:

    resume=/dev/disk/by-uuid/388014d3-1d18-4ca0-980e-ef2f9fdebde4 resume_offset=24576

to your kernel stanza options (or use the kopt method as in the post). Note that the "resume=UUID=" actually did not work for me. I had to use the `/dev/disk/by-uuid` syntax.

Note: "ro" has to be at the end of the line, like this:

    kernel /boot/vmlinuz-linux root=/dev/sda4 resume=/dev/sda4 resume_offset=24576 ro

- Nothing to do with update-grub nor mkinitcpio.
- Reboot once
- Try to hibernate

### 環境光センサー

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

### サウンド

Tip: MBP 5.5: カーネル 2.6.32 から何も設定しなくても動くようになりました - フロントスピーカーをアンミュートしてサウンドレベルを保存してください。
Tip: 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 では、次を使うこともできます:

    options snd_hda_intel model=mb5

(note that the jack output is controlled with "HP").

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

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

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

- ALSA-Configuration.txt
- HD-Audio.txt
- HD-Audio-Models.txt.}}

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

### Bluetooth

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

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

### ウェブカメラ

#### iSight

Note: Linux kernel from 2.6.26 includes the Linux UVC driver natively. MBP 6,2+ (Kernel ~2.6.37+) iSight works out of the box without the need to use firmware from OS X. Only use `isight-firmware-tools` if it doesn't work normally.

iSight webcams on Macbooks or pre 6,2 MacBook Pros (6,2 came out around 2010) require the Apple's proprietary firmware that cannot be redistributed. It must be extracted from MacOS and loaded onto Arch.

You will need to install isight-firmware-tools from the AUR to extract the firmware. The AUR package also includes a udev rule and ELF binary that are necessary, even once you have extracted the firmware file into `/lib/firmware/isight.fw`, for the file to be loaded every time you boot your computer (namely `/etc/udev/rules.d/isight.rules` which uses `/usr/lib/udev/ift-load`).

Instructions:

First you need to get the firmware out of a particular file located on your OS X install. It is located in `/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport`.

Tip: The `AppleUSBVideoSupport` file from a Mac OSX 10.6 (Snow Leopard) installation may not work properly. If possible, use the file from OSX 10.5 or before.

To mount the MacOSX drive if multi-booting:

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

Then, install isight-firmware-tools from the AUR.

Locate the `AppleUSBVideoSupport` file in the OSX directory listed above. Either copy it over to your Arch system (Any OSX installation should do, such as an iMac, not just one specific to your system) or, if multi-booting, mount the OSX drive and navigate to the directory. (On 10.7 (Lion) the directory is `/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS`.) In that directory you can go ahead and extract the driver:

    # ift-extract --apple-driver AppleUSBVideoSupport

When it's done, check that the firmware has been found:

    # ls /lib/firmware/isight.fw

Once successful, completely SHUTDOWN your Mac and start it back up again (to clear the hardware state of the camera). Do not reboot.

It should be automatically loaded at boot; if it isn't you can load the uvcvideo module manually or load it at boot.

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

- MPlayer

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

- Cheese
- Skype
- Ekiga

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

    # mplayer tv:// -vf screenshot

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

#### Facetime HD

(2013 MBA 以降に含まれている) Facetime HD ウェブカメラは UVC デバイスでなくなったため、設定をしないと動作しません。

### 温度センサー

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

### カラープロファイル

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

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

Second copy pre-saved color profiles placed in `/Library/ColorSync/Profiles/Displays/` on Mac OS partition to `~/colorprofiles/` for example.

There are color profile files agree with in MacBook models; select the right one:

- Color LCD-4271800.icc for MacBook Pro with CoreDuo CPU
- Color LCD-4271880.icc for MacBook with Core2Duo
- Color LCD-4271780.icc for MacBook (not Pro) based on CoreDuo or Core2Duo.

Tip: Also Mac OS allows to save current color profile from Displays > Color section of the Mac OS System Preferences, in this case file is saved to `/Users/<username>/Library/ColorSync/Profiles`.

Finally you can activate it by running

    # xcalib ~/colorprofile.icc

Note: Previous command set the color profile only for the current session; this mean that you must run it every time you login in your system. For automating it you can execute the command by Autostart Application, concording with your DE (or add the command to your login manager's initialization script, e.g. /etc/gdm/Init/Default).

### Apple Remote

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

Then make LIRC use `/dev/usb/hiddev0` (or `/dev/hiddev0`) by editing `/etc/conf.d/lircd`. Here is how mine look:

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

Use irrecord (available when installing lirc) to create a configuration file matching your remote control signals (alternatively, you can try to use the `lircd.conf` below):

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

Start lircd and use irw to check if it works.

Example of an `/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 パーティションの共有

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

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

    fdisk -l /dev/sda

出力例:

    # 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 のサポートページ を参照してください。

### ホームシェアリング

UID Synchronization

#### OS X

Note: It is strongly recommended that UID/GID manipulation be done immediately after a new user account is created, in OS X as well as in Arch Linux. If you installed OS X from scratch, then this operation is guaranteed to work after logging into your account for the first time.

##### 手順 1: UID と GID を変更する

Pre-Leopard

1. Open NetInfo Manager located in the /Applications/Utilities folder.
2. If not done for you already, enable access to user account transactions by clicking on the closed lock at the bottom of the window, and entering your account password, or root password if you have created a root account.
3. Navigate to /users/<new user name> where <new user name> is the name of the account that will have read/write access to the folder that will be shared with the primary user in Arch.
4. Change the UID value to 1000 (the value used by default for first user created in Arch).
5. Also change the GID value to 1000 (the value used by default for user account creation in Arch).
6. Navigate to `/groups/<new user name>`, automatically saving the changes you have made so far.

Note: If you get an error message that the transaction is not allowed, log out and log back in.

Leopard

In Leopard, the NetInfo Manager application is not present. A different set of steps is required for UID synchronization:

1. Open System Preferences.
2. Click on Users & Groups.
3. Unlock the pane if not already done so.
4. Right-click on the desired user and select Advanced Options.
5. Write down the value of the User ID field, you will need it later on. Change both the UID and GID to match the UID and GID of the account wished to be shared with in Arch (1000 by default for the first user created in Arch).

##### 手順 2: "Home" パーティションを変更する

1. Open up Terminal in the `/Applications/Utilities` folder.

1. Enter the following command to reclaim the permission settings of your home folder, replacing <your user name>, <your user group> and <your old UID> with the user name whose UID and GID values you just changed, the group name whose GID value you just changed and the old UID number, respectively.

    # find /User/<your user name> -user <your old UID> -exec chown <your user name>:<your user group> {} \;

#### Arch

To synchronize your UID in Arch Linux, you are advised to perform this operation while creating a new user account. It is therefore recommended that you do this as soon as you install Arch Linux.

Now you must substitute Arch's home with Mac OS's home, by modify entries of `/etc/fstab`.

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

If your Macbook spends 30 seconds with "white screen" before booting you need to tell the firmware where is the booting partition.

Boot Mac OS X, if do not have it installed, you can use the install DVD (select language, then click Utilities->Terminal), or another MacBook with Mac OS X (connect the two computers via firewire or thunderbolt, start the other Macbook keeping pressed T, boot your MacBook keeping pressed Options).

Either way, once you got a Mac OS X terminal running on your MacBook you need to execute, as root, a different command if the boot partition is EFI or it is not:

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

or

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

(given that if your GRUB or EFI is on sda1, /dev/disk1s2 if it is on sdb2, etc). See also https://bbs.archlinux.org/viewtopic.php?pid=833215 and https://support.apple.com/kb/HT1533 .

### 起動音を消す

If you forgot to mute before installing, you can still mute again if you have a Mac OS X install disk. Boot from it, select language, then click Utilities > Terminal, and enter

    # /usr/bin/nvram SystemAudioVolume=%01

(or whatever volume you want).

## rEFIt

Note:

- You probably want to have a look at refind, which is some type of successor of rEFIt.
- This is not a requirement. It only gives you a menu to choose between OS X and Arch Linux upon every boot.

For more see, refit myths.

In OS X, download the ".dmg" from Refit Homepage and install it.

Note: If you have already partitioned your hard disk in preparation for the Arch installation, rEFIt may not be enabled by default. You will have to run the "enable.sh" script installed in /efi/refit/.

Open up Terminal and enter:

    cd /efi/refit;
    ./enable.sh

### rEFIt の問題

If you experience problems after the install of Arch or rEFIt, especially is the right OS is not showing up to boot to or if it dumps you at a GRUB prompt stuck like the following:

    GRUB>_

Then have a look at this link:

http://mac.linux.be/content/problems-refit-and-grub-after-installation

It can give you a basic idea on how to boot off the Arch live cd, mount the problem Arch install, chroot, use gptsync, and reinstall GRUB. This is probably for more advanced users who can translate the commands from a debian system to an Arch system and also apply it to the partitions on their machine. Be careful not to install GRUB in the wrong spot.

If you need a copy of gptsync you can wget it from here: http://packages.debian.org/sid/gptsync or try these, for 64 bit:

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

and for i386:

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

since they are .deb packages you will need the program deb2targz.

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

For some multi-boot users who utilize a separate Linux boot partition, the OSX Mavericks upgrade may overwrite the boot partition with Apple's own recovery boot filesystem. This breaks the Archlinux boot option in rEFIt/rEFInd. The best way to proceed in this situation is to abandon a separate boot partition and use the EFI system partition (ESP) to install the bootloader of your choice. It is also recommended that you use rEFInd instead of rEFIt as development on the latter has halted.

Assuming grub2 as the bootloader:

Use the Arch LiveCD to boot to a shell and chroot to your broken Archlinux environment.

Mount the ESP on /boot.

Edit the fstab and remove the old boot partition and make ESP the new boot partition. Now mount the ESP as the new /boot parition.

    # mount -a

Reinstall linux.

    # pacman -S linux

Create a new initramfs and vmlinuz in /boot.

    # mkinitcpio -p linux

Install grub.

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

Create a new grub.cfg file.

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

Make sure that grub.cfg is in the same directory as grubx64.efi.

Generate a new refind_linux.conf file in /boot simply by running mkrlconf.sh which comes with rEFInd.

Exit the chroot environment.

Reboot. You should see a new entry for Archlinux in rEFInd and it should boot to your Archlinux installation.

## モデルごとの情報

### MacBook

#### Mid 2007 13" - Version 2,1

Note: I used the 201212 ISO image.
Warning: Current linux-3.8.x packages do not work with their EFI stub and refind-efi. Either use an older package (linux 3.7.10-1 works with refind-efi 0.6.8-1) or you may use a bootloader which does not rely on EFI stub. Similiar issues are reported with gummiboot.

Since older Macbooks have a 32bit EFI running, the usual installation image is not recognized. You need to either remove the UEFI support from the disc (Unified_Extensible_Firmware_Interface#Remove_UEFI_boot_support_from_ISO) or build a 32bit EFI version of the disc. The paragraphs below will take the first path to success, booting into BIOS mode and its pitfalls. For a try the other way round, read Unified_Extensible_Firmware_Interface#Create_UEFI_bootable_USB_from_ISO first.

First prepare your harddisc according to your wishes. In this scenario it was a "Linux only" approach with

    /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

The hfsprogs package contains the tools to handle HFS/HFS+ filesystems. The rEFInd bootloader recognizes it on its own. Usually the partition for the EFI bootloader is a FAT32 (vfat) partition. In this case I tried rEFIt first, which apparently needs the HFS+ filesystem to work, and kept it at that.

The mount points are:

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

The bootloader in use was rEFInd instead of rEFIt. To install it, the rEFInd homepage provides a good guide. The pitfall here is, that the system bootet in BIOS compatibility mode and not in EFI mode. You cannot therefore use `efibootmgr`, because the EFI variables (even with 'modprobe efivars') are not available. While installing the system get mactel-boot from the AUR. The `hfs-bless` utility comes in handy, when blessing the EFI bootloader. This is done by calling e.g.:

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

Since the Linux kernel does come with EFI stub enabled, it seemed 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.

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"

Rebuild your kernel image:

    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

- MacBookPro Retina.

### MacBook Air

#### Mid 2013 13" - Version 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.

Note: Installing rEFInd from Linux (or from OS X, but to the esp) also works fine

##### Arch だけのインストール

This method works without refind and uses grub to boot EFI. Partition as follows:

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

sda1 can also be a HFS+ partition for EFI. This example chooses to use FAT32 (vfat). Although swap is optional, it is highly recommended due to a suspend/resume bug where the monitor can only be displayed at 0% or 100%. Instead of sda4 for root and home, an alternative partition scheme would be to make sda4 as root and sda5 as home.

Format and mount:

     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

Finish the installation according to the Beginner's Guide and skip anything after the bootloader. After you have generated your initramfs and set root passwd follow below to setup 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}}

Now you can exit/unmount/reboot:

     exit
     umount -R /mnt
     reboot

##### 安定性の問題

Note: Passing `libata.force=1:noncq` to the kernel parameters solves the problem.

This is the big worry for me. Every now and then my system hangs for a brief moment and everything involving net or disk access just hangs there for a while and then it seems to work. So far it only seems to happen when I run something disk- or CPU-intensive. Also had an occassion when I could not start X and just got this repeating all over my screen:

    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 }

On the next attempt it worked fine. I did SMART short and long tests on my disk and they returned fine:

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

##### Marvell ATA サスペンドバグ

If you have 2013 Macbook Air with a Marvell 128 gig drive, you might get the following ata errors instead after pm-suspend/resumes:

    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

Try what Patrick and Tejun figured out on the linux bug. I followed what Patrick describes with sata_alpm, and I haven't seen the issue since.

##### サスペンド/レジューム

Brightness is either 0% or 100% after resuming from suspend. Until the kernel is fixed, use patjak's fix by installing mba6x_bl-dkms. Patjak's github is at [4].

##### WiFi

WiFi does not work out of the box. Install broadcom-wl-dkms to connect to a network.

##### タッチパッド

Since 3.10.3 kernel touchpad works perfectly with xf86-input-synaptics.

##### オーディオ

As of Linux 3.12, sound works out of the box. If you do not get sound with only alsa-utils, you may need to create a /etc/asound.conf with below entries:

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

#### Mid 2012 13" — version 5,2

Kernel panics using default boot media under arch kernel 3.5. Adding `intremap=off` fixes this. Additionally, there are problems loading the `applesmc` module (meaning the temperature sensors, fan, and keyboard backlight do not work). These problems are fixed in the linux 3.6-rc4 mainline kernel (I have tested).

#### Mid 2012 11.5" — Version 5,1

If you have issues with waking from sleep while in X11 such as a black screen or showing the console with a frozen mouse cursor then remove xf86-input-synaptics and install mtrack-git from aur. This fixed errors such as

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

and backtraces that causes X11 to crash. This might apply to Version 5,2 assuming they use the same trackpad.

##### Archboot 2012.06 イメージを使ってインストールする

Several people have reported problems installing Arch Linux on the MBA version 5,2 (See problems booting archlinux on a MacBook Air Mid 2012). A common problem is that the screen is not detected and therefore goes black when the installer boots. To fix this problem one has to select the normal install (Not the LTS) during boot and press tab to edit the boot flags. Then add noapic flag to the boot line. This should fix the screen going black. Install the system as you normally would. It may help later in the configuration process if the support packages are installed already at this stage.

When the install has finished again add the noapic flag to the GRUB boot line (if you use GRUB) and also add i915.diescreaming=1 (or perhaps i915.die). This should keep the screen from going black when booting the new system. After you enter the system the wireless driver should be loaded. If you installed the support packages during installation you should have the wifi-menu command. Run it and select the network you want to use. One could also use wpa_supplicant but wifi-menu is quite fast to use at this stage. Now you are ready to upgrade the system. As of writing there have been a lot of changes to Archlinux since the 2012.06 image of Archboot was released (filesystem and glibc). Therefore the upgrade process can be a bit difficult. The current solution has sucessfully upgraded a standart archboot version to a up-to-date version as of October 2012 and this step should be obsolete in future releases of archboot.

First ignore the new "big" changes to Arch Linux,

     pacman -Suy --ignore glibc,libarchive,curl,filesystem

If this only upgrades pacman then run the command again. Remember to make sure that pacman is ignoring the packages you do not want upgraded now. Otherwise you may break the system and have to reinstall! Now upgrade to the new filesystem,

    pacman -S filesystem --force

As described in Glibc upgrade guide there may be conflicts with installed packages that require the /lib directory. Follow the guide and remove any packages that use /lib. The stock 3.4.2 kernel from Archboot should be on this list so first upgrade this,

    pacman -S linux

This may give some errors saying that the system may not boot because of missing modules. Ignore this warning for now. The stock install may also contain gcc in the /lib directory so also remove this if needed and any other packages that have conflicts. Now Glibc should be the only package in /lib so run the system upgrade and accept all changes,

    pacman -Su

Finally reinstall the kernel so that it can find the correct modules.

Now this command should not give any errors like last time. You can also reinstall gcc at this point. After a rebooted the system should startup and the new kernel should have fixed the problem with the screen going black. If want to boot Xorg then you may need to remove the i915.diescreaming=1 line from GRUB. If not then attach a external screen and try to fix the problem that way. Some people have reported commands that may help on the forum.

#### Mid 2011 — version 4,x

Works out-of-the-box since kernel 3.2. It is recommended to use Archboot, install GRUB and use EFI.

#### Early 2008 — version 1,1

Everything works out of the box though you will need b43-fwcutter (or simply b43-firmware) for the wireless adapter to work.

Since this model has only one USB port, you may find it easiest to install Arch with a powered USB hub. Plug a USB network adapter (wireless or ethernet adapter to plug into a USB port) and your Arch installation media into the USB hub.

If you can't get any result by scanning wireless network after boot, unload modules `b43` and `ssb` and load them again:

       rmmod ssb
       rmmod b43
       modprobe b43

There is a good chance you will find what's wrong with DMA from the dmesg log.

Even if you can scan wireless networks after reloading the modules, it's still possible that you will only be able to connect to some networks, but not all of them. According to a more detailed discussion here: http://crunchbang.org/forums/viewtopic.php?id=17368, adding `pio=1,qos=0` options to the b43 module can solve this problem.

I tested this for a 13' MacBook Air 1,1 with a BCM4321 chipset, and it works.

## 参照

- http://www.netsoc.tcd.ie/~theorie/interblag/2010/01/30/installing-arch-linux-on-a-mac-pro/
- http://allanmcrae.com/2010/04/installing-arch-on-a-macbook-pro-5-5/
- http://allanmcrae.com/2012/04/installing-arch-on-a-macbook-pro-8-1/
- http://linux-junky.blogspot.com/2011/08/triple-boot-archlinux-windows-7-and-mac.html

Category:

- Apple (日本語)