
Warning: 2016 MacBook Pro is not compatible with Linux - danjoc
https://www.reddit.com/r/Ubuntu/comments/5c8s1k/warning_2016_macbook_pro_is_not_compatible_with/
======
mjg59
The three primary issues here are:

1) The input devices are on SPI, not USB. Apple's ACPI tables don't provide
the GPIO mappings for these things via the standard mechanisms, so the chipset
driver won't bind. You then still need another driver for the SPI controller,
and there's an out of tree one at [https://github.com/cb22/macbook12-spi-
driver/](https://github.com/cb22/macbook12-spi-driver/) . Longer term, the
kernel needs to be able to parse Apple's ACPI tables and that driver needs
merging.

2) Apple's NVME hardware uses the wrong PCI device class, possibly because
it's not entirely NVME compatible (trying to read 64 bits of mmio register
space in one go will fail, for instance). Linux has a specific entry for the
older Apple NVME devices, and that may need to be broadened.

3) Having source ID checking enabled when doing IRQ remapping results in the
system hanging on boot. It's unclear what the underlying problem is.

Windows works fine because Apple provide drivers for (1) and (2). (3) is
unclear - Windows may be setting up interrupt remapping differently, or it may
never enable source ID verification. These issues are far from unusual when
dealing with Apple hardware ((1) was true for the new Macbook, (2) has been
true since Apple introduced NVME, (3) is the kind of weirdness that we've seen
on Apple hardware ever since they went Intel), and this particular set of
breakage is unsurprising.

I spend some time while I was at Red Hat trying to keep Apple hardware working
([https://mjg59.dreamwidth.org/12037.html](https://mjg59.dreamwidth.org/12037.html)
is an example of what we had to do), but I don't know that anybody's really
working terribly hard on it these days.

~~~
userbinator
_The input devices are on SPI, not USB_

Things like this make me wonder if Apple is deliberately going for
proprietariness as a sort of vendor-lock-in, because I can't see any other
compelling reasons for coming up with a completely different interface for
such basic and existing devices. USB and PS/2 are standardised to the point
that hardware and software for them are widely available and cheap. They're
also extensible, so one does not have to reinvent everything to add additional
features.

I still remember when the first "Intel Macbooks" came out with nearly
identical hardware to a PC laptop of the same era, i.e. keyboard and trackpad
looked like standard PS/2 devices. Later models of PCs and Macs started using
USB internally (which is in some ways _more_ complex, since the existing PS/2
interface was provided by the EC via LPC whereas USB may require an additional
controller and definitely requires routing additional signals between it and
one of the USB ports on the chipset), but at least they would still work
relatively standardly.

Personally, I'm all for new features but implemented in backwards-compatible
or relatively standard ways. Apple doesn't seem to be a fan of that.

~~~
culturestate
> I can't see any other compelling reasons for coming up with a completely
> different interface for such basic and existing devices.

I don't know enough about the implementation to speak to why they made this
choice, but for what it's worth, SPI _is_ a standard[1] - and a quite old one.
I suspect, were we to follow this down the rabbit hole, that we'd find it's
related to power management.

1\.
[https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bu...](https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus)

~~~
chillingeffect
that's a good guess. I would agree. SPI is not connection-oriented and "comes
up and goes down" (to the extent that it goes up and comes down at all) very
fast with very little active memory needed to support the communication.

~~~
userbinator
Neither is PS/2, which also being a synchronous serial interface with very low
overhead, does share many characteristics with SPI at the physical layer:

[https://en.wikipedia.org/wiki/PS/2_port#Legacy_port_status_a...](https://en.wikipedia.org/wiki/PS/2_port#Legacy_port_status_and_USB)

 _The PS /2 interface saves power due to its interrupt-driven nature compared
to USB which requires periodic polling, so it is a popular interface for
laptops' internal keyboards and pointing devices_

The major difference is that PS/2 is a de-facto standard up to the application
layer/software interface, while the MacBook SPI protocol is unique to Apple.

~~~
mjg59
PS/2 isn't high enough bandwidth to support decent multitouch, which is why
most modern PC touchpads come up in PS/2 mode and then transition to SPI.

------
pinkrooftop
A more accurate description is that Linux isn't compatible with the new
Macbook Pro. It's not Apple's job to make their laptop compatible with Linux.

~~~
teto-plz
Two things being compatible with each other is a symmetric relation, so the
order doesn't matter.

~~~
gnicholas
When previous devices in a series were compatible, things are a little
different.

When I upgraded my iPhone to iOS 8 (in 2014), it stopped connecting via
bluetooth with my car (2011 Subaru, FWIW). Apple told me it was a Subaru
problem. I reiterated that the problem was caused by my upgrading iOS, and
that nothing changed in my car. They said to get a firmware upgrade for my
car.

So incompatibility can be symmetric, but for people with an expectation based
on prior compatibility, the party that whose update triggers the issue will be
seen (fairly or not) as the cause.

------
AceJohnny2
Macbooks were never good choices to run Linux on, and it's naive to think it
would've gotten any easier. Apple's version of EFI is slightly different than
the standard. The laptops are filled with custom hardware that you won't find
anywhere else.

It took Dell months of effort by a dedicated team [1] to get all the features
of a subset of Dell XPS13 laptops working under Linux. I'm actually
considering buying one as a Linux machine, and I already own a Macbook.

To think that an Apple laptop would in any way make a good or even workable
Linux machine is laughably naive.

[1] [https://sputnik.github.io/](https://sputnik.github.io/)

~~~
maggit
I've been running Linux on my MacBook Pro for quite a while (years?), and
while there are a couple of hicups due to Apple weirdness, they are minor.

I would definitely call my MacBook Pro a good (and workable) Linux machine.

~~~
dabber
Mind elaborating on the hiccups and generation?

~~~
maggit
I've been making some notes going along as I have figured out different things
over different generations of MBP:

\-
[https://plus.google.com/+MagnusHoff/posts/Bnor8DQkKZ4](https://plus.google.com/+MagnusHoff/posts/Bnor8DQkKZ4)

\-
[https://plus.google.com/+MagnusHoff/posts/b23xMvSk3Hg](https://plus.google.com/+MagnusHoff/posts/b23xMvSk3Hg)

\-
[https://plus.google.com/+MagnusHoff/posts/1fUQWHPujX3](https://plus.google.com/+MagnusHoff/posts/1fUQWHPujX3)

\-
[https://plus.google.com/+MagnusHoff/posts/eLtER7D8feX](https://plus.google.com/+MagnusHoff/posts/eLtER7D8feX)

\-
[https://plus.google.com/+MagnusHoff/posts/7JHdmgZHwy8](https://plus.google.com/+MagnusHoff/posts/7JHdmgZHwy8)

\-
[https://plus.google.com/+MagnusHoff/posts/2wJnwgZt2md](https://plus.google.com/+MagnusHoff/posts/2wJnwgZt2md)

Additionally, the SD card slot won't work with ultra high speed SD cards, so I
have had to cap the sdhci driver to high speed.

So; Yes, there are some hiccups, but I am a happy camper :)

------
notadoc
$2800 on a laptop with only 16GB RAM that you're going to run linux on anyway?

If you're going to run Ubuntu, why not get a Lenovo for much less and with
notably better legitimately "Pro" specs?

~~~
chadgeidel
Build quality. It's difficult to find a _computer_ that matches the quality of
a MacBook for fit and finish, trackpad quality, and battery life.

I haven't used the new one, but the 2015 models were among the best hardware
on the market - regardless of what OS was installed.

~~~
micaksica
While Macs have fantastic build quality, there are now premium-level PCs that
are catching up to it. The new EliteBook Folio is a Core M-powered,
Thunderbolt-containing replacement for the 12" MacBook (not Pro); the Razer
series appear to be built just as well as Macs from my time with them hands-on
as well.

Personally, I don't care so much about "build quality" in terms of materials
used. If the hardware works I'm happy, and the Thinkpad is fine to me.

~~~
givinguflac
It may be fine, but the disk speeds on the latest Macs are amazing. There is
no laptop that matches that I'm aware of.

~~~
dom0
Unless I'm missing something: Huh? Apple is just using regular NVMe/M.2 SSDs,
nothing special about them. Lots of laptops have the option for M.2 NVMe SSDs,
and most newer desktop motherboards have the slot for it.

~~~
bluedino
The latest MBP leapfrogged the rest of the market again

~~~
dom0
Specs seem to be 3.1 GB/s read and 2.1 GB/s write speed. While that's faster
than most M.2 SSDs, equally-or-better specced SSDs are already on the market,
eg. Samsung 960 Pro (3.5 / 2.1 GB/s).

~~~
Tinyyy
It's kinda disingenuous to say that the 960 Pro is already on the market when
it's not for sale yet.

------
preek
I run my Linux on a VM where I spend most of my time, so I have no first hand
experience, but a friend of mine just bought a new MBP, installed Arch on it
and blogged about it: [http://www.nico.schottelius.org/blog/linux-on-macbook-
pro-20...](http://www.nico.schottelius.org/blog/linux-on-macbook-pro-2016/)

------
Symbiote
Would anyone expect it to be compatible, this soon after release?

~~~
awesomerobot
All previous models were compatible out of the box.

~~~
plorkyeran
There's a 17 month old bounty to add support for the 2015 MacBook:
[https://www.bountysource.com/issues/35422234-macbook8-1-12-i...](https://www.bountysource.com/issues/35422234-macbook8-1-12-inch-
early-2015-keyboard-and-trackpad-don-t-work). The 2012 Retina MBP also didn't
work correctly at first but that was fixed quickly. The only models that were
compatible out of the box were the ones which didn't change much.

~~~
awesomerobot
my bad

------
nine_k
There are other nice machines to run Linux on.

AFAICT people buy Apple laptops to run macOS; for _that_ you have pretty
little choice.

~~~
maxxxxx
For a while a Macbook was the best Windows laptop. Not sure if that's still
true.

~~~
chadgeidel
IMHO it's still up there. I don't know about the new ones, but I had a 2015 at
my previous place of employment and Windows 10 on BootCamp is a very nice
experience. I still haven't seen a laptop from "PC manufacturers" that comes
close. I haven't physically used a SurfaceBook though.

~~~
legodt
The surface is nice, but it's a very different experience from the older, more
solid macbook hardware. Most of the complaints about the new directions for
macbook hardware (too light, not enough material, weird inconsistencies, and
sacrificed keyboard mechanics) also appear on the Surface

~~~
xorxornop
The Surface Pro, yep - the Surface Book on the other hand has pretty nice
keyboard, and a fantastic track pad (just as good as that in MBPs). My partner
owns one (after I recommended it) - they're great laptops... and tablets to
boot!

------
solitone
I've read this thread and see there are people who highly appreciate Apple's
products and others who dislike them very much. Personally, I see plenty of
Apple laptops used by my colleagues, and I can't help liking them.

Since I want to run linux though, my question is: is there a specific (older)
version of the MacBook Pro that I should consider?

------
colemickens
Meanwhile I just put Arch back on my Chromebook Pixel and I couldn't be
happier. Far better screen, far better font rendering, and no absurdities
regarding keyboard shortcuts and keys whenever plugging in an external
keyboard. I can use my mouse with normal scroll while having my trackpad
inverted. I have a real window manager again with "Always On Top". And I have
real per-app volume mixing again. Oh, and an escape key!

I literally had money set aside to buy a new MBP, but I don't see myself being
an Apple customer again anytime soon.

edit: I just don't get this place sometimes. Did I piss off some Apple fans?

~~~
busterarm
I wish I'd gotten a 2015 and put OpenBSD on it. Oh well :(

~~~
colemickens
Are they out of stock, or just can't bring yourself to buy 18mo old hardware?

I feel like mid-summer next year we're going to start seeing signs of a new
Pixel for the Andromeda merging of Android/ChromeOS.

~~~
busterarm
Prices are climbing because they're harder to get now but yes on point 2.

------
rbanffy
Honestly curious here: I understand running Linux on a laptop that came with
Windows installed, but a Mac comes preinstalled with a fairly reasonable Unix
environment. Why bother?

Even on Linux I usually develop inside a VM with a stable OS (CentOS, Ubuntu
LTS) that's older than the host environment (current Ubuntu or Fedora).

------
nicky0
First everyone complained there MBP was shit and that they weren't going to
get one. Now apparently it's so good people are wanting them to run Linux on.

------
noobermin
I have the new MacBook from 2015, and I was hoping now that that they've
released a new MacBook Pro, we will finally see work on Linux support on this
damn machine. For one, the keyboard does not work on that machine too[0],
probably for the same reason.

[0]
[https://bugzilla.kernel.org/show_bug.cgi?id=108331](https://bugzilla.kernel.org/show_bug.cgi?id=108331)

------
bluedino
Works just fine in a VM - I find it works better to just do that and you keep
all the OS X benefits (touchpad, battery life...)

~~~
moondev
What do you use? I like fusion but can't get option to map to alt for alt tab
to save my life

~~~
loc_00000000
You could use any VM and make it fullscreen so you can swap environments using
the three finger swipe set up in the trackpad gestures.

~~~
karl42
I didn't manage to keep the dock and menubar permanently hidden (even when
moving the mouse to the edge of the screen) in both Virtualbox and Veertu
Desktop. Did you get that right, or do you just live with it?

------
loc_00000000
I don't see a big problem here. A virtual machine will not have the same
conflicts. Besides, running a Linux distro in a VM is very efficient in terms
of CPU and in turn battery consumption (I get <1% CPU with VMware). having the
two OS's (OSX and Linux) in parallel should be the preferred operation.

------
moondev
Anyone here run linux on their macbook succesfully? I tried but couldnt get
hardware rendering to work with cinnamon (2015 15" pro). I'm open to any
window manager that does hidpi well though.

Vmware fusion actually works pretty damn well but I hate having the extra
layer and hearing the fans all the time.

~~~
striking
I tried it once with suckless' dwm. Obviously dwm doesn't respect HiDPI but
after having set the .Xresources file, everything was absolutely great. [1]

This will probably only work if you take the time to write your own .xinitrc.
I'm really sorry about that, but I haven't had an opportunity to find a better
solution. Perhaps someone else can further assist you.

1:
[https://wiki.archlinux.org/index.php/HiDPI#X_Resources](https://wiki.archlinux.org/index.php/HiDPI#X_Resources)

~~~
moondev
Thanks for the advice, i'll give that a go.

------
chmaynard
I assume the author means you won't be able to boot the machine using Linux
until modifications are made to the OS. Linux probably runs just fine inside a
Docker container.

~~~
moondev
That container is not running on macos. Its inside an alpine vm.

~~~
chmaynard
Yes, thanks for the correction. My point was that virtualization makes it
likely that Alpine Linux runs fine on the new MacBook Pro without
modification.

------
WhitneyLand
is this only a problem for installs down to the metal? or are there issues
getting a linux VM running as fast as possible?

i don't understand why you'd want a $4000 MacBook to run only linux. there are
so many other options for native installs.

------
msane
Sorry but who runs linux on a Mac?

------
tedunangst
This is obviously Microsoft's fault, right?

------
ilaksh
I think they said they spent like $2800.

For that amount of money you could get 2 Chromebooks ($179 each), build two
decent gaming PCs ($900 each), and rent 5 Digital Ocean VPSs ($5 per month)
for two years.

~~~
21
And for the price of a Ferarri you can get 5 Toyotas, 2 scooters and monthly
passes for the subway for a year.

I'm not sure what you're trying to say.

~~~
ilaksh
MacBooks aren't Ferraris.

~~~
spronkey
Indeed. More like BMWs.

------
chktsk_fn
You can't have your (cake) and eat it too.

------
5ilv3r
Idiots don't seem to realize that there are two ways hardware is supported by
linux. Either the vendor writes the driver (like in windows land) and releases
or merges it, or some other guy figures out how to twiddle the hardware and
make it work, and merges it. You must wait for one of those to happen if you
cannot do it yourself. This is not news.

------
cpncrunch
To be honest I'm not sure why you'd really want to do that. For a developer OS
X gives you everything that linux offers that you would need, with the
advantage of a better GUI. I only ever use linux on servers these days. OS X
is a much more usable client-side OS for a variety of reasons.

~~~
plzbo
What are those reasons apart from having a "better" ui? (Which is highly
subjective and if you use a tiling wm Linux is probably the better choice).

What turns me off OS X is the lack of a good package manager with up to date
packages. Has this changed?

~~~
cpncrunch
>What are those reasons apart from having a "better" ui? (Which is highly
subjective and if you use a tiling wm Linux is probably the better choice).

\- More commercial software available (photoshop, etc).

\- OS X is required if you need to run xcode

\- Easier to upgrade to the next version of the OS, without having to do a
full reinstall

\- Better binary compatibility. (Pretty minor issue).

>What turns me off OS X is the lack of a good package manager with up to date
packages. Has this changed?

[http://brew.sh/](http://brew.sh/)

~~~
striking
> full reinstall

You need to fully reinstall your Linux install every upgrade?

That might be a symptom of Ubuntu usage, but many other distros handle
upgrades gracefully. Arch is an example of this.

~~~
cpncrunch
Perhaps it depends on the distro. You certainly have to reinstall to upgrade
to a new version of CentOS (which is what I use on all my servers).

------
hartator
Apple is working so hard for us to not buy from them anymore. It's incredible.

~~~
chktsk_fn
They are trying desperately.

