Best Linux For Macbook Pro
- Best Linux For Macbook Pro 2008
- Best Linux For Macbook Pro 2012
- Best Osx For Macbook Pro 2011
- Best Linux For Macbook Pro 2013
Insert the USB stick you created into the port on the left side of your MacBook Pro, and restart it while holding down the Option (or Alt) key just to the left of the Cmd key. This opens a menu of options to start the machine; use the EFI option, as that's the USB image. The laptop will boot from the USB device, and you can. And the Apple M1 chip already available on some of the recent Macs including MacBook Air 2020, Mac Mini 2020, and MacBook Pro 2020. It is a new chip and so there will be many incompatible Apps, Games, OS for some duration. But you can still follow some workaround. And here is a workaround on how to install Linux on M1 Macs.
- For MacBook Pro 13 (7,1) (Obsolete with squeeze) Current installer can not install. But you can use Iwamatsu's D-I. For MacBook Pro 13 (8,1) First of all, it is important that you read carefully the MacBook Install Section of Debian Wiki, so that you can prepare your Macbook Pro, and understand the terms needed for proceeding with the installation.
- 10 Best Linux Distros to Install on Your MacBook. Ubuntu GNOME, which is now the default flavour that has replaced Ubuntu Unity, needs no introduction. Being the most popular distro. Parrot Security OS.
- Best Linux Book Pro Install A New. Instead, install a new operating system and put it back into the rotation. Forget Windows, though: Linux is an open-source (and free) OS thats just as capable, but with lower system requirements and fewer security issues. Deploy it and your old desktop or laptop will feel very much like new.
Translation(s): русский
This page describes how to install Debian on a MacBook Pro.
Most points are the same like the MacBook so we point out the differences only.
Contents
- Install Debian
- Kernel
- X Window System
- Sound
- Touchpad
- Keyboard
- Debian 6 (squeeze) on MacBookPro7,1
- Appendix: Santa Rosa/LED MBP
Mar. 4, 2010, Debian testing on MacBookPro5,1: Installer works, but you might have to use dd to blow away the gpt tables from the BOTH the beginning and the end of your disk first, if it was once formatted by os x.
Feb. 10, 2010, Debian 5.0.4 on MacBookPro5,1: Default install runs error-free, but does not result in bootable installation. When machine tries to restart, screen fills partially with garbage and hangs. On manual hard restart, mac firmware shows flashing question-mark folder. -?AndrewWagner
July. 20, 2010, Current D-I(Debian 5.0.5 and testing) can not install on MacBookPro7,1. Because Linux kernel does not support MCP89 chipsetLinux:Bug 15923. (But this supports Linus/HEAD.) I backported this patch and made D-I. Work fine, Yay! -NobuhiroIwamatsu
July. 23, 2010, For MacBookPro7,1 use the Kernel since version 2.6.35-rc3.
Nov. 26 ,2010, 2.6.32-28 support ?MacBookPro7,1 and Macbook Air3,1.
Feb. 12, 2011, Debian 6 (squeeze) contains the kernel 2.6.32-5-amd64. The installation works out of the box for MacBookPro7,1. Nothing has to be patched manually to work properly. But there are some configurations to be done: Bluetooth, Wireless, Synaptics, Suspend to RAM. So I made up a new section for squeeze on MacBookPro7,1.
MacBook Pro specific bugs can be found at http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=macbook-pro;users=kraai@ftbfs.org.
Ubuntu wiki page on the MacBook Pro
Gentoo wiki page on the MacBook Pro
Odi's documentation of Gentoo on the MacBook Pro
iDebian Blog with some tips for getting LIRC or the Mighty Mouse running
See the MacBook Install Debian section.
If the kernel panics when you press return at the ISOLINUX prompt, enter 'install noapic' at the ISOLINUX prompt (the kernel may panic while enabling the IO-APIC IRQs, bug 381719).
For MacBook Pro 13 (7,1)
(Obsolete with squeeze) Current installer can not install. But you can use Iwamatsu's D-I.
For MacBook Pro 13 (8,1)
First of all, it is important that you read carefully the MacBook Install Section of Debian Wiki, so that you can prepare your Macbook Pro, and understand the terms needed for proceeding with the installation.
Note that the current Debian installer can not install, because it is not able to load the components from the cdrom (I was able to install Debian in Dualboot scheme). However, it is possible to proceed using a usb driver in which you'll dump all the archives of the same iso image used for burning the cdrom for making the installation and 'cheating' the debian installer by mounting the USB in /cdrom as follows:
- Prepare the USB driver. For this, you'll need the same ISO that you used for burning the cdrom and execute (I did it with netinst image of Debian Testing): Where /dev/disk1 correspond to your USB. Note that you can do this even in Mac OS X or other linux machine.
Proceed with the installation following the MacBook Install Section of Debian Wiki. It is important to boot with the USB attached to your Macbook Pro (if you don't do it like this, it may fail for mounting the device in /cdrom). But for installing, you are going to choose the cdrom as installer medium and not the USB.
- When the installer tries to load the components of the cdrom, it will fail. Now, open a TTY by executing Ctrl + Alt + F2, and mount the USB in /cdrom as follows: Where sdX should correspond to your device. Sometimes it can fail to mount the USB drive. If it doesn't work for you, then try to unplug the USB and plug it again. It should work.
Note: If you boot directly from the USB medium the installer automatically detects the components as it were a CDRom, no need to mount it manually, no need for a CD at all.
Go back to the installer by pressing Ctrl + Alt + F1, and keep doing the installation process up to GRUB or LILO. If you install either GRUB or LILO without syncing first, Linux won't boot. So, do not install any bootloader yet, and follow next step.
At this point, you are going to sync the partitions using refit. Open again a TTY (Ctrl + Alt + F2) and install refit and gptsync (I downloaded the 2 required debian packages in another USB from http://packages.debian.org).
Note: I didn't try by doing modprobe tg3, and use the internet connection (actually I didn't have idea about the module used until now ;)), but it should be worthy to try it (Instead of using other USB drive).
- Mount the USB containing refit and gptsync in /mnt: Copy the deb archives of refit /target/tmp:
- Chroot in /target and proceed to install refit and gptsync, and sync the MBR and GPT:
Once you have synced, get back to the installer (Ctrl + Alt + F1) and proceed to install GRUB (I did it and it worked. I didn't try with LILO). It is really IMPORTANT that you select as partition /dev/sdX3 (Where X correspond to your partitioning scheme). If you install GRUB in the MBR, this won't work. Anyways, if you do it by error it is possible to erase the MBR in Mac OS X.
Done!, enjoy Debian in your MacBook Pro 8.1!
For MacBook Pro 15' (8,2)
Here's a step by step tutorial on how to setup Debian in EFI mode on the late 2011 ?MacBookPro8,2: http://dentifrice.poivron.org/laptops/macbookpro8,2/
linux-2.6 2.6.22 should work out of the box.
linux-2.6 2.6.18-3 supports MacBook Pros out of the box, but you'll need to ensure that the appletouch module is loaded before the usbhid module. You can do so by creating a file /etc/modprobe.d/local.conf that contains the following line:
For some reason, this doesn't always work.
The MacBook instructions suggest that you use the kernel parameters 'noapic irqpoll acpi=force'. I found that on a March 2008 MacBook Pro, the irqpoll option caused the CDROM drive (HL-DT-ST DVDRW GSA-S10N, ATAPI CD/DVD-ROM drive) to give errors along the lines of
Using 'noapic acpi=force' instead solved the problem.
Using stock kernel and patch from svn
You can build your own kernel using the stock Linux kernel and the patches found in the mactel-linux SVN. Here is the steps to follow:
- download the source for the stock kernel from one of the kernel mirror,
- get the mactel-linux patches with svn:
- apply all the mactel-linux patches:
copy the config from the svn (trunk/kernel/mactel-patches-2.6.17/config-2.6.17-MBP) to your kernel dir, with name .config,
configure your kernel with make menuconfig, and control that CONFIG_FB_IMAC is not set,
build your kernel (fakeroot make-kpkg ...,
install your kernel (dpkg --install ...),
- reboot.
See the MacBook page for other details.
The first MBP versions have an ATI card built in (MBP 2,2: ATI Technologies Inc M56P [Radeon Mobility X1600]). Later versions (MBP 3,1 and up) have an Nvidia card.
The installation of x.org should work out of the box with the lenny (and later) version of x.org (nv or radeonhd drivers).
ATI graphics
Lenny contains the free radeonhd driver (package name xserver-xorg-video-radeonhd) which supports the ATI card and 3D. Squeeze defaults to the free radeon driver (xserver-xorg-video-radeon); you need to install the package firmware-linux-nonfree to use 3D acceleration.
If you wish to use the binary vendor driver on ATI cards, install the non-free fglrx-driver package and, in the Device section of /etc/X11/xorg.conf, change the driver from 'ati' to 'fglrx'. Afterwards, to enable 3D you need to build the kernel fglrx module:
PowerPlay does not work with the fglrx driver as of v8.42. A patched radeontool is available at http://www.g2inf.one.pl/~anszom/MBP-ATI/.
NVidia graphics
With MacBookPro5,5 under Debian Lenny (2.6.26), use the NVidia proprietary driver. Brightness adjustment can be obtained by using Ubuntu packages
For MacBookPro7,1 download the driver from Nvidia (Geforce GT 320M) and install it manually. (Obsolete with squeeze)
See the MacBook/Wireless page.
(Obsolete with squeeze) For MacBookPro7,1 apply the following patch to Kernel 2.6.35-rc3:
Then modprobe btusb.
See the MacBook Sound section.
MacBookPro2
With a Core 2 Duo MacBook Pro and kernel 2.6.18-3-amd64 sound only works with the headphone but no speaker output.
With a Core2 Duo MacBook Pro (built fall 06) running (unpatched) 2.6.18-3-686, sound output can be changed as follows in alsamixer:
- PCM channel changes overall volume
- Center and LFE channels change volume of headphones output (which is at the jack labled as line in!)
- Line in (only toggling mute possible) enables/disables built-in speakers
- IEC958 enables/disables optical IO on jack labled as headphones
- line in not yet worked out

MacBookPro3
With MBPv3 (mid 2007), sound works out-of-the-box starting with kernel 2.6.24.
MacBookPro5,5
With MacBook Pro 5.5 (mid 2009) with kernel 2.6.26, the following little hack helps to enable sound under Lenny.
Reboot
Under Squeeze, with kernel 2.6.32, simply add the following line to /etc/modprobe.d/alsa-base.conf
MacBookPro7,1
(Obsolete with squeeze) For MacBookPro7,1 with the kernel 2.6.35-rc3 and above, append the following line to /etc/modprobe.d/alsa-base
The front speaker can be unmuted with the gnome-alsamixer or with the alsamixer from console.
Apple ClickPad
Multi-touch gestures like the drag two-finger drag gesture are supported in the current xserver-xorg-input-synaptics package (>1.6.1).
If you would like your touchpad to behave like the natural scrolling mode in Mac OS X Lion, you have to add the next line to your ~/.Xmodmap
Apple Touchpad
?MacBookPro3,1 touchpad behavior might be smoother with the kernel boot option:
possibly adding it to the GRUB_CMDLINE_LINUX_DEFAULT line in /etc/defaults/grub
For older versions you can check PageFragmentClickPadOld
In the Keyboard section, it is possible to have an example on how to modify the .Xmodmap file.
For MacBook Pro 13 (8,1)
If your Macbook Pro has an English International Keyboard as this one: http://people.debian.org/~muammar/MB110Z.jpg So, the best layout you can use is the Macintosh (International) layout, and you can apply the next Xmodmap: http://people.debian.org/~muammar/Xmodmap which means that you download that file and you place it in your /home/ directory as .Xmodmap. In this Xmodmap file, the key Shift + 3 is showing the # instead of the £, and the question mark down (¿) is shown when pressing Alt-Right + /.
Before you proceed to use this file, it is good to make a backup of your current layout. You can execute:
Now, the diff between the Xmodmap.back and Xmodmap is pasted below, and thus you can have an idea on the changes and how to do them:
To be able to easily suspend to disk, or suspend to ram you can use the hibernate package. Note: Tested on MBP 2006
To use it use the command
For MacBookPro7,1 suspend to RAM works with s2ram from package uswsusp with the command
For squeeze see the section 'Debian 6 (squeeze) on MacBookPro7,1' below.
In combination with the acpi script lid.sh (I simply hacked that line into the script as last statement within the closing condition) it does exactly what you would expect on MacOS - the MBP suspends when closing the lid and awakens when it is opened. While sleeping, the LED is blinking.
With MacBookPro5,5 (Debian Squeeze), this HowTo was successful.
Create config file /etc/lirc/lirc.conf with

Set the driver in /etc/lirc/hardware.conf
Associate buttons with software/functions in .lircrc (make sure to use the same button names as in lirc.conf). See examples here
Make sure that daemons are launched at session start-up (Gnome > System/Preferencies/Session):
This Howto is reported to works. Under Squeeze, after iOS 4.3 update, you perhaps will need to update to following package from wheezy (testing) repositories :
In that case, you even need not to create SysInfoExtended yourself : simply install gvfs-fuse & ifuse; add yourself to the fuse group, reboot, plug your iPhone and launch Rhythmbox. That's it.
Here is just the configuration for the hardware, that does not work out of the box. (sound and graphics work fine)
Installation
You can use the Kernel 2.6.32-5-amd64. Installation from CD works out of the box.
Wireless
Follow the procedure.
Bluetooth
Just modprobe btusb.
Graphics
The nvidia-glx package works perfectly.
Synaptics
The Touchpad can be configured by some settings in xorg.conf. But when I installed Debian with XFCE, the were no xorg.conf. I simply created a new xorg.conf with the following content. With this configuration, the touchpad has a similar behaviour of MacOS (multi finger scroll, tapping, right-click with two fingers, mouse middle click with three fingers).
Hibernate
Hibernate has also suspend to ram with the command 'hibernate-ram'. So if you want to suspend to ram when the lid is closed, you can install hibernate and acpi-support (apt-get install hibernate acpi-support) and create an executable file named '/etc/acpi/local/lid.sh.pre':
Put the following content into this file:
Mostly everything is the same with a few changes. The testing distro has enough working drivers to get you started. The stable distro, however does not have a new enough version of the ethernet drivers to work. The other caveat here is that 'apt-get install grub' seems to give you grub2 which didn't seem to work for me. If you're using rEFIt to boot to a boot loader then you should turn use Lilo or grub 1.
See also: https://cbg.dyndns.org/wiki/ReadingCorner/LinuxOnMacbookPro
Ethernet
Requires a new version of sky2 available on the testing CD, but I am unsure as to what the minimum kernel version is. However, it works out of the box with kernel 2.6.22.
Video
Since v100.14.19, the binary nvidia driver works nicely on x86 and x64, no patches needed. The OSS driver 'nv' works too, but has very limited HW support.
Touchpad
The touchpad works fine with the synaptics driver, though maybe not as smooth as with OSX. Use GrabEventDevice if you want misc usb mice and synaptics touchpad special functions to work simultaneously. Patches from http://www.mactel-linux.org are optional.
Suspend2RAM
For MBPv3: For some reason, suspend2ram does not work with the free nv driver from xorg (bug 453782).
Works with binary nvidia drivers. VT/X-switching is needed with old nvidia drivers. Note that usb is necessary for keyboard/mice to work. These drivers should not be reloaded, otherwise the synaptics driver will lose its grab(GrabEventDevice, synaptics(5)) on the device. I also unload v4l, sky2 and madwifi before s2ram.
I used acpid to disable networking and echo mem > /sys/power/state on PWBTN.
Tested in debian/unstable, with vanilla linux 2.6.22/23. Alsa, uvcvideo and madwifi drivers taken from their corresponding repositories, i.e. working with various revisions of recent development drivers.
With Debian unstable and kernel 4.14.x suspend works out of the box but resumes very often. The reason is the USB 3.x ACPI configuration. This can be fixed with:
AppleIR
Patch your kernel with https://cbg.dyndns.org/store/apple-remote-quirk-hiddev.patch. Enable CONFIG_USB_HID and CONFIG_USB_HIDDEV. When loading usbhid, a device /dev/usb/hiddev0 should be created. Use lirc to configure your remote. Reported to work with other remotes, too.
For a step by step guide, including elisa setup see http://www.e-hoffman.org/wiki/pmwiki.php?n=Main.AppleMacBookProV3
Here's what needs to be done:
- Figure out how to install ELILO.
elilo failed to boot my kernel, though efi-boot was enabled. Direct efi-boot is reported to work very bad, as drivers(nvidia,networking) depend on some BIOS calls. http://www.madingley.org/macmini/ provides patches and some bios emulation code, but this is old and only for mac mini.
- Figure out how to use the remote control.
See also: InstallingDebianOn/Apple
CategoryLaptopComputer
CategoryMacintoshComputer
Last updated on 26 April 2021.
Intro
This article describes how to install Ubuntu Linux on your MacBookPro.
The old version of article can be found here https://nixaid.com/linux-on-macbookpro-old/ (for Ubuntu 18.04).
Hardware
Apple MacBook Pro 'Core i7 2.9 15' Touch/Mid-2017 with AMD Radeon Pro 560
Target Kernel/Distro
Linux >=5.0 on Ubuntu 20.04
Not working but can be worked around
- Audio input & output
Use bluetooth headphones/speakers for audio as a workaround.
If you just want the ISO and skip all the hard work, you can get it here:
Download 3.7G: https://files.nixaid.com/ubuntu4mac.iso
SHA256: 8262d84f54dc1f62bae3f46507e461cc0b4980ba261ac8dad52b8a3ec2eb9a31
Preparing the disk
Partition for your Linux installation
You would need at least 25 GB free disk space for the Ubuntu 20.04 installation.
Reduce your Macintosh HD partition from macOS by using Disk Utility.
The freed space will be used by the Ubuntu Linux installer.
Remastering Ubuntu distro
I used another laptop running Ubuntu to apply the steps described in this section.
There are few drivers and firmware which you need to add to your Linux in order to avoid the unnecessary hassle with connecting external USB keyboard/mouse/stick as most of the howto's suggest.
apple-ib-tb, apple-ibridge, applespi (for the Touchbar, Touchpad, Keyboard) and brcm firmware (for MBP WiFi adapter).
By creating your own remastered Live Ubuntu Linux distribution, you will also have a handy recovery tool you can use at any time.
Get Ubuntu
Download it from its official website https://www.ubuntu.com/download/desktop
Extract the image
Extract the Ubuntu image before you can start remastering it.
Chroot to the image
Once the image is extracted, you will need to continue remastering it from inside. To do so, you will need to use chroot.
Update the image
It is a good idea to keep the software updated.
DKMS: Keyboard, touchpad and touchbar
To avoid hassle with plugging the external keyboard/mouse, you can already build in the keyboard, touchpad and touchbar drivers.
If you want the F-keys to be always on by default and the Fn button for switching from F-keys to special keys, then use the following command:
You can also swap fn and a control keys:
Or remap it to any other key:
Touchpad configuration
Next, you need to set the proper dpi for the touchpad:
Module: USB WiFi TP-LINK TL-WN722N
(OPTIONAL): You can skip this section! There is a way to get your MBP's wifi adapter working, so you do not need the USB WiFi TP-LINK dongle. See the next section Enable MBP's WiFi adapter.
TP-Link TL-WN722N v2 support has been added to the Linux kernel starting v4.13-rc2 https://github.com/torvalds/linux/commit/5a1d4c5dd4eb2f1f8a9b30e61762f3b3b564df70
So you can skip this section entirely if you happened to be using a recent kernel.
In order to enable the external TP-LINK TL-WN722N USB WiFi adapter, you need to make sure the Ubuntu image has the necessary driver.
Enable MBP's WiFi adapter
Best Linux For Macbook Pro 2008
MBP's Broadcom wifi adapter working in Linux!
All that needs to be done is placing the right brcmfmac43602-pcie.txt file into a /lib/firmware/brcm/ directory.
Get brcmfmac43602-pcie.txt from https://bugzilla.kernel.org/show_bug.cgi?id=193121#c74(should it disappear one day, let me know, I'll share / re-upload it)
Make sure it gets to the initramfs:
Best Linux For Macbook Pro 2012
Exit chroot environment
Exit the chroot environment when you are done modifying the Ubuntu image.
Update the kernel
To ensure the remastered Ubuntu boots the latest Linux kernel which you have installed in the chrooted system.
Build remastered Ubuntu image
The following steps are to build the remastered Ubuntu image.
When running xorriso, keep in mind the order of arguments is important.
Test the new image
Make sure your remastered image boots, before writing the it to your USB stick.
Out of the following methods, you would likely only need UEFI -> USB.
Install the UEFI firmware and qemu for running virtual machines:
Legacy (BIOS)
CDROM:qemu-system-x86_64 -enable-kvm -m 1G -k en-us -cdrom ubuntu4mac.iso
USB:qemu-system-x86_64 -enable-kvm -m 1G -k en-us -device nec-usb-xhci,id=xhci -drive if=none,id=stick,file=ubuntu4mac.iso,format=raw -device usb-storage,bus=xhci.0,drive=stick
UEFI
CDROM:qemu-system-x86_64 -enable-kvm -m 1G -k en-us -bios /usr/share/ovmf/OVMF.fd -cdrom ubuntu4mac.iso
USB:qemu-system-x86_64 -enable-kvm -m 1G -k en-us -bios /usr/share/ovmf/OVMF.fd -device nec-usb-xhci,id=xhci -drive if=none,id=stick,file=ubuntu4mac.iso,format=raw -device usb-storage,bus=xhci.0,drive=stick
Installing the Linux
Boot your MacBookPro from your newly remastered Ubuntu - ubuntu4mac.iso and create partitions you are going to be installing it to.
Install as normal.
All the modifications which were done to the remastered ISO before will be applied to your installation!
Extra hints
Swap command and option keys
Once you have logged-in under your user in the Gnome/Unity session, run the following command to permanently swap command and option keys:
Windows in QEMU/KVM
You can download Windows 10 for free and install/use it in QEMU/KVM.
https://www.microsoft.com/software-download/windows10
Steam in Docker
As a great surprise for some, you can play games in Linux on your MacBookPro using AMD Radeon Pro 560.
For that you can either install Steam on your own or use my Steam image which is much simpler https://hub.docker.com/r/andrey01/steam/
Grub to show options
This is important as one day you may get a Linux kernel that won't boot due to some problem. To prevent this, make sure you are able to choose the kernel when your MBP starts.
To do this, remove the GRUB_HIDDEN_TIMEOUT* lines from the /etc/default/grub file and make sure GRUB_TIMEOUT is set to some reasonable value, e.g. 5 (without quotes).
Then regenerate grub config by running sudo grub-mkconfig -o /boot/grub/grub.cfg command.
This will allow you to see the grub loader options on boot and let you pick a different kernel in case if the last one was having troubles to boot/or any other troubles.
Grub to show macOS High Sierra option
Best Osx For Macbook Pro 2011
Add the following code to /etc/grub.d/40_custom file:
Then regenerate grub config by running sudo grub-mkconfig -o /boot/grub/grub.cfg command.
After that you do not need to hold the 'option' button to load macOS when restarting your MBP.
When upgrading a Linux kernel
Best Linux For Macbook Pro 2013
Make sure your kernel drivers have been compiled each time you are getting a Linux kernel upgrade. For that, run dkms status command and see whether the module has installed status there.
Might need to repeat the steps in Module: USB WiFi TP-LINK TL-WN722N.
Troubleshooting
macOS got an update and GRUB is not booting anymore
One day you may find yourself in a situation when only macOS is booting, while GRUB boot loader is being completely skipped.
Do not worry, you can set your Linux boot option back from macOS itself.
You can do this by using the bootoption tool
- Install Xcode from the App Store.
- Install bootoption:
- List your UEFI boot preferences:
You can also see more info for each option:
- Set ubuntu to be 1st in your boot order:
If you get this error, do not worry, this is due to the SIP (System Integrity Protection). All you need is just to disable it (you can enable it later):
After that the commands will work as expected:
You can also use sudo bootoption set --bootnext 0000 command for one-time boot.References
- Ubuntu 18.04 Linux on mid-2017 MacBookPro
- Linux On MBP Late 2016
- MBP 2016 Linux
Donate me
If you found this useful, please consider making a donation!
Donations
crypto3$paystring.crypto.com- BTC:
bc1qvelutkakstymn244km9kgdd80kdyqnx3wahjcv
Alternative ways to make a donation are in the About section https://nixaid.com/about/