|Summary help replacing me|
|This wiki page should help you in getting your MacBook Pro(Late 2013) to work with Arch Linux.|
|Official Arch Linux Install Guide|
- 1 Preparing for the Installation
- 2 Installation
- 3 Post installation
- 4 What does not work
- 5 Discussions
- 6 See also
Preparing for the Installation
Preparing the hard drive
Assuming you want to dual boot with OS X, so you can update firmware, you have to shrink its partition with Disk Utility. You can either create a HFS+ partition now to override later, or leave it empty.
Booting the live image
Now, download the latest Archboot ISO, write it to USB, and boot from it by selecting it in the Apple boot loader by holding
Alt on boot (use rEFIt if you cannot manage to select it). When it comes to the syslinux boot loader, press
Tab to edit the entry and append
nomodeset to fix screen corruption.
As mentioned below,
broadcom-wl is sufficient if you are using the Linux mainline kernel. For custom kernels, you need to use
broadcom-wl-dkms. Both are available from the AUR. The easiest way to get Wi-Fi connectivity during install is to build the package driver on a separate system using:
$ curl -O https://aur.archlinux.org/packages/br/broadcom-wl-dkms/broadcom-wl-dkms.tar.gz $ tar -zxvf broadcom-wl-dkms.tar.gz $ cd broadcom-wl-dkms $ makepkg -s
This will give you a package (
broadcom-wl-*.pkg.tar.xz) which can be installed using pacman. Put this package on a USB drive, mount it, and install the package using
# pacman -U broadcom-wl-*.pkg.tar.xz # modprobe wl
You may now use
wifi-menu to connect to your network of choice.
Run the installation wizard.
Using the MacBook's native EFI bootloader
This method uses the MacBook's native EFI bootloader, i.e. the one the can be reached when holding the alt-key during boot.
At the end of the install process we would normally install GRUB or a variation the the drive. For this method we will place a
boot.efi file on an extra partition used by the MacBook's native bootloader.
When generating a
boot.efi file, GRUB looks to
/etc/default/grub for its configuration. Edit the parameter
GRUB_CMDLINE_LINUX_DEFAULT to look something like this:
GRUB_CMDLINE_LINUX_DEFAULT="quiet rootflags=data=writeback libata.force=noncq"
libata.force=noncq parameter will prevent SSD lockups and the
rootflags option is used for SSD-performance.
Now we generate the
# grub-mkconfig -o /boot/grub/grub.cfg # grub-mkstandalone -o boot.efi -d /usr/lib/grub/x86_64-efi -O x86_64-efi /boot/grub/grub.cfg
Put this file on a USB (or other OS X accessible media) and reboot into OS X.
DiskUtility.app and erase the extra partition, mentioned above, to HFS+ and mount it.
$ mkdir -p <Path to root of extra partition>/System/Library/CoreServices $ mkdir <Parth to root of extra partition>/mach_kernel
boot.efi file to the
<Path to extra partition>/System/Library/CoreServices/ directory. Using your editor of choice, create a
SystemVersion.plist file in the CoreServices directory, which is located here:
<path to extra partition>/System/Library/CoreServices/SystemVersion.plist
Edit that file to look like this:
<xml version="1.0" encoding="utf-8"?> <plist version="1.0"> <dict> <key>ProductBuildVersion</key> <string></string> <key>ProductName</key> <string>Linux</string> <key>ProductVersion</key> <string>Arch Linux</string> </dict> </plist>
The last step is then to bless the extra partition using:
# bless --device disk0sX --setBoot
disk0sX is the extra partitions id. The id can be found using either
DiskUtility.app or by issuing:
# diskutil list
boot.efi from Arch Linux:
# grub-mkconfig -o /boot/grub/grub.cfg # mount -t hfsplus -o force,rw /dev/sdXY /mnt # mount the HFS+ partition # grub-mkstandalone -o /mnt/System/Library/CoreServices/boot.efi -d /usr/lib/grub/x86_64-efi -O x86_64-efi /boot/grub/grub.cfg
Direct EFI booting (rEFInd)
As of August 2013, refind can automatically detect the Arch kernel, removing the need for copying the kernel into the EFI partition. Simply install refind without the EFI file system drivers  using the
--nodrivers option , and enable the
also_scan_dirs options in
refind.conf (see link above for instructions.)
GRUB (with OS X)
Another solution is to install GRUB. Edit
/tmp/install/boot/grub/grub.cfg and edit the boot entry to load Linux mainline instead of the normal one. You might want to append
nomodeset to the kernel line again, at least for now.
Now cd into
/tmp/install/ and create the GRUB image by running:
grub-mkstandalone -o bootx64.efi -d usr/lib/grub/x86_64-efi -O x86_64-efi -C xz boot/grub/grub.cfg
This will create file called
boot64.efi which contains GRUB and the configuration file incorporated inside. It is important to
cd into the right directory to make it pick up the configuration file and put it into the right place within the image.
Copy this file to the MacBook's EFI partition. The downside of this method is that you need to repeat this step whenever you want to change the GRUB config. Reboot the machine and you should be able to select your installed Arch Linux by keeping the
Alt button pressed. It should appear as
To generate a nicer config use:
grub-mkconfig, (add in
nomodeset if you are using framebuffer), remove
quiet if you like the text, then to update your GRUB post-installation, do this to make the GRUB EFI file and put it in the EFI partition:
cd / grub-mkstandalone -o bootx64.efi -d usr/lib/grub/x86_64-efi -O x86_64-efi -C xz boot/grub/grub.cfg sudo mount /dev/sda1 /mnt sudo cp bootx64.efi /mnt/EFI/boot/bootx64.efi
Largest console font (although ugly) achieved by adding
It is still tiny but is at least readable.
MacBook Pro 11,1
- Intel works fine
MacBook Pro 11,2
- Intel works on Linux 3.13 and on Linux 3.12 with patch, see https://bugs.freedesktop.org/show_bug.cgi?id=71049
- Alternatively, use framebuffer, .
MacBook Pro 11,3
- Nvidia works (both 319.60 and 331.17 drivers)
See HiDPI for information on how to tweak the system for a Retina screen.
If you are using Xfce, you will probably experience tearing in Firefox, VLC, etc. Until newer versions of xfwm support OpenGL rendering, use another compositing window manager like compton with
backend = "glx".
- Headphones work
- Speakers work from kernel 3.13 and 3.12.2. 3.12.1 only with patch
- Patch: https://bugzilla.kernel.org/attachment.cgi?id=114081.
- See discussion here: https://bugzilla.kernel.org/show_bug.cgi?id=64401
- Optical audio can be turned off and on with above sound patch.
If you do not want to hear the annoying sound at system start-up, one way to get rid of it is to turn sound off while under Mac OS.
Volume keys can be made to work with
xfce4-volumed (if you are using Xfce).
Also, if you are using PulseAudio, sometimes it thinks HDMI is the default sound card; to solve this problem, installand set Analog Stereo as the fallback device.
One method is to install
Section "InputClass" MatchIsTouchpad "on" Identifier "touchpad catchall" Driver "synaptics" # 1 = left, 2 = right, 3 = middle Option "TapButton1" "1" Option "TapButton2" "3" Option "TapButton3" "2" # Palm detection Option "PalmDetect" "1" # Horizontal scrolling Option "HorizTwoFingerScroll" "1" # Natural Scrolling (and speed) Option "VertScrollDelta" "-100" Option "HorizScrollDelta" "-100" EndSection
- Works, see MacBook#Keyboard_Backlight
- Intel, works on Linux 3.13
- Framebuffer, works for MacBook Pro 11,1 and 11,3 via
- Nvidia, does not work
- Works on MacBook Pro 11,2 with Linux 3.13
- No backlight after suspend with Linux 3.12
- Use hibernate instead
What does not work
- AUR works
AUR from the
- Stability is an issue for some
- Listed on PCI bus as: Multimedia controller: Broadcom Corporation Device 1570.
- In OS X, the camera is listed as FaceTime HD camera 1570.
- No known Linux driver.