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/ . 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 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.
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.
> 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.
That well may be (regarding the power management), but while SPI as standard is old, the use of SPI is not standard. I've implemented quite a few SPIs (mostly FPGA) to interface with various commercial devices and virtually all of them had a different protocol, i.e. 8bit vs 7bit words, different bits to denote write or read, etc. Some of them didn't even use SS signal. I wouldn't really called them standard, and I say that with regret. More hardware could be used in a more standard manner.
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.
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:
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.
You are right that SPI is a standard, although like RS232 it only exists in hardware and data layers, while USB is up to application layer.
You argument in this case is very similar to defending use of custom TCP protocol for web browsing. While TCP is standard, there is nothing standard about it to browse the web, we have HTTP for that
Apple were already using USB for the PPC iBooks, and continued that with the Macbook - Linux has always complained that it can't find a PS/2 controller on x86 Apples. But USB is poor from a power management perspective, and so input devices on low power systems are frequently run over SPI instead. Apple began this with the Macbook (which is basically a tablet shaped like a laptop) and have started extending it across their entire mobile range. There are entirely sound reasons for doing this, and it's not unique to Apple.
My Acer Cloudbook trackpad is I2C, a similar simple bus. It can be configured in BIOS to fallback to PS/2 with reduced capabilities.
PS/2 is too slow for the volume of data coming out of a modern touchpad. USB is a lot more hardware, though that is small in the context of a CPU. It may just be that with I2C running around the motherboard for all the miscellaneous devices it just makes sense to use that.
True, but SPI is really just referring to the physical layer protocol while the layers above can vary considerably and be proprietary. The only thing that's constant is that it is a synchronous serial protocol.
It's not like USB which defines device classes and the higher-level layers of the stack, or PS/2 where e.g. all PS/2 keyboards or mice are expected to have an identical basic set of functionality and behaviour. There are certainly proprietary "vendor-specific" extensions to those, but e.g. it's almost a given that if you plug in a USB keyboard, all the standard QWERTY keys should work effortlessly; and while there may be extensions like displays and touchbars that require specific drivers, the core functionality doesn't change.
If I understand correctly, what Apple did here is invent their own protocol for the keyboard which is completely different from what any PC or earlier Macs have, thus the lack of any functionality from Linux. And given how crucial a keyboard is to being able to do anything with the computer, it's no wonder this has caused much consternation.
I think many people are used to the idea that even if the OS does not provide drivers for specific devices, basic functionality like keyboard, mouse, and video (even if it's something like a VGA 640x480 16 colours mode) should still be present --- partly to enable "bootstrapping" into more functionality by installing and troubleshooting the drivers.
> I think many people are used to the idea that even if the OS does not provide drivers for specific devices, basic functionality like keyboard, mouse, and video (even if it's something like a VGA 640x480 16 colours mode) should still be present --- partly to enable "bootstrapping" into more functionality by installing and troubleshooting the drivers.
Then I think people need to step back and appreciate that this "basic functionality" is actually really expensive in terms of price, space, power and performance.
Would they really pay more for Apple hardware if it booted up with a full internal USB or a PS/2?
What if it made the laptop heavier? Shortened the battery life? These things are very important to me: I wouldn't buy a heavier Mac.
Could this be mitigated with custom ASICs? Or a new power switch and some extra power controllers (e.g. a soft switch to turn off the fallback 8042 and start using the faster more sensible SPI interface)? Perhaps, but someone has to pay for it.
Moaning about things that don't make sense to change -- that someone just doesn't like, just makes that someone unhappy.
Could this be mitigated with custom ASICs? Or a new power switch and some extra power controllers (e.g. a soft switch to turn off the fallback 8042 and start using the faster more sensible SPI interface)? Perhaps, but someone has to pay for it.
PS/2 has not been implemented with a real 8042 for a very long time. Standard laptop ECs which are cheap and widely available have optimised dedicated hardware to handle the protocol. Speed is not a problem either, because this doesn't need to be a physical PS/2 interface with a separate keyboard on the end of it --- in the designs I've seen, the EC scans the key matrix itself and just provides a PS/2 software interface. It really doesn't matter what the physical interface on a laptop is, since the software interface is what's important here; Apple could've used something similar to PS/2 but increased the clock rate to whatever they needed, and it'd still look the same and be compatible to existing software.
USB is not a good idea from a power perspective since it is a polled bus and there's plenty of additional unneeded complexity throughout the whole stack, but PS/2 is interrupt-driven and extremely low-power.
In fact, it is a synchronous serial protocol just like SPI, so what appears to have happened with these MacBooks is that Apple basically reinvented PS/2 in their own "Think Different" way.
> Apple could've used something similar to PS/2 but increased the clock rate to whatever they needed, and it'd still look the same and be compatible to existing software.
If you deliver a byte per interrupt to be compatible with PS/2 then your system has to wake up more frequently than a DMA/SPI interface.
> USB … is a polled bus
> PS/2 is interrupt-driven and low-power enough for me.
This is wrong.
USB and PS/2 both deliver an interrupt when there is data available.
USB can be configured to directly store the data in memory, so that in the ISR the operating system simply scans memory.
PS/2 on the other hand has to be polled inside the ISR, whether there is data available or not. Not a problem for a keyboard, but touchpads send a lot of data (of course, this is why everyone uses SPI for touchpads)
> It really doesn't matter what the physical interface on a laptop is, since the software interface is what's important here
This is a common, but fundamental misunderstanding of how software and hardware work.
Hardware is not mere programmable matter, it has wires and current, and those wires take up space, and that current draws down your battery.
A lot of laptop vendors have to include "compatibility chips" that take up space and draw down battery because they don't control the software, but if they did control the software they could make their users happier.
If you deliver a byte per interrupt to be compatible with PS/2 then your system has to wake up more frequently than a DMA/SPI interface.
Nothing says Apple couldn't just add DMA capabilities to a PS/2 controller, sort of like how bus-master IDE works.
USB can be configured to directly store the data in memory, so that in the ISR the operating system simply scans memory.
That's just DMA, but the USB controller itself has to physically poll the bus. (Excepting some features in USB 3.x, which I don't think I've seen any use of currently for keyboards or mouses.)
PS/2 on the other hand has to be polled inside the ISR, whether there is data available or not. Not a problem for a keyboard, but touchpads send a lot of data (of course, this is why everyone uses SPI for touchpads)
If I remember correctly, the polling is only necessary for writing commands to the controller+device, and not the usual reading of data. There are plenty of touchpads that use PS/2 as well, and they usually appear to be mouses until switched to a different protocol mode.
A lot of laptop vendors have to include "compatibility chips" that take up space and draw down battery because they don't control the software, but if they did control the software they could make their users happier.
"compatibility chips" - such as?
Hardware is not mere programmable matter, it has wires and current, and those wires take up space, and that current draws down your battery.
The amount of processing required for a USB stack is far greater than for PS/2 and presumably Apple's custom SPI solution. I think the main point to take away from all this discussion is that although Apple could've taken an existing widespread and compatible interface with similar characteristics and enhanced it to fit their requirements, they didn't.
...and that obviously many users here are not "happier" because of it, but Apple doesn't care.
It's probably okay for a keyboard and a low-resolution mouse. Maybe. It's definitely not okay for a touchpad.
> There are plenty of touchpads that use PS/2 as well, and they usually appear to be mouses until switched to a different protocol mode.
With extra chips.
I think the main point to take away from all this discussion is that although Apple could've taken an existing widespread and compatible interface with similar characteristics and enhanced it to fit their requirements, they didn't because it was more expensive.
FTFA.
You might think some people want Apple laptops to be hacker friendly, and you might be right, but my point is that you should consider that some people would rather they be cheaper and lighter and more power efficient.
You must wait for inb(0x64) & 1 before reading from 0x60.
The code clearly shows that all the ISR does is read from the status port, and if there is data available, read it from the data port. It only does nothing in the unlikely case that no data is available (could be a spurious interrupt.) I have written code like this before. There is no waiting, no polling. Receive an interrupt, read a byte. Some devices will actually let you read multiple bytes (just keep reading until one of the bits in the status register goes off.)
You're claiming it would significantly increase cost to enhance an existing interface (as opposed to redesigning everything and the nontrivial NRE of that?), on a laptop that itself costs far more than the majority of others using a standard or slightly enhanced standard interface.
>In fact, it is a synchronous serial protocol just like SPI, so what appears to have happened with these MacBooks is that Apple basically reinvented PS/2 in their own "Think Different" way.
Ugh. Almost everybody uses SPI for touchpads these days, although they frequently also provide a PS/2 compatibility mode. Apple don't care about working with stock operating systems other than their own (the Bootcamp installer injects additional drivers for Windows), so they decided not to bother.
I don't necessarily think Apple cost minimizes in that way. They build and engineer in ways other companies cannot or won't risk. My example being their 10k cnc machine purchase for MacBook cases. Or I could be totally wrong and this is what they're doing, of course.
PPC Mac laptops used ADB as an internal protocol for many years after no Apple computer shipped with external ADB ports.
My recollection was that the transition to using USB as an internal protocol came slightly before the PPC->Intel transition, and that the first several generations of X86 Mac laptops used USB internally for trackpads and keyboards. You sure there were ever any using PS/2? Seems unlikely.
Thanks for the link to the WIP driver. Since you have a lot of experience in this area, I'm curious:
1. What's the __1e6 alignment? [0] I've never heard of that.
2. How is the driver author going about writing that driver? Some of the comments seem to allude to analyzing what the Windows driver is doing. Do you think they're disassembling the Windows driver and trying to re-implement a Linux compatible driver in C? I don't see how anyone could implement a driver like this off the bat without some data sheet or existing code to look at.
Edit: thanks to people pointing out it's __le16, not __1e6. I need to change my font; even now I can barely tell the 1 and l apart.
1.) It is __le16 with an L, not __1e16, and it means that it is a little endian field for bitflags, the tooling makes sure it is properly handled (not mixed with numbers or fields in the wrong endianess). See this Stack Overflow post and especially the links in the accepted answer: https://stackoverflow.com/questions/9680399/what-does-typede...
ah, there's also an interesting discussion in an GH issue. They reference the data sheets of the parts mentioned from an iFixit teardown. There's also discussion of disassembling the OSX driver. And here's info on how the author sniffed SPI traffic on Windows. [1]
"As an aside, for anyone interested in helping reverse engineer things:
It's possible to get Windows to dump everything it sends on what it calls SPB - basically SPI & I2C. Open the Event Viewer and enable View -> Show Analytic and Debug Logs. Then head to Application and Services Logs -> Microsoft -> Windows -> SPB-ClassExtension. Right click on Analytic and enable it - all events will be logged. Disable it when done, and look for the 1023 events, and view the details tab - they'll give you the full buffer contents. Other events will let you know things like the direction of the transfer, etc."
Actually, (2) has been fixed for the 2015 Macbook, I suppose that can help for the Macbook Pro. We have been trying to fix the SPI issue for a while, see this[0]
As I've posted before, I am so happy now the Macbook Pro is out because we desperately need help on this issue.
For the Thinkpads, yes. Lenovo is one of the companies that maintains a list such as this: https://support.lenovo.com/us/en/documents/pd031426
(This is a list of computers that they have certified one or more Linux distros against -- typically RHEL and Ubuntu).
Any of the problems that you usually hear are typically on their non-Thinkpad lines.
It isn't when I bring it up -- I wonder if there is a javascript issue that is causing a problem (such as with noscript, or an adblocker?) I'm seeing about 25 pages of systems. For current systems, I'm seeing the T460, T460p (with Ubuntu 14.04), and T460s with both Ubuntu and RHEL 7.2. Also seeing the X1 carbon, and X1 carbon yoga with Ubuntu certification.
Ish, but if you're considering something ultrabookish then the Dell XPS range has the most people working on it. Probably better sticking with Thinkpads if RHEL is a hard requirement.
XPS 13 and 15 (or the equivalent Precision series)
No question about it. Lenovo has hardware whitelists and has frequently broken Linux compatibility with its BIOS.
there is a public outcry if a notebook runs only the latest version of Windows
The is no public outcry for the Acer Cloudbook I bought which tolerates Linux about as well as these new MacBooks.† Acer provides no drivers or other help. I don't see any reason to expect Apple to go beyond Acer to support unintended operating systems.‡
␄
† It has trackpad driver problems, EFI mysteries, and a broken APIC (from Linux's viewpoint). With a couple hours hacking about you can get Debian installed, but each new kernel release is a crap shoot that can end in an unbootable machine for some as yet undiagnosed malady. Recent kernels result in it instantly deciding it has overheated and must power down immediately.
‡ I also don't see Acer submitting patches to my operating system, though that would be shocking.
Apple seems preternaturally constrained by engineer time; I can't see why they would devote a scarce resource like that to qualifying drivers for anything older than Windows 10 Anniversary Edition.
They have incredible amount of cash reserves. An investment in Linux drivers would go against their mission of OSX penetration. It has nothing to do with being unable to do it.
You can't just throw money at a problem and it magically gets solved. Adding additional requirements puts strain on your core team, there's no way around it.
If you could 100% compartmentalize this, have people working on it independently, maybe you could minimize impact, but how can you justify that spending?
They know the open-source community is capable of working to fix problems like this.
Seems to me your statements are contradictory. The open-source community has no contact with Apple's core team. Either the open source community can't do it, or Apple could do it without adding strain to its core team.
Every employee of Apple adds to the organizational weight. If they're throwing money at something that money needs to be accounted for, there needs to be check-ins and reviews and...
The open-source community can do it. Look, we got Linux on the PS4. This isn't even hard by comparison.
I agree that it's not a lack of resources, but I don't think it's about OSX penetration. They don't seem to care much about OSX penetration anymore. If they did, they would make a wider range of OSX devices and sell them at a more competitive price or license it to other hardware makers who would do so so they could get OSX into more hands.
It's about control. Apple doesn't want YOU to replace OSX, they want to do it themselves with something they control, not let you gain control.
I don't think they care about OSX penetration, but they care about their competitive advantage of controlling both the software and hardware. Stuff like retina display was hugely easier to introduce by Apple than any other constructor thanks to having OSX in house and only their hardware to support.
Investing in Linux would not be a problem it just means that is becomes just a tiny bit harder to do whatever they want on the hardware side. I'm surprised they still maintain Bootcamp.
It's worth remembering that a Mac virtually never supports an OS released before it. They usually ship with a special build of the current version, and later point releases of macOS support the hardware directly. I wouldn't call that a scarce resource problem, but a convenient way of not having to create backwards compatible hardware. Just build hardware sensibly within your corporate world view, perhaps tweak it a bit for the latest version of Windows, and that's all you need.
They could pay a third party to do this and provide them with the necessary documentation of the internals (which probably don't stray very far from standard hardware).
A simple announcement as in "We're working on it. Expect Linux drivers in 6-12 months." would suffice to calm the waves.
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.
When describing abstract entities maybe, in real life, order always matters.
E.g. if you sell an office suite and it doesn't support DOC and XLS files, it's your fault and users will call you for it. It's not Microsoft's job to go make sure Word and Excel work with your office suite.
True, but we usually phrase it in terms of the new thing’s compatibility with the old. In this case, Apple chose not to make their laptop compatible with the existing Linux. Nor, I think, should they necessarily have been expected to—it’s proprietary hardware, meant to run their proprietary OS.
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.
That depends. MacBook Air 2012 11 inch is one of the best machines I have ever seen for Linux. In fact Linus himself used one for some time, which he praised. It's a very standard Ivy Bridge machine, also extremely silent.
Everything just works with a stock kernel. Only minor caveat is that the wireless card has bad range. But also in Mac OS, so not sure this is a driver fault. Easy to fix, I use an external Atheros from Alfa which has incredible range and is great for pen-testing.
Apart from that, the only annoyance is that the battery does not emit ACPI discharge events. But very few laptops do this, apart from some ThinkPads. (I would love to know which do! These are really useful to set up udev sleep rules instead of polling the battery on a tiling window manager & no-desktop-environment setup, but it is a feature rarely documented.)
Yes, I ran Linux on a MBP for several years, starting about 10 years ago. It works fine after a little bit of configuration (new hardware may take a little while to get driver support, per usual; that's not unique to Apple hardware).
I've also used Windows on a MBP for several months. It's not perfect either, there are minor quirks with that too. MBPs really only work perfectly under OS X for obvious reasons, but it's not usually not implausible to use other OSes on a MacBook if you want to do that.
Several Linux kernel committers use a MacBook as their primary device. I've run Linux on a MacBook for years at a time and it worked fine. There may be some extra complication involved in getting Linux working well on a MacBook (and typically this is only true for the first several months until drivers are updated and integrated upstream), but it's certainly not a "laughably naive" endeavor. It works fine after some configuration.
Presently one can use MacBook 2015-2016 on Linux only with an external keyboard/mouse. The progress with driver has been made, but it is far from there.
Seconding your input. There is nothing laughable about Linux on a Macbook and I hope folks don't have an impression otherwise. I completely formatted the HD on mine and using only Linux and tools within the repos, wangled a very usable system on a new gpt partition. I was a bit naive to expect it would be fun and easy, but it worked after some effort.
I did buy one od these XPS developer edition. It comes with ubuntu.
If we want to signal to the market that we want laptop with linux we need to support this kind of initiative. The fact that linux just work without any changes is great.
>Macbooks were never good choices to run Linux on, and it's naive to think it would've gotten any easier.
Linus Torvalds, for one, used a Macbook Air with Linux up until a couple of years ago, which he praised as the right way to do laptops (he now uses a Chromebook IIRC).
(He also used a Mac Pro G5 in the mid-00s, again with Linux, and he wrote his autobiography around 2003-4 on an iBook with OS X).
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.
There are some competitors in the 12-13" range. Nothing that matches it in battery life though: http://arstechnica.com/apple/2016/11/review-cheapest-2016-ma.... And there is no competition for the 15" that doesn't have serious flaws (HiDPI display or 10+ hours battery life, but not both).
The hardest part for me was finding a 15" PC laptop without the retarded number pad. I'm quite happy with my Dell M5510, but it was basically the only alternative to a MBP.
Yes, this drives me insane too, and is the thing that I hate about the "workstation class" devices. I don't use the number pad and I don't want it, thank you. It trips me up whenever I have to use one and I have to offset my hands from the display.
I would have really loved one when I was doing a lot of data entry in a previous job. Instead I just got a USB keyboard with a number pad, I understand that my niche desires don't necessarily make for a mass-market desirable device.
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.
Just as a sticking point, Apple's SSDs are not, and have never been, regular NVMe or M.2. They have always used their own stupid custom proprietary connector, despite basically implementing most of the relevant standard (NVMe/PCIe/SATA).
A lot of laptops that advertise NVMe SSDs are using inferior TLC-based or non-Samsung SSDs to check that box. Apple's not alone at the top (especially when aftermarket upgrades are taken into account), but they have been pretty good about using the fastest PCIe SSD that money could buy at the time of release.
True, but I don't think that's common near the price point of Apple hardware.
It's also not uncommon in the "lower ranks". I just bought a 800 € ultrabook with a 256 GB Samsung PM961 SSD (NVMe, 2.8 / 1.1 GB/s) and the Skylake i7 for example.
Also, don't forget that one can buy a Samsung 960 Pro in a machine that comes with a cheaper SSD but uses a standard M.2 NVMe slot, and ditch the original SSD, for cheaper than any of Apple's capacity upgrades.
The Samsung PM961 is not top of the line. It's one of the more recent TLC-based alternatives that shares a controller with the top of the line products, but it's inherently slower and less power efficient.
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).
Assuming you are using Linux and you have gobs of RAM, the 15-20% difference you will see between an mSATA SSD and NVMe is negligible for most common workloads/applications, as you will be likely pulling things from the RAM cache. The Linux box I'm writing this on only has 8 GB RAM and my whole system is only using 1.1G, leaving 6+ GB RAM as a RAM cache for read files. On 16 GB systems it's even better.
The build quality of MacBook Pro is generally good, but it's still hit and miss especially for a premium priced machine. For example, the film layer on my display is currently peeling off, similar to this: http://cdn.macrumors.com/article-new/2015/03/Retina-MacBook-...
I didn't know this issue happened on the 2015 model as well... I've got the mid 2014 model and it has the exact same issue.
They call it staingate [0], and it seems that they've replaced screens with the issue (for free). I have yet to request that, however...
They chose for 'staingate' as it looks like regular stains (like the ones you get with dirty hands on your screen).
One of my colleague had the same issue (of course, same serie macbooks) but his was just in the middle of his screen. He tried everything to get it away (he said it randomly appeared; he used cleaning wipes daily)...
I wonder how many people are still walking around with damaged screens...
I use a microfiber cloth to remove dust from the MacBook Pro display. Never have used a chemical once, there is no need if you are dusting a display.
I'd take a video and show you how you can scrape off the laminate with quite literally anything, but I have nothing to prove to you. Besides, as another commenter has pointed out, Apple is apparently replacing these screens if you can handle to be away from your work machine for the repair time.
Only, it's also happening on my 15 inch MacBook Pro screen, which has never been touched with anything else than the cloth it came with and purified water.
I bought it brand new knowing about Staingate and purposefully treated the screen with kid gloves, yet here we are.
I've told friends and family numerous times to throw away that "LCD/Screen cleaning" crap that they were upsold at BestBuy and to just use (preferably distilled) water and a microfiber cloth. That combo will get rid of 99% of smudges and will get rid of them safely! All those commercial screen cleaners contain crap like ammonia and other chemicals that can take off screen coatings.
Build quality is awesome. But parts themselves are just ordinary cheap things which fail. And some of them are just an example of poor engineering. I use rmbp 15". My audio port failed in funny way. It's combination of audio port and laser port in one hole. There's some kind of switch there and it's stuck, so computer thinks that I plugged optical cord and refuses to play sound at all. And it's actually not that rare problem, it happens. Some people had luck with wooden stick, didn't work for me. So I basically have to pay some crazy bucks to replace motherboard because of bad port and bad driver, which can't switch to audio (fun thing is, Windows driver can do it).
Terrible keyboard, terrible cords, glued battery (really???), display which can't forget previous image (crystallization or w/e it's called), terrible mic. Macbooks are not that good.
"Build quality" on a Mac to me, overall, is usually quite manic. Some things are really good - the finish quality on the materials used is always excellent, hinges are always excellent and long lasting, trackpads, keyboards etc are always finished to high quality and installed with a good degree of precision - you don't see too many uneven gaps etc.
In saying that, you're absolutely right about things like the poor quality cables, idiotic glued batteries, and parts that can't be easily replaced. Even i.e. keyboards - I've replaced Thinkpad keyboards before when they have worn out, simply because the new keyboard feels a lot nicer than a cleaned up abused one.
I really like ThinkPads. People keep claiming that build quality has gotten worse, but that doesn't match up with my impression and experience. The T and X series laptops are very well built. The screens aren't as nice as Apple's, and I can't comment on the touchpads (I exclusively use the TrackPoint), but overall they're great machines (and cheap, compared to MacBooks).
Spec-wise the screens are not as nice. In practice, for coding, I would much rather have the anti-glare matte screen of the kind that comes standard on Thinkpads.
ThinkPad's displays have historically been embarrassingly poor for the price of the machines. Only recently do they have displays that I would consider adequate.
Only a few years ago with their IPS upgrades on i.e. X220s, X230s, suffered from numerous issues (poor gamut, image retention).
I Bought a MacBook a few years ago, the keyboard broke a few times, and the frame was full of cracks even though I was really careful with it. I don't believe one second the quality of the MacBook is better, especially for the price I paid at the time ( + Apple Care cost ). It might be easier to find spare parts for Apple devices but that's it.
Real question: Is battery life a benefit when you're running an OS other than macOS? Doesn't macOS have optimizations that make it better at battery consumption than other OSes?
Of course, macOS has better battery management than recent versions of Windows, but a "barebones" install of Windows (drivers and the tools you use without a bunch of services that run all the time) does have good battery life.
I think Apple generally puts more watt-hours in their systems as well, but don't quote me on that. :-)
Are you able to have a functioning linux installation with a razer blade, without doing too much sorcery? For example, this is the case for plenty of Dells that I have tried.
I have never used a razer blade, but I have been through the forums and it seems that having linux work properly is not that straightforward.
I have a 2015 Razer Blade Pro and it worked very well under Ubuntu 16.04. The touchpad, touch screen, wifi, etc. all worked well, at least on newer Linux kernels (the trackpad had issues on older kernels). I did some 3D graphics work, and the Nvidia drivers were much better than other drivers I've used on Linux. There wasn't really any "sorcery" involved from my experience; I just installed from the official iso.
My main problem was that battery life was pretty abysmal under Linux. With Windows, I would get 4-5 hours under light usage, but under Ubuntu I would pretty much only get ~2-2.5 hours, even without doing much on it. Stressing the CPU/GPU made it die even faster. But that thing isn't really known for its battery life anyways.
Unfortunately I don't have Ubuntu installed on it anymore because I couldn't get Windows and Ubuntu to happily coexist side-by-side. Windows (10) always gave me a boot failure when Ubuntu was installed next to it.
A friend had the same problem, of windows and ubuntu not willing to share the same machine on another laptop (acer). He was able to solve it by disabling secure boot and using UEFI as boot mode plus one magical command to show grub boot menu. Maybe it is worth a try, if you have not already.
My issue with Razer: As far as I can tell, they only ship laptops with the country's keyboard layout. I move around a lot and always buy laptops with US keyboard layout. At the moment, I'm in Germany and can only order Razer Blades with the awful German layout :( I know, pretty niche, but both Apple and Dell allow you to do this.
This page gives a drop-down with the choice of an American or Nordic layout. There's clearly something dodgy with the site, when the German page offers me the Nordic layout.
that's not true and you know it. please stop repeating nonsense.
everyone who argues that and then try to prove their point ends up comparing budget pcs. so tiring.
also my company is full of 2012 and 2013 macbook pros that crash and burn with several hardware video card build issues that for some reason it was never able/willing to return.
I've used lots of Windows laptops at home and work over the years. From $800 to custom-built $3k business-class workhorses. I maintain my claim that the build quality and integration on a MacBook is still among the best.
I'll agree that the build quality is excellent but the promise of the stability of an OS built for hardware from the same vendor has been a disappointment. OS X on my late 2012 13" MBP Retina has been the most unstable platform I have used in years. It completely freezes on me about once a month.
I haven't had a blue screen of death or lockup on the various Windows laptops I've been forced to use for work since some time in the mid 2000s. My desktop machine runs Ubuntu and I have not had any stability issues over several versions.
When I replace my MBP it will be with a laptop running some flavor of Linux.
I must say i probably have lot of luck. I have 2011 nonretina macbook pro without ssd and i never had problems. I even dropped it once on hard ground (slipped from opened bag pocked). I use it every day, abuse it, travel all the time i do cpu intensive shit and even 3D sometimes. It still works very well without single repair (just added 16gb ram).
I never was much of a apple fan but this notebook was so good investment. I wish i would get something equaly good again. Unfortunately all that unrepairable glued bullshit is just sad.
You'd be surprised. When I was in college I saw a lot of people running Linux and showing off how cool it was. They were l33t because they had Linux. Uncommon things are very cool in the right audience. Plus, people in CS majors see their heroes using Linux for work and want to emulate them. For us, it's just another tool to get the job done. For them, it's getting a jump start on how they imagine their lives will be in a few years.
My 18 yr old cousin drives a 1988 Volvo with holes in the floor and a missing second gear, and he's the cool one in his group. Because he has the most inconvenient car. That's cool in his group.
Lenovo's malware scandal should certainly give you pause, but do note that it was only installed on its consumer laptops. Thinkpads were unaffected.
Moreover, Apple is far from the cleanly ethical choice you seem to think it is. It blocks or impedes the installation of software that it has unilaterally decided is against its interests + takes a ludicrous percentage of revenue via the App Store.
The 'malware' used a Windows misfeature that allows the BIOS to supply an executable that is run during startup. So the malware was in the firmware but only runs on Windows.
This should really only affect Windows systems as far as I know -- Windows is running an executable stored in the firmware at boot (a rather dubious feature, in my opinion, but it's intended as an anti-theft measure). Lenovo used that feature to try to circumvent removal of their crapware when someone reinstalls the OS.
For example SMM (system management mode) code is certainly loaded and executed under any operating system. You have to just trust the mainboard vendor.
It gets copied from the firmware and runs pre OS. But the executable only runs on windows from what I can tell, so its technically its cross platform but it wont run on both platforms.
> It blocks or impedes the installation of software that it has unilaterally decided is against its interests
What software are you thinking of? Apple maintains editorial control over what's in the App Store, but I can't think of any case where Apple has blocked software distributed outside the app store. The closest I can think of is the fact that the default settings of the computer require apps to be codesigned with an Apple certificate, but Apple doesn't maintain editorial control over who gets certificates, anyone with a developer account can get one (and of course you can even bypass this requirement with right click -> Open, or by changing the security settings on the computer).
> takes a ludicrous percentage of revenue via the App Store
The App Store is completely optional. All software that's published on it can be distributed outside of it. And I don't see how the percentage Apple takes from their completely optional App Store is even remotely connected with ethics.
> by changing the security settings on the computer
Sierra has disabled the "install from any source" option (although you can re-enable it with some terminal magic). How long until they disable the identified developers option too and leave a system like the iphone?
If the user cannot be trusted to make reasonable choices because he doesn't understand or want to read security popups, you have to make the choice for them. That's what Apple is doing and so is Microsoft. It's the only way to go if you want a secure system. And guess what: people appreciate a stable, secure system that makes it difficult to distribute malware. They appreciate it more than fear-mongering about theoretical issues.
Apple is never going to completely lock down the Mac because it can't be a development platform if it is locked down. Besides, why would they even want to?
> If the user cannot be trusted to make reasonable choices because he doesn't understand or want to read security popups, you have to make the choice for them.
I would bring up a libertarian argument to counter this view, but unfortunately I don't politically lean that way do it wouldn't be authentic. Somebody definitely should make that point, though.
> How long until they disable the identified developers option too and leave a system like the iphone?
Never. That would literally kill the platform. And nothing Apple has done has indicated that they even want to go this route. For example, against all expectations, they haven't been expanding the set of sandbox exemptions for apps, which means there are still large classes of apps that cannot be distributed on the App Store as they need functionality that isn't available in the sandbox.
Removing the "disable Gatekeeper" option from the UI does not indicate that Apple wants to force everybody on the App Store, it means that Apple wants everybody to codesign their apps. But, as you already mentioned, you can easily re-enable it from the CLI, and anyone who isn't capable of finding out how to do that is almost certainly not qualified to judge the security implications of making that change.
Actually they haven't. You can still install from any source by right clicking and choosing Open.
Also one of Sierra's new features is adding support for non-MAS apps to use iCloud features. If they were planning to freeze out non-MAS apps, why would they do that?
The fact that you apparently don't understand the security implications here and the reasons why Apple is pushing for codesigning does not mean that Apple is putting up artificial barriers out of greed. That's a pretty ludicrous claim - do you really think the $99/year Apple gets from developers (who aren't already paying for iOS) even registers as a blip on their balance sheets?
The next time you see something you don't understand, your automatic reaction shouldn't be "those greedy bastards", it should be to actually educate yourself as to why it's being done. You may find that in a lot of cases there are actually really good reasons for it. And even if you decide that you don't agree with the reasons, that doesn't make it appropriate to accuse someone of being greedy or doing "evil" things (e.g. artificial technology barriers to extract money), and it's rather offensive for you to do that.
I suspect it is you that doesn't understand the security implications -- if all it takes is $99/year to gain the ability to sign arbitrary code, then there is no security benefit whatsoever. Pure security theater.
Obviously, the $99/year isn't making Apple a lot of money. But what it is doing is creating a culture of acceptance around Apple-as-gatekeeper. The iOS app store is most certainly making Apple a non-trivial amount of money (yes I know its a small percentage of their total at the moment.)
> takes a ludicrous percentage of revenue via the App Store.
Do you know what it was before the Apple App store came along? You were handing over about 70-80%, and that was if you could convince a publisher to take your app, which was a very hard sell.
Then Apple came along offering EVERYONE the ability to publish apps, and at a very reasonable cost.
You could throw up a web site and an online store and sell directly for nothing close to that. If you used a full-featured sales service, you might pay 8%. If you put in the work to run your own store that works with a merchant account, you could get it down to maybe 3%.
The alternative to the App Store isn't selling through a huge publisher who takes a huge cut, it's selling directly and keeping almost all of the money.
First off, I didn't say that Apple was blocking apps on MacOS. I mentioned it because the OP was disparaging Lenovo as a whole because of unethical behavior in one product line. As such, it's only fair to do the same for Apple.
Second, Apple most definitely does "impede" the installation of apps downloaded independently by requiring you to perform an obscure dance to execute them.
I don't see how that's a relevant point if you're going to do a fresh install anyways, unless you think lenovo is going to use something like vpro to spy on you without the OS.
if you're referring to the superfish scandal, that piece of software wasn't developed by lenovo, it was developed by a third party, who paid lenovo to install it on their windows images. so i don't see how buying lenovo is "funding spyware".
Well, that makes me feel better. Let me rephrase: By buying Lenovo, you're supporting a company that exchanges the privacy and security of unwitting customers for profit.
It goes both ways. By buying Apple you're funding walled gardens and anti-choice design patterns, abusive labor practices including child labor and sweatshop conditions at their prime contractors, and collusion with NSA et al via PRISM.
This comment is just ridiculous. Apple does more than ANY manufacturer to improve working and supply chain conditions, anywhere, and most OEMs use the same facilities so blaming Apple specifically is doubly silly. How is the Mac even close to a walled garden or anti choice??? They allow Windows and any app you want to be installed.. What are you talking about? And please, do provide a source for your "collusion with NSA" accusation as every other statement and action by Apple shows the opposite.
Hmm, let's see: can't run OSX and variants thereof except on Apple hardware (despite acceptable to flawless hardware compatibility), can't build software for OSX and variants thereof except on a Mac (despite being perfectly workable), can't use a different app store on iOS...
Wasn't this very post about clear hardware incompatibilities with the latest laptops and linux? Despite appearing to be the same, it's clearly not, otherwise it would simply 'just work'.
The idea that a constrained team spent the time to intentionally 'break' some 'standard' functionality to prohibit linux from working is laughable as well.
Alright, why don't you tell me all the proof you have that Apple was not a participant in the programme?
The NSA talks about them in internal documents, that they have absolutely zero incentive to lie on, that Apple is a part of PRISM. Why would the NSA lie about that on an internal document.
Don't you think there would be documents saying "We tried to get Apple to cooperate, but they didn't. Until they do, these are the steps, techniques, and hacks we will use against their technology." I don't remember seeing any such documents.
My guess is most of the companies (Yahoo excluded) on the PRISM slide were not complicit with the PRISM or the NSA. More likely, they were pwned by the NSA without their knowing.
I get your sentiment for the new model. I still run a 15" MBP from mid 13 and couldn't be happier with running Debian on it. Friends had multiple new machines (also Lenovo) in the same time. Some of them actually broke down. All of them have a very dim screen, speakers that I cannot hear and microphones that cannot record. And then there's the touch pad, ... The list goes on.
I'm no Apple fan boy, but those Lenovos are not IBM Thinkpads anymore.
I'm with you there. I'm tired of the assumption that quality has decreased because of a change of branding, possibly enhanced because the new owner is Chinese. My ThinkPad from early 2015 is better built than the older ThinkPads I have used, especially considering how thin and light it is. This shouldn't be surprising because the quality of materials has improved to make for lighter and more durable bodies.
The build quality is fine. I like Lenovos, but I can't buy them anymore...it's more the malware that bothers me. And not so much the malware, but the fact that the company was caught twice doing it, once being a BIOS malware that kept reinstalling itself if removed.
That shows fairly malicious intent on behalf of Lenovo. They just can't be trusted, at least not after a few years with a clean record.
Ehh, I'm one of those people, and it's a lot to me. I've been having trouble pulling the trigger on a new $2K laptop. I'm generally pretty frugal though.
There's a 17 month old bounty to add support for the 2015 MacBook: https://www.bountysource.com/issues/35422234-macbook8-1-12-i.... 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.
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.
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
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!
That's for recent models then? When I had it (around 4 years ago) it was ok, but lacking on the driver front: fans were running high for seemingly no reason, battery life was worse than under OSX even when idling (could be windows itself though I doubt it) and one of the drivers would write meaningless messages to the debug log like every single second.
Until recently, at my job, the choices were rather underpowered Windows machine or MBP. That was mostly because it was HR-types that chose Windows. I spend 98% of my time in Linux on my MBP and only spin it up which I have to use the camera or a OSX only app.
But I've been installing Linux on my work macs for a while, this kind of lag is totally expected.
I'm very happy with my System76.
(I have an galago ultrapro - they don't make them anymore but still provide support). They used to have pretty bad reviews, but most if not all the people/colleagues I've asked are now happy about their purchase. YMMV.
If I were to buy a laptop to run Ubuntu on today I'd go for their Lemur.
Ah, I see the first mention of Ubuntu was far down the page, long after all the machine specs which only show Windows. Thanks for pointing that out. I wonder what the community feels about these XPS linux boxes.
My choice is consistently ThinkPad T series. This, among other things, was one of the machines Google supplied to their engineers as a Linux laptop.
The high-resolution screen story of these laptops is somehow underwhelming. OTOH a matte screen by default is priceless; I can withstand a full HD 14" screen pretty well. Especially because X has much better font anti-aliasing for smaller fonts than OSX, so my Emacs and terminal windows look more readable even with lower DPI.
A Thinkpad series T is not sleek, but I don't care. I care about the ability to cram a lot of battery power into it, though.
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?
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?
Is it easy to install and use Linux on all Chromebook Pixel machines? I'm looking into it, what about Ubuntu? I was googling this last night and it's surprisingly hard to track down information about this, no wonder the OP had to just go and test it for himself.
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).
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.
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.
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?
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.
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.
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.
I had this exact same problem with an Asus and a Lenovo while running Cinnamon. Try a different GUI and I think you'll be satisfied. Cinnamon is nice, but it still uses far more resources than most other popular Linux GUIs and doesn't run well on certain systems.
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.
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.
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.
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.
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.
> gives you everything that linux offers that you would need
Homebrew is dope, but it's still a bolted-on package manager. I also hate hate hate that Apple have removed the ability to theme the OSX UI (RIP Flavours). If I'm going to stare at my dev screen all day it should look how I want it to.
You are free to disable SIP and do whatever runtime injection or other modifications to binaries you please, provided you have the knowledge to do so. Just because they ship it in a default mode doesn't mean they stop you from cracking it open if that's your desire.
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/ . 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 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.