Shared publicly  - 
 
Got Linux installed on the Macbook Pro Retina. Just like last time when I installed Linux on one of these macs, the major annoyance is that distros don't just install an EFI boot loader and EFI boot by default. Most of the time of the install is spent doing that manually after install, ugh. Random notes and hints:

- It requires intremap=off to boot, otherwise a nice panic ensues fairly quickly. Haven't looked into that yet.
- The Intel graphics aren't supported yet, so I'm stuck with Nvidia. On my previous macbook, my main reason for EFI booting was getting access to the Intel graphics. The AMD chip doubled power consumption of the notebook, rendering it hot and with an embarrassingly short battery runtime. Not a huge problem with Nvidia, but long term I'll definitely switch to Intel once it works. Note that you'll need the Nvidia beta drivers, the latest released version doesn't support this chipset yet.
- Backlight control of the display doesn't work.
- Cranking up the DPI helps makes the GUI somewhat usable. There are still some really small bits in there, but it's usable for me.
- EFI boot is a requirement, otherwise the Nvidia graphics don't work either.
- Apparently the EFI physical mode patches aren't needed anymore. Yay.
- 3.6-rc1 already has the patches for HID and input support. Only the bluetooth stuff is missing.
- The SSD is pretty snappy. Get about 15K IOPS sync, and 450-500MB/sec read/write performance.
- Audio, wifi, USB, SD, etc just works. Wifi with b43 is stuck at non-N modes apparently (thanks +Johannes Berg), so I'd rate that at 50% functional. I really really wish that it would work faster. Even my internet connection is faster than this, up or down.
- Suspend/resume works fine. And it resumes a lot faster than OSX, which is nice.
- Multitouch works out of the box, but it doesn't have the right "feel". Looks like I should try the alternative xf86-input-mtrack from "Bluedragon". Haven't done that yet.

All in all, it went better than expected. I recently upgraded my workstation and installed Linux Mint on it (I like apt based distros, and Ubuntu with gnome3/unity is horrible, and debian is way too outdated), so that was the choice for this notebook too. Just put the ISO on a usb stick and installed from that.
10
3
Jens Axboe's profile photoZeno Davatz's profile photoAlex Hartmann's profile photoKamil Sindi's profile photo
35 comments
 
+Jens Axboe , there is a hybrid-graphics mailing list to deal with integrated/discrete graphics cards. It may be worth giving bumblebee a try on your MBP Retina. If you aren't already subscribed, it would be great if you could post your investigations on getting the intel/nvidia configuration to work: https://launchpad.net/~hybrid-graphics-linux (go to bottom of the page to join the ml)
 
+Albert Vilella, I'm definitely interested in getting the Intel card to work so I don't have to mess with the Nvidia binary driver every time I upgrade the kernel. I personally have no use for 3D performance, I simply don't run anything that uses 3D to any extent. So my interest in hybrid graphics is fairly small. I never played with the switcheroo stuff on my older laptop. Once I got the Intel graphics going on that one, I never looked back. In fact I added the appropriate gmux outbs in my grub config to simply fully disable the discrete graphics card.
 
Though if the list talks about getting the Intel part to work, I'll gladly join in :-)
 
There is been both parts of the issue in the list being discussed: switching off the dicrete card to have the integrated working, and also have hot/cold card switching working. In your case, I presume some messing around with EFI and device mapping will need to be done.
 
I'm still trying to get the intel graphics chip to switch on, and others are trying as well, the intel-gfx list has some attempts...
 
Thanks Greg, I'll subscribe there too.
 
So how useful is the retina display really? I'm frankly not sure if I'd even want that because I use external displays a lot and it seems to me that having vastly different screen resolutions would be strange? Unless I guess you use either or, but then you might have to switch your font size settings all the time?
 
Generally I'm totally a sucker for hires displays. Text where you can't see the pixels, just delicious to read. But the higher DPI of the retina display does present some problems in Linux on the GUI side, where some parts are really small. I've got a decent setup now, where fonts and most GUI elements look fine. But things like the chrome tab list is pretty darn small. And in Thunderbird (ick) you basically have to find a add-on that allows you to set a default zoom level. If not, it's pretty much unreadable unless you have Chuck Yeager eyes.

I always just use my laptop standalone, I have a separate workstation for "office" use. So at least I don't have to fiddle with two monitors on the same machine, one of the twice the DPI of the other. That'd be really painful.
 
I'm the BlueDragonX mentioned in the first post. I initially wrote xf86-input-mtrack as a full featured driver for the MacBook line when I got my 2010 Air. At that point multitouch support in Linux was very much lacking. https://github.com/BlueDragonX/xf86-input-mtrack

Anywho, aside from that, I also grabbed an MBPr the week of release. I've been using it as my primary machine since I got it up and running. Most of my effort has gone towards getting nouveau working. tonight I've made progress towards that, fixing the last issue which was the screen corruption. There's not yet accel support for 650m. That's not something I will be working on, I'll leave it to the professionals.

I'm tracking what still doesn't work at https://gist.github.com/3252399

As far as regular usability goes it's actually very nice. I use Gnome3. There are some things that don't display correctly like +Jens Axboe said - Google Chrome, some third party Gnome Shell themes are broken - but for the most part it works great.

When at work I use it with a pair of 24" 1080p monitors. I have a Python script I wrote that toggles the DPI and Chrome default zoom level between two presets I've created, that way I can move easily between using external displays and not.

Btw, I'm sitting on my comfy couch typing this on my MBPr. It's a very nice piece of hardware.
 
Ryan, what do you use for default zoom on Chrome? I did a quick extension search, didn't find a good one.
 
I has originally looked at extensions, but the built in functionality mostly works fine. I set it to 175% when using the Retina display. The only issue I have is that when I change the zoom on a website it would stay that way when I would change displays and so not be affected by the main zoom level. My script removes all site-specific zoom levels when you use it to change the zoom, save for that of those in a whitelist you define. I'll post the code for it online.
 
OK, I'll just try the zoom setting. Thunderbird seems to be a MUCH larger issue. I think I'll just go back to mutt at this point, at least the terminal is easy to deal with.
 
Here's the script I wrote: https://gist.github.com/3316399

I built it to scale to other apps. So you could replace Gnome3 with something else. Add additional classes for more apps items. Etc, etc.
 
Update on progress - read up on the various lists, and now have it using the regular Xorg intel driver and powering off the Nvidia chip. That saved me 7-8W, so nice win. Surprisingly, it feels the same in X. I had perhaps feared that it would be sluggish when scrolling, considering the pixel count. So that's great news.

Only downside so far is that it takes ~15s to suspend, and same to resume. That's considerably slower than before. But I can live with that.

What I used (I take no credit for this, just summing up what I googled up):

- 3.6-rc1+ (current Linus as of this morning)
- drm-intel-next [1]
- The fix to force eDP bpc to 8, fixing the corruption on the MBP [2]
- Boot into OSX, using gfxCardStatus to set the graphics setting to "Only use Integrated"
- Set BusID in xorg.conf or X wont "detect" the Intel card
- bfroemels GMUX patches, making it recognize the gmux on the new MBP [3]
- bfroemels "fixgpu" utility, forcing the power off and enabling of the intel graphics [4]. Run this at boot, and on resume.

I think that was it. Works beautifully now, no nvidia binary blob, and even backlight control works. Idling at 11-13W, depending on what's going on on my desktop.

[1] git://people.freedesktop.org/~danvet/drm-intel
[2] http://lists.freedesktop.org/archives/intel-gfx/2012-August/019542.html
[3] http://luna.vmars.tuwien.ac.at/~froemel/rmbp/apple-gmux.c
[4] http://luna.vmars.tuwien.ac.at/~froemel/rmbp/fixgpu.c
 
[  772.828569] ACPI: Waking up from system sleep state S3
[  775.174180] ehci_hcd 0000:00:1a.0: wake-up capability disabled by ACPI
[  775.194261] pcieport 0000:00:1c.1: power state changed by ACPI to D0
[  775.214138] ehci_hcd 0000:00:1d.0: wake-up capability disabled by ACPI
[  783.385963] PM: noirq resume of devices complete after 8259.980 msecs

Look at that time fly on resume... And

[  784.684646] azx_single_send_cmd: 11 callbacks suppressed
[  789.699579] azx_single_send_cmd: 260 callbacks suppressed
[  789.881852] PM: resume of devices complete after 6502.345 msecs

So that's a starting point for getting to the bottom of that.
 
To continue talking to myself... It has to do with the disabling of the Nvidia part. Since it isn't done properly, the nvidia gfx and audio part appear to still be there. Drivers talking to them are disappointed. Bypassed for now, but using the switcheroo support would fix this.
 
Please continue to talk to yourself!

;)
 
As of 3.6-rc2, the kernel works out of the box. Since -rc1, required patches for i915 and gmux are now merged, as well as the patch to not enable interrupt remapping if the IO-APIC lacks an IOMMU.

I get 5-6h or battery time on it, acceptable.

My only remaining gripe is that the tabs in Chrome don't appear to DPI scale. So they are really really small. Can't seem to google my way to changing the font there, which would enlarge them.

Apart from that, works perfectly and reliably for my use cases.
 
vga switching isn't still merged though, right?  I have yet to get that working properly for some odd reason, there seems to be too many different sets of patches floating around...
 
+Greg Kroah-Hartman Dunno, haven't tried that yet, I just kill off the nvidia bit "manually". I did see when upgrading to -rc2 that the apple-gmux switcheroo bits got merged, unsure of whether any i915 extra bits are required. If not, then yes, they are merged.
 
+Greg Kroah-Hartman I'm dirty, just write to the gmux manually on boot (and resume). When I have a bit of spare playing time, I'll use the proper switcheroo bits instead.
 
Well definitely post when that's ready. I'll probably move over to Intel until accel support is completed for the nVidia 650m.
 
+Ryan Bourgeois What's missing for switcheroo to work?

Intel i915 works wonderfully for me, every bit as fast as the nvidia binary blob on the discrete graphics. Of course that's only measuring 2d and scrolling performance :-)
 
I don't know, I've not yet looked at the gmux changes.
 
I have been struggling for some time now to get the intel graphics up and running (Debian Wheezy with 3.7.0-rc3). I have it working with nouveau.

My Xorg log shows:

PCI: (0:0:2:0)
PCI:*(0:1:0:0)

which I guess means that the the discrete card is chosen.

I have disabled the discrete card from OSX, but what is the command you use to "write to the gmux manually"?

Cheers,

Magnus
 
+Magnus R You still have the discrete chip available, I power it down completely. Make sure you have vgaswitcheroo enabled, and write OFF to the switch file at boot time. I don't do any manual gmux writing anymore, I just rely on vgaswitcheroo to do it for me.

Note that it only seems to work for me IFF OSX has been manually set to use the integrated graphics only. Set that in the system app thing (whatever it's called there), and install gfxCardstatus and force it to integrated only as well.
 
+Magnus R Since I was just fiddling around to gather info for somebody else, it seems that version 2.2.1 of gfxcardstatus is an important bit. It does NOT work with the most recent one, 2.3. Just change the download url from -2.3 .zip to -2.2.1.zip and use that.
 
Yes! It works now. Tack så mycket!
Translate
 
I have another issue. My laptop suspends ok when I close the lid, but it does not wake up when I open the lid so I have to force a reboot.

I have installed Debian Wheezy only running Xmonad on it, so perhaps there is some service I haven't got running. Do you know what services/packages that handles suspend/wakeup or how I could debug this?

Cheers,

Magnus
 
Never mind my last comment; it seems to work.
 
Jens, did you get a second screen working with the Intel driver?
 
Magnus - I've never tried it. But I'd be interested in knowing whether it works or not!
Add a comment...