MacBook (English)
From ArchWiki
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.
Article summary |
---|
Details the installation and configuration of Arch Linux on Apple's MacBook and MacBook Pro lines of notebooks. |
Languages |
English |
Italiano |
Related articles |
Official Arch Linux Install Guide |
Beginners Guide |
Beginners Guide Appendix |
Post Installation Tips |
Contents |
Overview
Specifically, the procedure for installing Arch Linux on a MacBook is:
- Install Mac OS X: Regardless of the desired end-configuration, it helps to start from a clean install of OS X.
- Firmware Update: This should help reduce errors and provide newer features for the hardware.
- Partition: This step either resizes or deletes the OS X partition and creates partitions for Arch Linux.
- Install Arch Linux: The actual installation procedure.
- Post-Install Configuration: MacBook specific configuration.
Installation of Mac OS X and Firmware Update
Apple already has excellent instructions for installing Mac OS X. Follow their instructions. Finally, 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 Mac OS X installed, you need to make a backup of the file:
/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport
You will need this file later for iSight functionality.
Partition
The next step in the installation is to re-partition the hard drive. If Mac OS X was installed using the typical procedure, then your drive should have a GPT format and the following two partitions:
- EFI partition: a 200 MB partition at the beginning of the disk.It is often read as msdos or FAT by some partitioning tools and usually labelled #1
- Mac OS X partition: the (HFS+) partition that should take up all of the remaining disk space. Usually labelled #2.
How to partition depends on how many operating systems you want install. The following options will be proposed here:
- Arch Linux Only for single boot.
- Mac OS X with Arch Linux for dual boot.
If you don't know which option to pick, we recommend the dual boot so you can still return to Mac 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 Mac OS X before continuing further. The MacBook firmware relies on the value in Mac OS X, if available.
Then partition with 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.
Once you have finished this part, please move on to Installation section.
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.
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, 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.
- Finally, type the new (smaller) size for the MacOS partition in the size box and click apply. This will create a new partition out of the empty space.
- 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.
- Boot the Arch install CD and run parted
# parted
- Delete the empty space partition and partition the space as you would for any other installation.
- 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 don't 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
- Done! Please continue to installation
Installation
- Boot from the Arch Linux install CD. Type arch at the boot prompt or arch vga=773 if you prefer a higher console resolution.
boot: arch vga=773
boot: arch noapic irqpoll acpi=force
- Log in as root
- Run the Arch installer:
/arch/setup
- Proceed through the installation as described in the Official Arch Linux Install Guide except in the following areas:
- In the prepare hard drive stage do only the set filesystem mountpoints step, taking care to assign the correct partitions.
- 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. - 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.
# reboot
- Hold down the eject key as your MacBook starts, this should eject the Arch Linux install disk.
Post-Install Configuration
Xorg
Install and configure Xorg by following the Xorg article.
Video
Different MacBook's models have different graphic cards.
To see which graphic card do you have type:
# lspci | grep VGA
If it returns a string with intel you need xf86-video-intel driver. You can install it typing
# pacman -S xf86-video-intel
If it returns nvidia
# pacman -S nvidia
Otherwise if it returns ATI
# yaourt catalyst
At least, intel users don't need any other work; instead others users need a basic xorg.conf file where you can specify the right driver to use.
To configure it read those pages ATI or NVIDIA.
Touchpad
The touchpad should have basic functionality by default.
To configure advanced functions, see Touchpad Synaptics and Xorg input hotplugging.
Keyboard
MacBook keyboard works by default. Only the eject key isn't recognized properly.
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 pommed from AUR.
To install and configure pommed is easy:
# yaourt pommed
to install it, after
Edit the /etc/pommed.conf according to your hardware on MacBook, building it from /etc/pommed.conf.mac or /etc/pommed.conf.ppc example files.
then
Put pommed at the end in your DAEMONS array in your /etc/rc.conf
finally reboot your pc.
Wifi
Different MacBook models have different wireless cards.
You can easily check what card do your MacBook have by:
# lspci | grep Network
- if you have an Atheros all should works-out-of-the-box.
- instead if you have a Broadcom follow the Broadcom BCM4312 page.
Sound
First of all follow ALSA wiki page, then if something doesn't work correctly, continue reading this part.
Edit your /etc/modprobe.d/50-sound.conf appending this line:
options snd_hda_intel model=intel-mac-auto
This should automatically specify the codec in your MacBook.
If you have an iMac8,1, you should instead use
options snd-hda-intel model=mbp3 position_fix=2
At least reboot.
Bluetooth
See the article on Bluetooth to install and configure all software needed.
Then if Bluetooth doesn't work out-of-the-box, you should edit your /etc/conf.d/bluetooth to enable hid2hci by uncommenting related line as follows:
HID2HCI_ENABLE="true"
Then restart your bluetooth daemon or simply reboot your pc.
iSight
iSight webcams require the Apple's proprietary firmware that can't be redistributed because proprietary. Then we must extract it from MacOS and load it Arch.
Tools to extract firmware is available at http://bersace03.free.fr/ift/ but we can found it on AUR isight-firmware-tools.
Instructions:
First you need to get the firmware out of a particular file located on your OS X install. It is located in /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport.
To get it, mounts the MacOSX drive with:
# sudo mkdir /media/MacOSX # sudo mount -t hfsplus /dev/sda2 /media/MacOSX
Then install the firmware extractor and let it do the work for you
# yaourt isight-firmware-tools
and click OK to accept the default path (/media/MacOSX/System...).
When it's done check that the firmware has been found:
# ls /lib/firmware/isight.fw
Once that is done, you need to completely SHUTDOWN your Mac and start it back up again (because this clears the hardware state of the camera).
Finally you can load the uvcvideo module or add it at the end of MODULES() array into your /etc/rc.conf if you want it to load at boot.
Everything should works.
To test it there are many software:
- MPlayer
# mplayer tv:// -tv driver=v4l2:width=1280:height=1024:device=/dev/video0 -fps 20
- Cheese
- Skype
- Ekiga
Temperature Sensors
For reading temperature just install and configure lm_sensors. See Lm sensors page.
Color Profile
We can use color profiles from Mac OS.
First install xcalib from AUR:
# yaourt xcalib
Second copy pre-saved color profiles placed in /Library/ColorSync/Profiles/Displays/ on Mac OS partition to ~/colorprofiles/ for example.
There are color profile files agree with in MacBook models; select the right one:
- Color LCD-4271800.icc for MacBook Pro with CoreDuo CPU
- Color LCD-4271880.icc for MacBook with Core2Duo
- Color LCD-4271780.icc for MacBook (not Pro) based on CoreDuo or Core2Duo.
Finally you can activate it by running
# xcalib ~/colorprofile.icc
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.
Use irrecord (available when installing lirc) to create a config file matching your remote control signals.
Start lircd and use irw to check if it works.
Example of an /etc/lircd.conf:
begin remote name lircd.conf.macbook bits 8 eps 30 aeps 100 one 0 0 zero 0 0 pre_data_bits 24 pre_data 0x87EEFD gap 211994 toggle_bit_mask 0x87EEFD01 begin codes Repeat 0x01 Menu 0x03 Play 0x05 Prev 0x09 Next 0x06 Up 0x0A Down 0x0C end codes end remote
((Load appleir if it isn't.))
Hfs Partition Sharing
First, we have to list our partitions. Use
fdisk -l /dev/sda
example output:
# fdisk -l /dev/sda Device Boot Start End Blocks Id Type /dev/sda1 1 26 204819 ee GPT /dev/sda2 26 13602 109051903+ af Unknown /dev/sda3 * 13602 14478 7031250 83 Linux /dev/sda4 14478 14594 932832+ 82 Linux swap / Solaris
As we see, the "Unknown" partition is our OS X partition, which is located in /dev/sda2
.
Create a "mac" folder in /media:
sudo mkdir /media/mac
Add at the end of /etc/fstab this line:
/dev/sda2 /media/mac hfsplus rw,exec,auto,users 0 0
Mount it :
mount /media/mac
and check it:
ls /media/mac
Home Sharing
UID Synchronization
In OS X
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.
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'll 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.
find /User/<your user name> -user <your old UID> -exec chown <your user name>:<your user group>
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 the famous /etc/fstab file.
rEFIt
Now install rEFIt if you have not done so already.
In OS X, download the ".dmg" from -> Refit Homepage and install it.
Open up Terminal and enter:
cd /efi/refit; ./enable.sh