Installing Arch Linux on a MacBook is quite similar to installing it on any other computer. However, due to the specific hardware configuration on a MacBook, there are a few deviations and special considerations which warrant a separate guide. For more background information, please see the [[Official Arch Linux Install Guide]], [[Beginners Guide]], [[Beginners Guide Appendix]], and [[Post Installation Tips]]. This guide contains installation-instructions that can be used on any Apple computer whose hardware is supported by the Linux kernel. If you have a Macbook5,2 (Polycarbonate, Non-Unibody) and are having additional issues, please see [[Macbook5,2]] for additional help.

+

Installing Arch Linux on a MacBook (Pro) is quite similar to installing it on any other computer. However, due to the specific hardware configuration on a MacBook, there are a few deviations and special considerations which warrant a separate guide. For more background information, please see the [[Installation Guide]], [[Beginners' Guide]]. This guide contains installation-instructions that can be used on any Apple computer whose hardware is supported by the Linux kernel. Please see 'related' pages (on the top right of this page) for model-specific tips and troubleshooting.

== Overview ==

== Overview ==

Line 22:

Line 24:

Specifically, the procedure for installing Arch Linux on a MacBook is:

Specifically, the procedure for installing Arch Linux on a MacBook is:

−

# '''[[#Installation of Mac OS X and Firmware Update | Install Mac OS X]]''': Regardless of the desired end-configuration, it helps to start from a clean install of OS X.

+

# '''[[#Installation of Mac OS X and firmware update|Install OS X]]''': Regardless of the desired end-configuration, it helps to start from a clean install of OS X.

−

# '''[[#Installation of Mac OS X and Firmware Update | Firmware Update]]''': This should help reduce errors and provide newer features for the hardware.

+

# '''[[#Installation of Mac OS X and firmware update|Firmware update]]''': This should help reduce errors and provide newer features for the hardware.

−

# '''[[#Partitions | Partition]]''': This step either resizes or deletes the OS X partition and creates partitions for Arch Linux.

+

# '''[[#Partitions|Partition]]''': This step either resizes or deletes the OS X partition and creates partitions for Arch Linux.

[http://www.apple.com Apple] has excellent instructions for installing OS X. Follow their instructions. Once OS X is installed, go to ''Apple Menu > Software Update'' and update all software. Once this has run, you will need to reboot your computer. Do this, and then run '''Software Update''' again to check to make sure that all updates have been installed.

−

Apple Menu --> Software Update

+

If you are not going to have OS X installed, make backups of these files:

−

+

−

And update all software. Once this has run, you will need to reboot your computer. Do this, and then run '''Software Update''' again to check to make sure that all updates have been installed.

+

−

+

−

{{Note | Sometimes '''Software Update''' may not pick up all the firmware updates available for your computer. However, you can try to search this upgrades directly into the Apple's Support site.}}

+

−

+

−

If you are not going to have Mac OS X installed, make backups of these files:

If you do not know which option to pick, we recommend the dual boot so you can still return to Mac OS X whenever you want.

+

If you do not know which option to pick, we recommend the dual boot so you can still return to OS X whenever you want.

−

===Arch Linux Only===

+

=== Arch Linux only ===

−

This situation is the easiest to deal with. Mostly, partitioning is the same as any other hardware that Arch Linux can be installed on. The only special consideration is the MacBook firmware boot sound. To ensure that this sound is off: '''mute''' the volume in Mac OS X before continuing further. The MacBook firmware relies on the value in Mac OS X, if available. Note that if you choose to get rid of the OS X partition, there is no easy way to update your machines firmware unless you use an external drive to boot Mac OS X.

+

This situation is the easiest to deal with. Mostly, partitioning is the same as any other hardware that Arch Linux can be installed on. The only special consideration is the MacBook firmware boot sound. To ensure that this sound is off: '''mute''' the volume in OS X before continuing further. The MacBook firmware relies on the value in OS X, if available. Note that if you choose to get rid of the OS X partition, there is no easy way to update your machines firmware unless you use an external drive to boot OS X.

You can boot in EFI mode (recommended) or bios-compatibility mode, if in doubt choose EFI.

You can boot in EFI mode (recommended) or bios-compatibility mode, if in doubt choose EFI.

−

To install using EFI, follow the [https://wiki.archlinux.org/index.php/EFI#Create_UEFI_bootable_USB_from_ISO instruction to make a EFI bootable media]. Once done double check that your USB key actually boots in EFI mode [https://wiki.archlinux.org/index.php/UEFI#UEFI_Variables_Support checking the EFI kernel variables]. You will need to format the EFI partition with the {{ic|hfsplus}} filesystem ({{AUR|hfsprogs}}) instead vfat otherwise {{AUR|mactel-boot}} will fail, and in Macbooks [https://wiki.archlinux.org/index.php/UEFI#Non-Mac_UEFI_systems you cannot use {{ic|efibootmgr}}].

* The swap partition is optional, on machines with a RAM of size 4GB or more, good performance can be expected without a swap partition. Also, a '''swap file''' can be created later, see [[Swap#Swap file|Swap file]].

+

* For more information on partitioning, see [[Beginners'_Guide#Partitioning hard disks: General information|Partitioning hard disks: General information]].

+

}}

Simple example (no LVM, crypto):

Simple example (no LVM, crypto):

−

{{Note | The swap partition is optional, on machines with a RAM of size 4GB or more, good performance can be expected without a swap partition. Also, a '''swap file''' can be created later, see [[Swap#Swap file|Swap file]].}}

−

{{Note | For more information on partitioning, see [[Beginners'_Guide#Partitioning hard disks: General information|Partitioning hard disks: General information]].}}

partition mountpoint size type label

partition mountpoint size type label

/dev/sda1 /boot/efi 200MiB vfat EFI

/dev/sda1 /boot/efi 200MiB vfat EFI

Line 87:

Line 86:

/dev/sda5 /home remain. ext4 home

/dev/sda5 /home remain. ext4 home

−

* Done, you can continue to [[MacBook#Installation | installation]]

+

* Done, you can continue to [[#Installation]]

+

+

==== BIOS-compatibility ====

−

====BIOS-compatibility====

* Boot installation medium and switch to a free tty.

* Boot installation medium and switch to a free tty.

−

* Run '''parted'''. The simplest way is to change the partition table to '''msdos''' and then partition as normal. If you decide to use the GPT format, GRUB will not be able to recognize the partitioning scheme. GRUB2 is compatible with GPT.

+

* Run '''parted'''. The simplest way is to change the partition table to '''msdos''' and then partition as normal. GRUB is compatible with GPT.

* Create the necessary partitions.

* Create the necessary partitions.

−

* Done, you can continue to [[MacBook#Installation | installation]]

+

* Done, you can continue to [[#Installation]]

−

===Mac OS X with Arch Linux===

+

=== Mac OS X with Arch Linux ===

−

The easiest way to partition your hard drive, so that Mac OS X and Arch Linux will co-exist, is to use partitioning tools in Mac OS X and then finish with Arch Linux tools.

+

The easiest way to partition your hard drive, so that OS X and Arch Linux will co-exist, is to use partitioning tools in OS X 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.}}

+

{{Warning|It is highly recommended that this only be attempted after a clean install of OS X. Using these methods on a pre-existing system may have undesired results.}}

−

{{Note | If you have any problems, try using [http://gparted.sourceforge.net/ gparted] (i.e. ''instead'' of using Disk Utility and/or cgdisk). It is capable of shrinking the OS X partition and creating Linux partitions ready for installation. }}

+

{{Note|If you have any problems, try using [http://gparted.sourceforge.net/ gparted] (i.e. ''instead'' of using Disk Utility and/or cgdisk). It is capable of shrinking the OS X partition and creating Linux partitions ready for installation.}}

* In OS X, run '''Disk Utility.app''' (located in {{ic|/Applications/Utilities}})

* Select the drive to be partitioned in the left-hand column (not the partitions!). Click on the '''partition''' tab on the right.

* Select the drive to be partitioned in the left-hand column (not the partitions!). Click on the '''partition''' tab on the right.

Line 112:

Line 112:

* Select the volume to be resized in the '''Volume scheme'''.

* Select the volume to be resized in the '''Volume scheme'''.

−

* Decide how much space you wish to have for your Mac OS X partition, and how much for Arch Linux. Remember that a typical installation of Mac OS X requires around 15-20 GiB, depending on the number of software applications and files.

+

* Decide how much space you wish to have for your OS X partition, and how much for Arch Linux. Remember that a typical installation of OS X requires around 15-20 GiB, depending on the number of software applications and files.

−

* Finally, type the new (smaller) size for the Mac OS X partition in the size box and click '''Apply'''. This will create a new partition out of the empty space. You will delete this partition later.

+

* Finally, type the new (smaller) size for the OS X partition in the size box and click '''Apply'''. This will create a new partition out of the empty space. You will delete this partition later.

−

{{Note | if you wish to have a shared partition between Mac OS X and Arch Linux, then additional steps will need to happen here. Please see [[#Shared Partition|Shared Partition]].}}

+

{{Note|if you wish to have a shared partition between OS X and Arch Linux, then additional steps will need to happen here. Please see [[#Shared Partition]].}}

−

* If the above completed successfully, then you can continue. If not, then you may need to fix your partitions from within Mac OS X first.

+

* If the above completed successfully, then you can continue. If not, then you may need to fix your partitions from within OS X first.

* Boot the Arch install CD by holding down the alt key during Boot. Follow one of the procedures below according to your choice of boot-method.

* Boot the Arch install CD by holding down the alt key during Boot. Follow one of the procedures below according to your choice of boot-method.

−

====EFI====

+

+

==== EFI ====

+

* Run '''cgdisk'''

* Run '''cgdisk'''

−

* Delete the partition you made in Disk Utility.app and create the necessary partitions for Arch Linux. Mac OS X likes to see a 128MiB gap after partitions, so when you create the first partition after the last Mac OS X-partition, type in '''+128M''' when cgdisk asks for the first sector for the partition. A simple example (no LVM, crypto):

+

* Delete the partition you made in Disk Utility.app and create the necessary partitions for Arch Linux. OS X likes to see a 128 MiB gap after partitions, so when you create the first partition after the last Mac OS X-partition, type in '''+128M''' when cgdisk asks for the first sector for the partition. A simple example (no LVM, crypto):

−

{{Note | The swap partition is optional, on machines with a RAM of size 4GB or more, good performance can be expected without a swap partition. Also, a '''swap file''' can be created later, see [[Swap#Swap file|Swap file]].}}

+

{{Note|

−

{{Note | If you want to be able to boot GRUB from the Apple boot loader, you can create a small hfs+ partition (for convenience, use mac osx to format it in Disk Utility.app afterwards). Follow the grub efi install procedure, and mount your /boot/efi directory to the hfs+ partition you created. Finally, finish up again in mac osx by blessing the partition. This will set grub as the default boot option (holding alt at startup goes to the mac boot options screen still. See http://mjg59.dreamwidth.org/7468.html)}}

+

* The swap partition is optional, on machines with a RAM of size 4GB or more, good performance can be expected without a swap partition. Also, a '''swap file''' can be created later, see [[Swap#Swap file]].

−

{{Note | For more information on partitioning, see [[Beginners'_Guide#Partitioning hard disks: General information|Partitioning hard disks: General information]].}}

+

* If you want to be able to boot GRUB from the Apple boot loader, you can create a small hfs+ partition (for convenience, use OS X to format it in Disk Utility.app afterwards). Follow the GRUB EFI install procedure, and mount your {{ic|/boot/efi}} directory to the hfs+ partition you created. Finally, finish up again in OS X by blessing the partition. This will set GRUB as the default boot option (holding alt at startup goes to the mac boot options screen still. See http://mjg59.dreamwidth.org/7468.html)

+

* For more information on partitioning, see [[Partitioning]].

+

* OS X's EFI partition can be shared with archlinux, making the creation of an additional EFI partition dedicated to arch completely optional

+

}}

partition mountpoint size type label

partition mountpoint size type label

/dev/sda1 /boot/efi 200MiB vfat EFI

/dev/sda1 /boot/efi 200MiB vfat EFI

Line 138:

Line 143:

/dev/sda8 /home remaining ext4 home

/dev/sda8 /home remaining ext4 home

−

* Done, you can continue to [[MacBook#Installation | installation]]

+

* Done, you can continue to [[#Installation]]

−

====BIOS-compatibility====

+

==== BIOS-compatibility ====

−

* Run '''parted'''

+

−

# parted

+

* Run '''parted''' as root.

* 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).

* 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're not sure how to do this using {{ic|mkfs.ext2}} (or whatever), run {{ic|/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.

+

* Next, create new filesystems on those partitions which need them, especially the partition which will contain /boot. If you're not sure how to do this using {{ic|mkfs.ext2}} (or whatever), run {{ic|/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.

+

* 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.

−

# reboot

+

−

* Done, you can continue to [[MacBook#Installation | installation]]

+

* Done, you can continue to [[#Installation]]

−

===Mac OS X, Windows XP, & Arch Linux Triple boot===

+

=== Mac OS X, Windows XP, and Arch Linux triple boot ===

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

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

Line 159:

Line 163:

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.

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.}}

+

{{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.}}

* Select the drive to be partitioned in the left-hand column (not the partitions!). Click on the '''partition''' tab on the right.

* Select the drive to be partitioned in the left-hand column (not the partitions!). Click on the '''partition''' tab on the right.

Line 182:

Line 186:

* Finally, click '''apply'''. This will create a new partition out of the empty space.

* Finally, click '''apply'''. This will create a new partition out of the empty space.

−

{{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.}}

+

{{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.}}

* If the above completed successfully, you can continue. If not, then you may need to fix your partitions from within Mac OS X first.

* If the above completed successfully, you can continue. If not, then you may need to fix your partitions from within Mac OS X first.

−

* You will not be needing boot camp this way, the program rEFIt is much more flexible (though not as flexible as Grub). Download and install rEFIt [[http://refit.sourceforge.net/]]

+

* You will not be needing boot camp this way, the program rEFIt is much more flexible (though not as flexible as GRUB). Download and install rEFIt [[http://refit.sourceforge.net/]]

* Go into a terminal in OS X and perform the following, this will enable the rEFIt boot manager.

* Go into a terminal in OS X and perform the following, this will enable the rEFIt boot manager.

−

{{bc|

+

−

cd /efi/refit

+

cd /efi/refit

−

./enable.sh

+

./enable.sh

−

}}

+

* Reboot to check the rEFIt is working, it should appear on boot. When it comes up go to the rEFIt partition manager and agree to the changes.

* Reboot to check the rEFIt is working, it should appear on boot. When it comes up go to the rEFIt partition manager and agree to the changes.

Line 199:

Line 202:

** 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.

** 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.

−

* Boot the Arch install CD, log in as root and run /arch/setup

+

* Boot the Arch install CD, log in as root and run {{ic|# /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.

* 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.

Line 206:

Line 209:

# reboot

# reboot

−

* Done! Please continue to [[MacBook#Installation | installation]]

+

* Done! Please continue to [[#Installation]]

−

==Booting Directly from GRUB==

+

== Booting directly from GRUB ==

−

It is possible to boot directly from GRUB2 in efi mode without using refit. These instructions are known to work on a Macbook 7,1. It is advisable to host GRUB on either a fat32 or HFS+ partition, but ext2 or ext3 may also work. GRUB's appleloader command does not currently work with the 7,1, but support can be added with the patch available [https://savannah.gnu.org/bugs/index.php?33185 here].

+

+

It is possible to boot directly from GRUB in EFI mode without using rEFIt. These instructions are known to work on a Macbook 7,1. It is advisable to host GRUB on either a FAT32 or HFS+ partition, but ext2 or ext3 may also work. GRUB's appleloader command does not currently work with the 7,1, but support can be added with the patch available [https://savannah.gnu.org/bugs/index.php?33185 here].

+

+

After the GRUB install is in the desired location, the firmware needs to be instructed to boot from that location. This can be done from either an existing OS X install or an OS X install disk. The following command assumes that the GRUB install is in {{ic|/efi/grub}} on an existing OS X partition:

+

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

+

+

=== Compilation ===

−

After the GRUB install is in the desired location, the firmware needs to be instructed to boot from that location. This can be done from either an existing OS X install or an OS X install disk. The following command assumes that the GRUB install is in /efi/grub on an existing OS X partition:

{{ 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 [[MacBook#Post-Install Configuration | post install]].}}

+

+

{{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]].}}

{{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&#61;off. After chrooting, add MODULES&#61;"ata_generic" into /etc/mkinitcpio.conf and execute mkinitcpio -p linux, see: [[Installation_Guide#Configure_the_system | Installation Guide, 9 Configure the system]].}}

+

{{Note|

−

{{Note | 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&#61;force}}

+

* 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&#61;off. After chrooting, add MODULES&#61;"ata_generic" into /etc/mkinitcpio.conf and execute mkinitcpio -p linux, see: [[Installation_Guide#Configure_the_system|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&#61;force}}

* Log in as '''root'''

* Log in as '''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#Setup wireless in the live environment (optional)|Beginners_Guide]]}}

+

{{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#Setup wireless in the live environment (optional)|Beginners_Guide]]}}

* Proceed through the installation as described in the [[Official Arch Linux Install Guide]] '''except''' in the following areas:

* Proceed through the installation as described in the [[Official Arch Linux Install Guide]] '''except''' in the following areas:

−

** In the [[Official Arch Linux Install Guide#Prepare Hard Drive | prepare hard drive]] stage, do only the [[Official Arch Linux Install Guide#Manually configure block devices, filesystems and mountpoints | set filesystem mountpoints]] step, taking care to assign the correct partitions. Partitions have already been created if you followed [[Macbook#Partition]]

+

** In the [[Official Arch Linux Install Guide#Prepare Hard Drive|prepare hard drive]] stage, do only the [[Official Arch Linux Install Guide#Manually configure block devices, filesystems and mountpoints|set filesystem mountpoints]] step, taking care to assign the correct partitions. Partitions have already been created if you followed [[#Partition]]

** '''(for booting with BIOS-compatibility)''' In the [[Official Arch Linux Install Guide#Install Bootloader | install boot loader]] stage, edit the menu.lst file and add '''reboot=pci''' to the end of the '''kernel''' lines, for example: {{bc|1=kernel /vmlinuz26 root=/dev/sda5 ro reboot=pci}} This will allow your MacBook to reboot correctly from Arch.

+

** '''(for booting with BIOS-compatibility)''' In the [[Official Arch Linux Install Guide#Install Bootloader|install boot loader]] stage, edit the menu.lst file and add '''reboot=pci''' to the end of the '''kernel''' lines, for example: {{bc|1=kernel /vmlinuz26 root=/dev/sda5 ro reboot=pci}} This will allow your MacBook to reboot correctly from Arch.

−

** '''(for booting with BIOS-compatibility)''' Also in the [[Official Arch Linux Install Guide#Install Bootloader | install boot loader]] stage, install GRUB on whatever partition that {{ic|/boot}} is on. {{Warning | Do not install GRUB onto ''/dev/sda'' !!! Doing so is likely to lead to an unstable post-environment.}}

+

** '''(for booting with BIOS-compatibility)''' Also in the [[Official Arch Linux Install Guide#Install Bootloader|install boot loader]] stage, install GRUB on whatever partition that {{ic|/boot}} is on. {{Warning|Do not install GRUB onto ''/dev/sda'' !!! Doing so is likely to lead to an unstable post-environment.}}

−

** In the [[Official Arch Linux Install Guide#Configure System | configure system]] stage, edit /etc/mkinitcpio.conf and add the '''usbinput''' hook to the '''HOOKS''' line somewhere after the '''autodetect''' hook. This will load the drivers for your keyboard in case you need to use it before Arch boots (e.g. entering a [[LUKS]] password or using the troubleshooting shell).

+

** In the [[Official Arch Linux Install Guide#Configure System|configure system]] stage, edit /etc/mkinitcpio.conf and add the '''usbinput''' hook to the '''HOOKS''' line somewhere after the '''autodetect''' hook. This will load the drivers for your keyboard in case you need to use it before Arch boots (e.g. entering a [[LUKS]] password or using the troubleshooting shell).

* When the install process is complete, reboot your computer.

* When the install process is complete, reboot your computer.

−

# reboot

* If using optical media, hold down the eject key as your MacBook starts, this should eject the Arch Linux install disk.

* If using optical media, hold down the eject key as your MacBook starts, this should eject the Arch Linux install disk.

Line 288:

Line 296:

=== Additional steps for Arch Linux only install===

=== Additional steps for Arch Linux only install===

−

{{ 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.}}

+

+

{{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 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

* In order to do this you will need the original Mac OS X install disk

Line 303:

Line 312:

* After a few seconds of grey screen, your boot loader screen should appear automatically.

* After a few seconds of grey screen, your boot loader screen should appear automatically.

−

==Post-Install Configuration==

+

== Post-install configuration ==

=== Xorg ===

=== Xorg ===

Line 317:

Line 326:

$ lspci | grep VGA

$ lspci | grep VGA

−

* If it returns a string containing '''intel''' you only need the '''xf86-video-intel''' driver. You can install it by typing

+

* If it returns a string containing '''intel''' you only need the {{Pkg|xf86-video-intel}} driver.

{{Tip|MBP 6.2 - With the proprietary [[NVIDIA]] drivers, support for [[NVIDIA#Enabling Pure Video HD (VDPAU/VAAPI)|PureVideo HD]] is available for hardware video decoding. }}

−

+

−

For MacBooks with NVIDIA graphics, for the backlight to work properly you may need the [https://aur.archlinux.org/packages.php?ID=25467 nvidia-bl] package found in the [[AUR]].

+

−

{{Tip|If backlight control doesn't work after installing nvidia-bl, you should [[Kernel modules#Blacklisting|blacklist]] apple_bl kernel module.}}

+

For MacBooks with NVIDIA graphics, for the backlight to work properly you may need the {{AUR|nvidia-bl}} package found in the [[AUR]].

−

{{Tip|Alternatively, you can choose to use the [https://aur.archlinux.org/packages/pommed-light/ pommed-light] package found in the [[AUR]]. 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.}}

+

{{Tip|

+

* If backlight control doesn't work after installing nvidia-bl, you should [[Kernel modules#Blacklisting|blacklist]] apple_bl kernel module.

+

* Alternatively, you can choose to use the {{AUR|pommed-light}} package. If you do so, you may wish to change the step settings in {{ic|/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 =====

===== Macbook 6.2+ - EFI =====

Line 341:

Line 348:

===== MacbookPro 5.5, NVIDIA and secondary display =====

===== MacbookPro 5.5, NVIDIA and secondary display =====

−

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 [http://www.nvnews.net/vbulletin/showthread.php?t=122606 long-live supported] 275xx drivers seem to work fine. Install [https://aur.archlinux.org/packages.php?ID=52283 nvidia-275xx] and [https://aur.archlinux.org/packages.php?ID=52285 nvidia-utils-275xx ] from [[AUR]], and possibly [https://aur.archlinux.org/packages.php?ID=52284 lib32-nvidia-utils-275xx] if you are on x86_64 system and want 32-bits support.

+

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 [http://www.nvnews.net/vbulletin/showthread.php?t=122606 long-live supported] 275xx drivers seem to work fine. Install {{AUR|nvidia-275xx}} and {{AUR|nvidia-utils-275xx}}, and possibly {{AUR|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.

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

Line 347:

Line 354:

==== Touchpad ====

==== Touchpad ====

−

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: [https://aur.archlinux.org/packages.php?ID=46339 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 [http://bitmath.org/code/multitouch/ the driver's project page].

+

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: {{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 [http://bitmath.org/code/multitouch/ 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 [https://aur.archlinux.org/packages.php?ID=48505 xf86-input-mtrack-git]. Configuration options are documented in the [https://github.com/BlueDragonX/xf86-input-mtrack readme].

+

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 {{AUR|xf86-input-mtrack-git}}. Configuration options are documented in the [https://github.com/BlueDragonX/xf86-input-mtrack readme].

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

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

Line 359:

Line 366:

MatchDevicePath "/dev/input/event10"

MatchDevicePath "/dev/input/event10"

+

+

'''Natural scrolling:''' To configure natural two finger scrolling similar to [http://www.apple.com/au/osx/what-is/gestures.html#gallery-gestures-scroll Mac OSX], refer to [[Touchpad_Synaptics#Natural_Scrolling]]. If you are using GNOME, it will override these settings - in this case refer to [[GNOME#Natural_scrolling_touchpad]].

'''Special Note About Older Macbook Models (confirmed on MacBook 2,1):''' On older Macbook models (pre-multitouch), the touchpad will not function properly until you install the xf86-input-synaptics package. Please see [[Touchpad Synaptics]] for more information on installing and configuring this package.

'''Special Note About Older Macbook Models (confirmed on MacBook 2,1):''' On older Macbook models (pre-multitouch), the touchpad will not function properly until you install the xf86-input-synaptics package. Please see [[Touchpad Synaptics]] for more information on installing and configuring this package.

Line 385:

Line 394:

MacBook keyboard works by default. For swaping fn keys with Fx keys see [[Apple Keyboard]].

MacBook keyboard works by default. For swaping fn keys with Fx keys see [[Apple Keyboard]].

−

To enable it you can map with right application like '''xbindkeys''' or through DE preferences; but another very good way, that we recommend, is to install [https://aur.archlinux.org/packages.php?ID=14833 pommed] from the [[AUR]].

+

To enable it you can map with right application like '''xbindkeys''' or through DE preferences; but another very good way, that we recommend, is to install {{AUR|pommed}} from the [[AUR]].

−

Edit the '''/etc/pommed.conf''' according to your hardware on MacBook, building

+

Edit the {{ic|/etc/pommed.conf}} according to your hardware on MacBook, building

−

it from '''/etc/pommed.conf.mac''' or '''/etc/pommed.conf.ppc''' example files.

+

it from {{ic|/etc/pommed.conf.mac}} or {{ic|/etc/pommed.conf.ppc}} example files.

−

Note that you can also run it without a configuration file, the defaults may work for you. Then

+

Note that you can also run it without a configuration file, the defaults may work for you. Then enable pommed [[Systemd]] service and reboot.

−

Put '''pommed''' at the end in your '''DAEMONS''' array in your '''/etc/rc.conf'''

+

{{Tip|if you are using Gnome or KDE you can easily configure ''3rd level functionality'', ''multimedia key'', etc. in Keyboard Preferences.}}

−

finally reboot your pc.

+

{{Note|See the [[Xorg input hotplugging]] page for other configuration information.}}

−

{{ Tip | if you are using Gnome or KDE you can easily configure ''3rd level functionality'', ''multimedia key'', etc. in Keyboard Preferences.}}

+

The keyboard backlight is controlled by {{ic|/sys/class/leds/smc::kbd_backlight}}. Write the desired value to {{ic|brightness}} in that directory.

−

+

−

{{ Note | see the [[Xorg input hotplugging]] page for other configuration information.}}

+

===== NVIDIA note =====

===== NVIDIA note =====

−

If the brightness does not function correctly through pommed, make sure you have installed the [https://aur.archlinux.org/packages.php?ID=25467 nvidia-bl] package and insert

+

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

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

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

−

Option "RegistryDwords" "EnableBrightnessControl=1"

+

Option "RegistryDwords" "EnableBrightnessControl=1"

−

save and reboot and check backlight buttons work.

+

Save and reboot and check backlight buttons work.

More information available at [https://help.ubuntu.com/community/MacBookPro5-5/Precise#LCD ubuntu macbook pro 5,5]

More information available at [https://help.ubuntu.com/community/MacBookPro5-5/Precise#LCD ubuntu macbook pro 5,5]

−

=== Wifi ===

+

=== Wi-Fi ===

−

{{ Tip | MBP 6.2: since kernel 2.6.32.35-1 this works out of the box }}

+

Different MacBook models have different wireless cards.

Different MacBook models have different wireless cards.

Line 429:

Line 435:

# lspci | grep Network

# lspci | grep Network

−

* if you have an Atheros all should works-out-of-the-box.

+

* If you have an Atheros card, all should work out-of-the-box.

−

* instead if you have a Broadcom follow the [[Broadcom BCM4312]] page.

+

* If you have a Broadcom card, follow the [[Broadcom BCM4312]] page.

* 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).

* 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).

Line 437:

Line 443:

* 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 [http://wireless.kernel.org/en/users/Download compat-wireless]

* 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 [http://wireless.kernel.org/en/users/Download compat-wireless]

−

''Note'': if your connection frequently drops, you may have to turn off wifi 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 {{bc|#!/bin/sh

+

{{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 {{ic|/etc/pm/wireless}} with the lines:

−

/sbin/iwconfig wlan0 power off}}

+

#!/bin/sh

+

iwconfig wlp2s0 power off

+

}}

=== Power management ===

=== Power management ===

Line 472:

Line 480:

==== Suspend to disk (hibernate) ====

==== Suspend to disk (hibernate) ====

+

{{Merge|Swap#Swap file|These part is duplication of Swap file section in Swap. Should check and merge it to Swap.}}

{{Merge|Swap#Swap file|These part is duplication of Swap file section in Swap. Should check and merge it to Swap.}}

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):

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):

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

−

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

+

# 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.

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

# chmod 600 swapfile

# chmod 600 swapfile

Line 486:

Line 495:

#

#

Note that we will not use this UUID later.

Note that we will not use this UUID later.

−

* Add the swapfile in fstab:

+

* Add the swapfile in {{ic|/etc/fstab}}:

/swapfile none swap sw 0 0

/swapfile none swap sw 0 0

−

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

+

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

# blkid -g

# blkid -g

# blkid

# blkid

Line 494:

Line 503:

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

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

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

+

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

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

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

Line 594:

Line 604:

* '''Color LCD-4271780.icc''' for MacBook (not Pro) based on CoreDuo or 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'''.}}

+

{{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 {{ic|/Users/<username>/Library/ColorSync/Profiles}}.}}

Finally you can activate it by running

Finally you can activate it by running

Line 600:

Line 610:

# xcalib ~/colorprofile.icc

# xcalib ~/colorprofile.icc

−

{{ Warning | 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).}}

+

{{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).}}

−

+

−

{{ Note | see '''xcalib''' man pages for further information.}}

+

=== Apple Remote ===

=== Apple Remote ===

Line 608:

Line 616:

First, to correctly install and configure the '''lirc''' software that control IR see [[Lirc]] wiki.

First, to correctly install and configure the '''lirc''' software that control IR see [[Lirc]] wiki.

−

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

+

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

#

#

Line 618:

Line 626:

LIRC_CONFIGFILE="/etc/lirc/lircd.conf"

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):

+

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

HFS+ partitions, now the default in Mac OS X, are not fully supported by Linux and are mounted as read-only by default. In order to write to an HFS+ partition, it is necessary to disable journaling. This can be accomplished using Mac OS X Disk Utility. Refer to this [http://support.apple.com/kb/ht2355 Apple support page] for more information.

HFS+ partitions, now the default in Mac OS X, are not fully supported by Linux and are mounted as read-only by default. In order to write to an HFS+ partition, it is necessary to disable journaling. This can be accomplished using Mac OS X Disk Utility. Refer to this [http://support.apple.com/kb/ht2355 Apple support page] for more information.

Line 695:

Line 703:

'''''UID Synchronization'''''

'''''UID Synchronization'''''

−

====In OS X====

+

==== In 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.}}

+

{{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.}}

−

=====Step 1: Change UID and GID(s)=====

+

===== Step 1: change UID and GID(s) =====

'''''Pre-Leopard'''''

'''''Pre-Leopard'''''

Line 713:

Line 721:

# Also change the '''GID''' value to 1000 (the value used by default for user account creation in Arch).

# Also change the '''GID''' value to 1000 (the value used by default for user account creation in Arch).

−

# Navigate to ''/groups/<new user name>'', automatically saving the changes you have made so far.

+

# Navigate to {{ic|/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.}}

+

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

'''''Leopard'''''

'''''Leopard'''''

Line 731:

Line 739:

# 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).

# 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).

−

=====Step 2: Change "Home" Permissions=====

+

===== Step 2: change "Home" permissions =====

−

# Open up '''Terminal''' in the ''/Applications/Utilities'' folder.

+

# Open up '''Terminal''' in the {{ic|/Applications/Utilities}} folder.

# 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.

# 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.

In OS X, download the ".dmg" from [http://refit.sourceforge.net/ 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/.}}

+

{{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:

Open up '''Terminal''' and enter:

−

cd /efi/refit; ./enable.sh

+

cd /efi/refit;

+

./enable.sh

−

===Problems with rEFIt===

+

=== Problems with 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:

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:

since they are .deb packages you will need the program {{Pkg|deb2targz}}.

== Model-specific information ==

== Model-specific information ==

Line 834:

Line 842:

/dev/sda1 -> /boot/efi

/dev/sda1 -> /boot/efi

−

The bootloader in use was [http://www.rodsbooks.com/refind/index.html 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 can't therefore use {{ic|efibootmgr}}, because the EFI variables (even with 'modprobe efivars') are not available. While installing the system get [[yaourt]] and {{AUR|mactel-boot}} from the [[AUR]]. The {{ic|hfs-bless}} utility comes in handy, when blessing the EFI bootloader. This is done by calling e.g.

+

The bootloader in use was [http://www.rodsbooks.com/refind/index.html 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 can't therefore use {{ic|efibootmgr}}, because the EFI variables (even with 'modprobe efivars') are not available. While installing the system get {{AUR|mactel-boot}} from the [[AUR]]. The {{ic|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

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

Line 842:

Line 850:

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 {{ic|/etc/mkinitcpio.conf}} solved this ([https://bbs.archlinux.org/viewtopic.php?pid=1139226#p1139226 original post]).

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 {{ic|/etc/mkinitcpio.conf}} solved this ([https://bbs.archlinux.org/viewtopic.php?pid=1139226#p1139226 original post]).

−

{{hc|# nano /etc/mkinitcpio.conf|2=

+

{{hc|/etc/mkinitcpio.conf|2=

MODULES="ahci sd_mod"}}

MODULES="ahci sd_mod"}}

−

Rebuild your kernel image

+

Rebuild your kernel image:

mkinitcpio -p linux

mkinitcpio -p linux

Line 853:

Line 861:

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 [http://ubuntuforums.org/showpost.php?p=7828260&postcount=4 original post]. This is valid for GPT partitioned discs, so please check your environment and save your MBR first.

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 [http://ubuntuforums.org/showpost.php?p=7828260&postcount=4 original post]. This is valid for GPT partitioned discs, so please check your environment and save your MBR first.

−

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

+

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

=== MacBook Pro ===

=== MacBook Pro ===

Line 862:

Line 870:

=== MacBook Air===

=== MacBook Air===

+

==== Mid 2012 13" - Version 5,2 ====

==== 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).

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 ====

==== 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

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

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

Line 871:

Line 882:

===== Installing using the Archboot 2012.06 image =====

===== Installing using the Archboot 2012.06 image =====

+

Several people have reported problems installing Arch Linux on the MBA version 5,2 (See [https://bbs.archlinux.org/viewtopic.php?id=144089 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.

Several people have reported problems installing Arch Linux on the MBA version 5,2 (See [https://bbs.archlinux.org/viewtopic.php?id=144089 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 grub2 boot line (if you use grub2) 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 ([https://www.archlinux.org/news/filesystem-upgrade-manual-intervention-required-1/ filesystem] and [https://www.archlinux.org/news/the-lib-directory-becomes-a-symlink/ 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.

+

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 ([https://www.archlinux.org/news/filesystem-upgrade-manual-intervention-required-1/ filesystem] and [https://www.archlinux.org/news/the-lib-directory-becomes-a-symlink/ 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,

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

Line 883:

Line 895:

pacman -S filesystem --force

pacman -S filesystem --force

−

As described here ([https://wiki.archlinux.org/index.php/DeveloperWiki:usrlib 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,

+

As described in [[DeveloperWiki:usrlib|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

pacman -S linux

Line 891:

Line 903:

pacman -Su

pacman -Su

−

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

+

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

−

pacman -S linux

+

Now this command shouldn't 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 [https://bbs.archlinux.org/viewtopic.php?id=144089 forum].

−

+

−

Now this command shouldn't 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 GRUB2. 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 [https://bbs.archlinux.org/viewtopic.php?id=144089 forum].

+

==== Mid 2011 - Version 4,x ====

==== Mid 2011 - Version 4,x ====

−

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

+

+

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 ====

==== Early 2008 - Version 1,1 ====

+

Everything works out of the box though you'll need [https://www.archlinux.org/packages/core/x86_64/b43-fwcutter/ b43-fwcutter] (or simply [https://aur.archlinux.org/packages/b43-firmware/ b43-firmware]) for the wireless adapter to work.

Everything works out of the box though you'll need [https://www.archlinux.org/packages/core/x86_64/b43-fwcutter/ b43-fwcutter] (or simply [https://aur.archlinux.org/packages/b43-firmware/ b43-firmware]) for the wireless adapter to work.

−

Since this model has a single USB, you may find it easiest to install Arch by using a USB hub with an USB wireless adapter and the arch installation media.

+

+

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.

Installing Arch Linux on a MacBook (Pro) is quite similar to installing it on any other computer. However, due to the specific hardware configuration on a MacBook, there are a few deviations and special considerations which warrant a separate guide. For more background information, please see the Installation Guide, Beginners' Guide. This guide contains installation-instructions that can be used on any Apple computer whose hardware is supported by the Linux kernel. Please see 'related' pages (on the top right of this page) for model-specific tips and troubleshooting.

Tip: rEFIt is a popular bootloader for EFI-firmware computers (including Macs). It can be installed at any time during the installation. For instructions, please see #rEFIt.

Installation of Mac OS X and firmware update

Apple has excellent instructions for installing OS X. Follow their instructions. Once OS X is installed, go to Apple Menu > Software Update and update all software. Once this has run, you will need to reboot your computer. Do this, and then run Software Update again to check to make sure that all updates have been installed.

If you are not going to have OS X installed, make backups of these files:

If you do not know which option to pick, we recommend the dual boot so you can still return to OS X whenever you want.

Arch Linux only

This situation is the easiest to deal with. Mostly, partitioning is the same as any other hardware that Arch Linux can be installed on. The only special consideration is the MacBook firmware boot sound. To ensure that this sound is off: mute the volume in OS X before continuing further. The MacBook firmware relies on the value in OS X, if available. Note that if you choose to get rid of the OS X partition, there is no easy way to update your machines firmware unless you use an external drive to boot OS X.
You can boot in EFI mode (recommended) or bios-compatibility mode, if in doubt choose EFI.

Mac OS X with Arch Linux

The easiest way to partition your hard drive, so that OS X and Arch Linux will co-exist, is to use partitioning tools in OS X and then finish with Arch Linux tools.

Warning: It is highly recommended that this only be attempted after a clean install of OS X. Using these methods on a pre-existing system may have undesired results.

Note: If you have any problems, try using gparted (i.e. instead of using Disk Utility and/or cgdisk). It is capable of shrinking the OS X partition and creating Linux partitions ready for installation.

Procedure:

In OS X, run Disk Utility.app (located in /Applications/Utilities)

Select the drive to be partitioned in the left-hand column (not the partitions!). Click on the partition tab on the right.

Select the volume to be resized in the Volume scheme.

Decide how much space you wish to have for your OS X partition, and how much for Arch Linux. Remember that a typical installation of OS X requires around 15-20 GiB, depending on the number of software applications and files.

Finally, type the new (smaller) size for the OS X partition in the size box and click Apply. This will create a new partition out of the empty space. You will delete this partition later.

Note: if you wish to have a shared partition between OS X and Arch Linux, then additional steps will need to happen here. Please see #Shared Partition.

If the above completed successfully, then you can continue. If not, then you may need to fix your partitions from within OS X first.

Boot the Arch install CD by holding down the alt key during Boot. Follow one of the procedures below according to your choice of boot-method.

EFI

Run cgdisk

Delete the partition you made in Disk Utility.app and create the necessary partitions for Arch Linux. OS X likes to see a 128 MiB gap after partitions, so when you create the first partition after the last Mac OS X-partition, type in +128M when cgdisk asks for the first sector for the partition. A simple example (no LVM, crypto):

Note:

The swap partition is optional, on machines with a RAM of size 4GB or more, good performance can be expected without a swap partition. Also, a swap file can be created later, see Swap#Swap file.

If you want to be able to boot GRUB from the Apple boot loader, you can create a small hfs+ partition (for convenience, use OS X to format it in Disk Utility.app afterwards). Follow the GRUB EFI install procedure, and mount your /boot/efi directory to the hfs+ partition you created. Finally, finish up again in OS X by blessing the partition. This will set GRUB as the default boot option (holding alt at startup goes to the mac boot options screen still. See http://mjg59.dreamwidth.org/7468.html)

BIOS-compatibility

Run parted as root.

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're 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, and Arch Linux triple boot

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.

Procedure:

In Mac OS X, run Disk Utility (located in /Applications/Utilities).

Select the drive to be partitioned in the left-hand column (not the partitions!). Click on the partition tab on the right.

Select the volume to be resized in the volume scheme.

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)

Finally, click apply. This will create a new partition out of the empty space.

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.

If the above completed successfully, you can continue. If not, then you may need to fix your partitions from within Mac OS X first.

You will not be needing boot camp this way, the program rEFIt is much more flexible (though not as flexible as GRUB). Download and install rEFIt [[1]]

Go into a terminal in OS X and perform the following, this will enable the rEFIt boot manager.

cd /efi/refit
./enable.sh

Reboot to check the rEFIt is working, it should appear on boot. When it comes up go to the rEFIt partition manager and agree to the changes.

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.

Boot the Arch install CD, log in as root and run # /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.

Booting directly from GRUB

It is possible to boot directly from GRUB in EFI mode without using rEFIt. These instructions are known to work on a Macbook 7,1. It is advisable to host GRUB on either a FAT32 or HFS+ partition, but ext2 or ext3 may also work. GRUB's appleloader command does not currently work with the 7,1, but support can be added with the patch available here.

After the GRUB install is in the desired location, the firmware needs to be instructed to boot from that location. This can be done from either an existing OS X install or an OS X install disk. The following command assumes that the GRUB install is in /efi/grub on an existing OS X partition:

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

Log in as 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

(for booting with BIOS-compatibility) In the install boot loader stage, edit the menu.lst file and add reboot=pci to the end of the kernel lines, for example:

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

This will allow your MacBook to reboot correctly from Arch.

(for booting with BIOS-compatibility) Also in the install boot loader stage, install GRUB on whatever partition that /boot is on.

Warning: Do not install GRUB onto /dev/sda !!! Doing so is likely to lead to an unstable post-environment.

In the configure system stage, edit /etc/mkinitcpio.conf and add the usbinput hook to the HOOKS line somewhere after the autodetect hook. This will load the drivers for your keyboard in case you need to use it before Arch boots (e.g. entering a LUKS password or using the troubleshooting shell).

When the install process is complete, reboot your computer.

If using optical media, hold down the eject key as your MacBook starts, this should eject the Arch Linux install disk.

If dual-booting Mac OS X and Arch Linux, hold down the alt (option) key while the system boots to use the Mac bootloader to select which OS to boot.

Additional steps for Arch Linux only install

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 don't have it separate). The format should be /dev/disk0sX, where X is a number from 1 to infinity

NVIDIA note

Tip: MBP 6.2 - With the proprietary NVIDIA drivers, support for PureVideo HD is available for hardware video decoding.

For MacBooks with NVIDIA graphics, for the backlight to work properly you may need the nvidia-blAUR package found in the AUR.

Tip:

If backlight control doesn't work after installing nvidia-bl, you should blacklist apple_bl kernel module.

Alternatively, you can choose to use the pommed-lightAUR 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 has an NVIDIA 9400m graphics card. This problem might apply to other devices as well.

Touchpad

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-gitAUR. 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-gitAUR. Configuration options are documented in the readme.

Special Note About Older Macbook Models (confirmed on MacBook 2,1): On older Macbook models (pre-multitouch), the touchpad will not function properly until you install the xf86-input-synaptics package. Please see Touchpad Synaptics for more information on installing and configuring this package.

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

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

Power management

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 (kernel suspend)

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)

This article or section is a candidate for merging with Swap#Swap file.

Notes: These part is duplication of Swap file section in Swap. Should check and merge it to Swap. (Discuss in Talk:MacBook#)

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.

Light sensor

If you want to use the built in light sensor to automatically adjust screen and keyboard backlight brightness check out
Lighter[4] (simple perl script, easy to fine-tune) and Lightum[5] (Requires Gnome or KDE but is older and more complete than Lighter).

Sound

Tip: MBP 5.5: since kernel 2.6.32 this works out of the box - just unmute the front speakers and store the sound level

First of all follow ALSA wiki page, then if something does not work correctly, continue reading this part.

Temperature Sensors

Color Profile

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

First, to correctly install and configure the lirc software that control IR see Lirc wiki.

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

As we see, the "Unknown" partition is our OS X partition, which is located in /dev/sda2.

Create a "mac" folder in /media:

# mkdir /media/mac

Add at the end of /etc/fstab this line:

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

Mount it :

mount /media/mac

and check it:

ls /media/mac

HFS+ Partitions

HFS+ partitions, now the default in Mac OS X, are not fully supported by Linux and are mounted as read-only by default. In order to write to an HFS+ partition, it is necessary to disable journaling. This can be accomplished using Mac OS X Disk Utility. Refer to this Apple support page for more information.

Home Sharing

UID Synchronization

In 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.

Step 1: change UID and GID(s)

Pre-Leopard

Open NetInfo Manager located in the /Applications/Utilities folder.

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.

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.

Change the UID value to 1000 (the value used by default for first user created in Arch).

Also change the GID value to 1000 (the value used by default for user account creation in Arch).

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:

Open System Preferences.

Click on Accounts.

Unlock the pane if not already done so.

Right-click on the desired user and select Advanced Options.

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).

Step 2: change "Home" permissions

Open up Terminal in the /Applications/Utilities folder.

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.

In 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.

Avoid long EFI wait before booting

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:

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

Problems with 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:

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.

Model-specific information

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.

The hfsprogsAUR 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 can't therefore use efibootmgr, because the EFI variables (even with 'modprobe efivars') are not available. While installing the system get mactel-bootAUR 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 don't 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.

MacBook Pro

10,1

MacBook Air

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.

Installing using the Archboot 2012.06 image

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 don't 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 shouldn't 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'll 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.