HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
Dunedan
mbp-2016-linux
Shell2017–2026
Dunedan / mbp-2016-linux

mbp-2016-linux

State of Linux on the MacBook Pro 2016 & 2017

36Distinct people
56Mentions
1Explicit recommenders
2.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

State of Linux on the MacBook Pro 2016 & 2017

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

I used MacBooks with Linux starting in 2006 till the end of last year. That's when I finally gave up. I really love the hardware Apple produces, but we're at a point where I…

Dunedan used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 7:02:26 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year56 dated mentions

Observed mentions: 2017-01-23 17:41:46 UTC to 2026-07-29 01:57:36 UTC.

0510152017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments20172018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 10 mentions; 0 submissions, 10 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 11 mentions; 1 submissions, 10 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 16 mentions; 0 submissions, 16 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 10 mentions; 0 submissions, 10 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC615
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC10010
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC11110
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC16016
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC10010
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC202
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC000
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC000
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
State of Linux on the MacBook Pro 2016 & 2017 The following document provides an overview about Linux support for Apple's MacBook Pro 2016 and MacBook Pro 2017 models. The MacBook Pro 2016 shares surprisingly many components with the Retina MacBook (e.g. keyboard and touchpad controller, Wi-Fi and bluetooth chipsets, ...), so figuring out how things work on one device should benefit both device families. The Apple MacBook Pro 2017 models are nearly identical to their 2016 counterparts, except for the use of newer Intels Kaby Lake processors instead of Intel Skylake processors, faster memory and updated AMD Radeon GPUs in the 15-inch models. The checks if hardware works below were done with multiple Linux distributions. To state the obvious: The newer the kernel the better. The information below assumes that you run Linux 5.4 or newer. If you don't know what the model identifier for your MacBook Pro is (as that identifier is used on several occasions below), check https://support.apple.com/en-us/HT201300 Contribution If you want to contribute to get Linux running smoothly on the MacBook Pro 2016, report all findings on how to get devices working as pull requests! All help is appreciated. There is also a chat available via gitter for discussions: Current status Device Status Audio input & output Battery Bluetooth FaceTime HD camera Graphics card (Intel) Graphics card (AMD) Keyboard & Touchpad NVMe (internal SSD) Screen Suspend & Hibernation System Management Controller Thunderbolt Touch Bar Touch ID USB Wi-Fi Audio input & output With the applied Cirrus 8409 kernel driver patch from https://github.com/davidjo/snd_hda_macbookpro the internal audio input and output has been verified to work for the MacBookPro13,1, MacBookPro13,3 and MacBookPro14,3. If you are having issues with the internal audio input, and you are using PulseAudio for your Linux distro; then try switching between the built-in audio profiles and see if it's receiving the background sound with help of the pavucontrol command, it should work on 'Analog Stereo Duplex' built-in audio profile. With the MacBookPro14,1 the internal audio output is working, however the internal audio input is not working. For the rest of the MacBook Pro models the audio via HDMI or any USB-connected audio device is working, so at least they can act as a workaround until internal audio is working. See also: https://bugzilla.kernel.org/show_bug.cgi?id=195671 https://bugzilla.kernel.org/show_bug.cgi?id=110561 http://mailman.alsa-project.org/pipermail/alsa-devel/2018-November/141942.html Battery Working fine, including the interface to get current capacity, temperature, etc. Battery life is still suboptimal, because power saving modes for several devices, like display (panel self refresh), SSD or the Thunderbolt controllers, aren't working yet. You can expect a battery life of less than 4 hours. Bluetooth Works out of the box, except for the models without Touch Bar, which still suffer from a bug and need an additional patch as noted in #29 (comment) Transmitting audio using A2DP is still choppy for unknown reasons, maybe because the Bluetooth support is limited to lower bandwidth applications so far. See also: https://bugzilla.kernel.org/show_bug.cgi?id=110901 FaceTime HD camera In the MacBookPro13,1 (without Touch Bar) the FaceTime HD camera is connected via PCIe, like in previous MacBook Pro's. It's working with the bcwc_pcie driver. The models with Touch Bar have the FaceTime HD camera connected through the iBridge device via USB. They are exposed as regular USB video devices and are supported by the uvcvideo driver out of the box. Graphics card Intel Graphical output using the Intel GPU is working out of the box on the MacBookPro 13,1 and 13,2, without dedicated AMD GPU. For the MacBookPro 13,3 with dedicated AMD GPU, only the AMD GPU is enabled when booting an OS which isn't macOS, so you have to follow the instructions in the following link to enable the integrated Intel GPU, if you want to use it: #6 (comment) Intel GPU has not yet been tested on the MacBookPro16,1. Connecting external displays via USB-C-to-DisplayPort cables works fine, including connections with daisy-chaining/MST. An actual tested and working setup includes concurrent output on the internal display and two external displays daisy-chained together with Full HD each. AMD Works out of the box for the MacBookPro13,3 and MacBookPro14,3. The MacBookPro16,1 currently requires a 5.6-RC kernel and the latest amdgpu drivers. Keyboard & Touchpad Works out of the box for the MacBookPro13,* and MacBookPro14,*. For models with a T2 chip (MacBookPro15,* MacBookPro16,1) you'll need the BCE drivers from https://github.com/MCMrARM/mbp2018-bridge-drv and the touchpad and keyboard patches from https://github.com/aunali1/linux-mbp-arch. For earlier Linux versions you can get the driver from https://github.com/roadrunner2/macbook12-spi-driver. The Esc and function keys are part of the Touch Bar in all Touch Bar-models, so follow the instructions for the Touch Bar to get it working. Beside the actual keyboard, the power button and the lid close event work out of the box. Palm rejection based on touch-sizes and disable-touchpad-while-typing are working with this patch to libinput (master branch). See also: https://bugzilla.kernel.org/show_bug.cgi?id=99891 https://bugzilla.kernel.org/show_bug.cgi?id=108331 NVMe Works out of the box. The SSDs used in the MacBook Pros don't seem to support APST. As it's currently unknown how power saving works for those SSDs it's likely they consume way more power than they need to, therefore reducing the battery life. Screen Works out of the box. Adjustable screen brightness only works out of the box for the models without additional AMD Radeon GPU (MacBookPro13,1 and MacBookPro1
Read the full README on GitHub

What Hacker News says

16 sources
I maintain mbpfan and have contributed to a few other Linux on Mac tools. Linux on Mac is not worth the effort. I ran Ubuntu on a 2011 MacBook Air and now run Fedora on a 2014 MacBook Air. There were several papercuts even with these relatively open models where it took a while to get suspend, trackpad, fan, webcam, wifi, etc. working properly. You will need to use binary drivers for the latter two features and some strange EFI bootloader. It seems that newer MacBook compatibility is worse: https://github.com/Dunedan/mbp-2016-linux I use Debian on ThinkPad at work and plan to buy this or a Dell XPS for my next laptop.
In Would you be willing to fund a Linux port to Apple Silicon?
With regard to #1, Linux support on existing Intel Macbooks since 2015 has been pretty poor[1]. That doesn't give me much confidence about support while Macs get more and more esoteric hardware configurations. As for #2, perhaps, but we've already seen what happens when Apple adds their proprietary hardware to existing x86 systems with things like the T2 chip or the Touchbar. Support for either on Linux is still poor and nonexistent. Full integration with hardware and software on Apple's end means that they don't have to worry about compatibility like 3rd party hardware manufacturers do. [1] https://github.com/Dunedan/mbp-2016-linux
In Would you be willing to fund a Linux port to Apple Silicon?
> There was a good GitHub repo tracking it for up to I think the first touchbar Pro, and basically it was dismal then and only got worse (according to repo owner who consequently stopped bothering iirc). As I'm said repo owner, let me chime in here quickly to shed some light on that. I used a 13" MacBook Pro 2016 for 3 years with Debian as my sole machine for work. When ordering it back in 2016 I wasn't sure how difficult it'd be to get Linux properly working on it, as at that point it was only known that it's possible to boot Linux, but nobody had figured out even such basics like support for the integrated input devices or the NVMe SSD yet. However as I was using Linux on Macs since 2006 I figured it'd be somehow possible to get it to work for me. Fortunately I wasn't the only one serious about running Linux these 2016+ MacBooks, as I h
Read the rest
ave very limited knowledge of the required lowlevel programming skills. What I did was to provide and moderate a Github repository (https://github.com/Dunedan/mbp-2016-linux) as a central place to document and discuss of the status of hardware support for these MacBook Pros, some little patches and lots of feedback and bug reports. A big shoutout to all contributors who did an incredible job at reverse engineering, implementing and upstreaming drivers for various components! That's quite an achievement for such a complex device with no public hardware documentation at all! After a while it turned out that support for certain components would be rather difficult to get working flawlessly. As an example, even at the end of the 3 years I used the MacBook Pro, I had to use an external adapter to be able to use WiFi. With that in mind I started to reconsider why I bought Apple products: I bought them because of their superior hardware quality. But if I'm not able to use the hardware as intended, what's the point of paying a premium for Apple products? And let's just not talk about the butterfly keyboard or the horrible thermal management. So when it came to replacing my MacBook Pro, I decided to go with a Lenovo Thinkpad X1 Carbon instead. It's not perfect, but I'm way happier now than I ever was with the MacBook Pro 2016, as the hardware just works. As I don't own any 2016+ Apple device anymore, the help for further Linux support I can provide is limited, but I didn't stop bothering at all! I'm still actively managing said Github repository, but activity in general has significantly dropped there over time. Either the devices work well enough for other people now or they also replaced them with non-Apple hardware.
In Introducing the next generation of Mac
I have a MacBookPro15,2 (2019, with T2), on which I duel boot Arch Linux. It is perfectly usable. The hardware support is not great. In particular, resuming from suspend is very slow, and I haven't gotten the built-in mic to work. And getting the system to work did require using a patched Linux kernel installed from Github. So not easy, but possible. Your claims about "dismal then and only got worse" are unfounded. The repository you refer to is still active. https://github.com/Dunedan/mbp-2016-linux If anything, activity has slowed down in these threads because it was figured out how to make it work. Even among people who run Linux on these MacBooks, the general recommendation is to keep a macOS partition around for stability. Some of the value you get from any Apple computer is in the software. If you intend on instantly installing Linu
Read the rest
x or Windows as your only OS, this probably isn't the computer for you. But if you want to or have to use Linux sometimes, these T2-chip Macs can do it.
In Introducing the next generation of Mac
I'm a user on a 2019 16-inch MBP (MacBookPro16,1) who hopes to move to Linux as my base OS on this hardware full-time over the next 12 months. (https://github.com/Dunedan/mbp-2016-linux) This is because I honestly cannot find a laptop with the combination of 64+ GB RAM, a non-NDIVIA GPU (edit: to clarify, this is because of NVIDIA's notoriously bad compatibility with Linux), and other premium hardware aspects like its market-leading trackpad at this time - and I doubt that will change anytime soon. I live with the debilitating T2 kernel panic hardware bug every week. There's also a very bad graphics bug that I and many others are facing. (Not sure if that one can be avoided by simply using Linux.) I just want to do away with this T2 chip, and whatever it does to get in the way of an otherwise great Intel-based computing experience. The CP
Read the rest
U can handle all my encryption just fine... Thank you to your team for what you're doing. I assume Apple will constantly patch T2 jailbreaks with future macOS system updates (as that's how firmware is updated), and play a long-term cat and mouse game.
In Apple’s T2 security chip jailbreak
> that can run pretty much every widely available open source operating system. That's just not true, though. Here's a git repo listing what works and doesn't work in Linux for all of the macbook pro models since 13,1 (released in 2016): https://github.com/Dunedan/mbp-2016-linux You'll notice that power management (suspend/resume) doesn't work for any model, wifi only works for a few select models, and support for audio is pretty spotty. If you buy Mac hardware, you're pretty much locked into MacOS if you want to have a reasonably acceptable experience. BSD support is much, much, much worse--it basically doesn't work at all for any relatively recent model.
In Nova by Panic
I'm pretty encouraged at how far the Linux kernel's progressed with adding support for current modern MacBook hardware. Every now and then I boot up a distro that tends to have quite bleeding edge kernel version like a Tails USB to see how complete the hardware compatibility is out of the box. Apple's hardware like their trackpad remains superior enough that there seems to be enough interest (like you and me) in seeing it work. https://github.com/Dunedan/mbp-2016-linux
In Silicon MacBook could launch on 27 October and cost $800
You're seeing an extreme case here. Macbooks are actively breaking other OSes. Better to treat it as: "look how much you can bend Linux to work on a proprietary toaster", rather than "look how hard it is to run Linux on a laptop". Newer generations of macbooks just won't work at all. There's no workaround for recent sound (unless it gets reverse engineered) or wifi (unless you rewrite Linux stack to work around broken firmware) devices, and it's likely to only get worse. Here's a good collection for hardware support: https://github.com/Dunedan/mbp-2016-linux This is not representative of non-apple brands.
In Running Linux on My MacBook
For people who want to install Ubuntu on MBP14,2 or 14,3 (the new MBPs with four thunderbolt 3 ports) — this[0] might help. (It'll be probably trivial to update the article for Ubuntu 20.04 - just ignore the upgrading the kernel parts.) It mentions adding the touchbar, keyboard drivers[1] and fixes for the non-working wifi[2], all without an external keyboard or anything. You can just boot up your Ubuntu virtual machine, execute some commands in the chroot environment & make an bootable ISO. This gist[3] and this GitHub repo[4] might also be worth to check out - although it looks like a bit lagging in information (the wifi fix, added last November isn't reflected yet). This is my command checklist (tweaked from this[0] to match my prefs), might be helpful for someone? ### check if pwd is ~/Download # ask password beforehand s
Read the rest
udo -v # mounting iso and copying to current file sudo mkdir -p /mnt/iso sudo mount ubuntu-20.04-desktop-amd64.iso /mnt/iso mkdir customiso rsync -a --exclude=casper/filesystem.squashfs /mnt/iso/ customiso/ sudo unsquashfs /mnt/iso/casper/filesystem.squashfs sudo umount /mnt/iso # chrooting sudo mount --bind /dev squashfs-root/dev/ sudo chroot squashfs-root/ PS1="(chroot) $PS1" LC_ALL=C HOME=/root export PS1 HOME LC_ALL mount -t proc none /proc mount -t sysfs none /sys mount -t devpts none /dev/pts # updating mv /etc/resolv.conf /etc/resolv.conf.bak echo 'nameserver 1.1.1.1' | tee /etc/resolv.conf ### change apt mirror list apt update apt upgrade apt dist-upgrade apt autoremove apt -f install # installing driver apt install git dkms echo -e "\n# macbook12-spi-drivers\napplespi\nappletb\nspi_pxa2xx_platform\nintel_lpss_pci" >> /etc/initramfs-tools/modules git clone https://github.com/roadrunner2/macbook12-spi-driver.git /usr/src/applespi-0.1 dkms install -m applespi -v 0.1 cat > /etc/udev/hwdb.d/61-evdev-local.hwdb << 'EOF' # MacBook8,1 (2015), MacBook9,1 (2016), MacBook10,1 (2017) evdev:name:Apple SPI Touchpad:dmi:*:svnAppleInc.:pnMacBook8,1:* evdev:name:Apple SPI Touchpad:dmi:*:svnAppleInc.:pnMacBook9,1:* evdev:name:Apple SPI Touchpad:dmi:*:svnAppleInc.:pnMacBook10,1:* EVDEV_ABS_00=::95 EVDEV_ABS_01=::90 EVDEV_ABS_35=::95 EVDEV_ABS_36=::90 # MacBookPro13,* (Late 2016), MacBookPro14,* (Mid 2017) evdev:name:Apple SPI Touchpad:dmi:*:svnAppleInc.:pnMacBookPro13,1:* evdev:name:Apple SPI Touchpad:dmi:*:svnAppleInc.:pnMacBookPro13,2:* evdev:name:Apple SPI Touchpad:dmi:*:svnAppleInc.:pnMacBookPro14,1:* evdev:name:Apple SPI Touchpad:dmi:*:svnAppleInc.:pnMacBookPro14,2:* EVDEV_ABS_00=::96 EVDEV_ABS_01=::94 EVDEV_ABS_35=::96 EVDEV_ABS_36=::94 evdev:name:Apple SPI Touchpad:dmi:*:svnAppleInc.:pnMacBookPro13,3:* evdev:name:Apple SPI Touchpad:dmi:*:svnAppleInc.:pnMacBookPro14,3:* EVDEV_ABS_00=::96 EVDEV_ABS_01=::95 EVDEV_ABS_35=::96 EVDEV_ABS_36=::95 EOF cat > /etc/udev/hwdb.d/61-libinput-local.hwdb << 'EOF' libinput:name:*Apple SPI Touchpad*:dmi:* LIBINPUT_MODEL_APPLE_TOUCHPAD=1 LIBINPUT_ATTR_KEYBOARD_INTEGRATION=internal LIBINPUT_ATTR_TOUCH_SIZE_RANGE=200:150 LIBINPUT_ATTR_PALM_SIZE_THRESHOLD=1200 EOF ### edit wifi driver(https://bugzilla.kernel.org/show_bug.cgi?id=193121#c52) # exiting chroot mv /etc/resolv.conf.bak /etc/resolv.conf umount /dev/pts umount /sys umount /proc exit sudo umount squashfs-root/dev/ sudo rm customiso/casper/filesystem.squashfs sudo mksquashfs squashfs-root customiso/casper/filesystem.squashfs cd customiso sudo rm md5sum.txt sudo find -type f -print0 | xargs -0 sudo md5sum | grep -Ev "./md5sum.txt|./isolinux/" | sudo tee md5sum.txt cd .. sudo xorriso -as mkisofs -r -V "ubuntu-for-mac" -R -l -o ubuntu-for-mac.iso -c isolinux/boot.cat -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat customiso/ [0]: https://nixaid.com/linux-on-macbookpro/ [1]: https://github.com/roadrunner2/macbook12-spi-driver [2]: https://bugzilla.kernel.org/show_bug.cgi?id=193121 [3]: https://gist.github.com/roadrunner2/1289542a748d9a104e7baec6... [4]: https://github.com/Dunedan/mbp-2016-linux
In Install Ubuntu 20.04 LTS on MacBookPro14,1
Dunedan·Apr 25, 2020Recommendation phrase
I used MacBooks with Linux starting in 2006 till the end of last year. That's when I finally gave up. I really love the hardware Apple produces, but we're at a point where I believe it's not feasible anymore to use Linux on MacBooks. For the MacBook Pros 2016 and up I put significant effort into trying to get mainline Linux running as smoothly as possible by documenting and coordinating the efforts to have drivers for all internal devices [1], but just have a look where we're at over three years later: Audio doesn't work properly, Wifi does neither (expect for the non-TouchBar models, like the one the OP uses), hibernation is still somewhat broken and let's not even start talking about the advanced abilities of the TouchBar or support for TouchId. I could go on. Models with T2 chip (2018 and up) are even worse in some regards and I believ
Read the rest
e it won't get better anymore. Next year we might see MacBooks with custom ARM SoCs and that's where I expect the driver situation will get even more dire. As Apple continuous to use more and more custom designed components, the effort for proper Linux drivers for such hardware only increases. Most of these problems could be easily solved if Apple would simply make documentation for their hardware available. There are lots of great people passionate about running Linux on Macs out there, but reverse-engineering the hardware is what makes it really complicated to produce robust drivers for it. I sincerely hope my predictions are wrong and Linux will still go strong on Macs in future as well, but for the time being I'm done with Macs. [1]: https://github.com/Dunedan/mbp-2016-linux
In Install Ubuntu 20.04 LTS on MacBookPro14,1
I'm not familiar enough with Ubuntu's installer capabilities, but Fedora's has made huge advances in the past 5 years. I went in to the setup fearing the worst (that is, the struggle that was doing a secure boot, UEFI Windows 8 + Fedora 20 setup in 2014), but was shocked at how good Fedora 31's install routine was. I shrank the 1TB SSD partition in Windows, disabled the proprietary fake-RAID, then booted Fedora's XFCE spin from a USB key. The installer handled everything else--no having to manually tinker with the UEFI partition. Post-install, the XPS's UEFI correctly booted to GRUB, which had successfully detected the Windows bootloader (again, no tinkering like with FC20) and can boot either OS. Disabling hibernate in Windows and figuring out how to mount the encrypted Windows partition in Fedora was all that remained. The Linux Kernel
Read the rest
5.5 has a bunch of improvements for the i7-9750H (and other Coffee Lake processors), which is another reason to consider giving Fedora 31 a spin. :) I had this pleasant experience the same time I was trying to figure out how to dual-boot FC31 on a touch bar MacBook Pro. The short answer is: 80% of the MBP's hardware doesn't work in Linux. Broadcom won't release drivers that are compatible with Linux and blame FCC rules for their reason. Insane. https://github.com/Dunedan/mbp-2016-linux
In New MacBook Air

Showing the 15 most recent of 16 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.