Linux on MacBook Pro Late 2016 and Mid 2017 (with Touchbar) This article documents the process of installing Linux on 2016 and 2017 MacBook Pro models with Touch Bar, focusing on Fedora 27 with kernel 4.14.x. It provides detailed instructions for partitioning, booting, and driver support, noting that an external USB keyboard is required for initial setup since the internal keyboard and touchpad need custom drivers. The guide also lists which hardware components are functional (such as USB, Thunderbolt, and HiDPI detection) and which are not fully supported (including WiFi on certain models, suspend/resume, and audio). Introduction This is about documenting getting Linux running on the late 2016 and mid 2017 MPB's; the focus is mostly on the MacBookPro13,3 and MacBookPro14,3 15inch models , but I try to make it relevant and provide information for MacBookPro13,1, MacBookPro13,2, MacBookPro14,1, and MacBookPro14,2 13inch models too. I'm currently using Fedora 27, but most the things should be valid for other recent distros even if the details differ. The kernel version is 4.14.x after latest update . The state of linux on the MBP with particular focus on MacBookPro13,2 is also being tracked on https://github.com/Dunedan/mbp-2016-linux . And for Ubuntu users there are a couple tutorials here https://github.com/chisNaN/ubuntu-on-macbook12 and here https://nixaid.com/linux-on-macbookpro/ focused on that distro and the MacBook. Note : For those who have followed these instructions ealier, and in particular for those who have had problems with the custom DSDT, modifying the DSDT is not necessary anymore - see the updated instructions below and make sure to update your clone of the roadrunner2/macbook12-spi-driver repo to get the latest drivers. Summary Of Current State What works Booting i.e Grub etc Recognizes disk on all models older kernels may need patch for some models, though Keyboard, touchpad, and basic touchbar functionality HiDPI detection Accelerated video Screen brightness control Keyboard backlight USB Sensors install lm sensors package Camera Bluetooth older kernels need patches WiFi on MBP13,1 and MBP14,1 Thunderbolt DisplayPort What doesn't work WiFi on ,2 and ,3 models though some folks have had success with some of the workarounds Suspend/Resume works partially on 13,3 models Audio two cards show up, and intel driver is loaded, but no sound Details Partitioning If you want to keep your MacOS installation generally a good idea if you can afford the disk space, because that's the only way to get/install firmware updates , then first boot into MacOS and resize the partition there, creating a new partition for the Linux installation. If you also want to have a Windows partition, see this comment gistcomment-2164350 below. Warning : If you're not going to keep MacOS, either back up the EFI System Partition and restore its contents to the new ESP after installation or leave it intact i.e. don't do a full disk install, but just use the space after the ESP . This partition it's the first one contains drivers/firmware/etc needed by Apple's EFI loader during boot, in particular to initialize the Touchbar. Initial Installation Since the internal keyboard and touchpad won't work until you have built and loaded the drivers, you'll need to plug in an external USB keyboard to do the initial setup and installation. Booting If you're booting a 4.11 or later kernel, no special params or patches are needed. If you're booting a kernel < 4.11 and have a MacBookPro13,1, MacBookPro13,2, MacBookPro14,1 or MacBookPro14,2 13inch models , which have the Apple NVMe controller, you'll need the kernel-nvme-controller.patch file-kernel-nvme-controller-patch from this gist in order for the disk to be correctly recognized MacBookPro13,3 uses a Samsung NVMe controller which is automatically detected correctly . Alternatively, instead of patching you can also do the following for distros using something other than dracut to create the initrd you'll need to adjust the 2nd and 3rd lines appropriately : echo 'install nvme /sbin/modprobe --ignore-install nvme $CMDLINE OPTS; echo 106b 2003 /sys/bus/pci/drivers/nvme/new id' | sudo tee /etc/modprobe.d/nvme.conf echo 'force drivers+="nvme"' | sudo tee /etc/dracut.conf.d/disk.conf sudo dracut --force --kver