A month with the Retina MacBook and Linux

I’ve been using the Retina MacBook for a month now, and I’ve got to say the experience hasn’t been all that smooth, but better than I had expected.

Graphics Cards

Using the latest kernel (I used 3.6.0-rc3, but 3.6.0-rc4 should probably work too), switchable graphics works to an extent. If you forcibly enable the Intel HD4000 GPU in OS X using gfxCardStatus, then reboot straight into Linux, you will be able to use the i915 kernel driver, and the intel Xorg driver. You can even switch to/from the NVIDIA GeForce GT 650m at runtime by prodding vgaswitcheroo. Unfortunately, you can’t boot up with the GeForce enabled (ie – without the gfxCardStatus hack) for now, because the Intel driver won’t bring up the eDP link properly.

If you use a recent xorg-x11-drv-intel, the screen backlight controls work fine. In Fedora 17 I had to enable the “testing” repository to get an up-to-date enough version of this package.

I found that using the Intel card on my rMBP causes the screen to artifact badly every so often. As far as I’m aware, nobody else has seen this issue, but I can’t reproduce it when using the discrete GPU, or when I’m booted into OS X and using the Intel GPU. I’m not ruling out a hardware issue for now, but if you do see this issue (it manifests as a screen updating issue where portions of the screen jump around very quickly) please let me know.

nouveau is an exercise in frustration. It works, but don’t expect any sort of hardware acceleration. The cursor blinks frequently. There’s no power management, so the laptop will physically run quite warm and the battery won’t last long. I recommend using the latest beta NVIDIA binary driver (version 304.43 at time of writing) if you’re planning to use the discrete GPU on this thing; it actually works surprisingly well.

If you do use the Intel driver, ensure you turn off the discrete GPU at runtime by echoing “OFF” to /sys/kernel/debug/vgaswitcheroo/switch.

Backlight control works when using the NVIDIA drivers only after the laptop has been put to suspend and resumed at least once.

Wireless

This is the worst supported piece of hardware, by far, in my opinion. It works to an extent, but the b43 driver frequently disconnects and exhibits high packet loss. It’s incredibly variable depending on the environment. I found that at the Mozilla office I would be disconnected every few minutes and I’d have to rmmod and modprobe b43 to even get it to reconnect, and even then the bandwidth throughput on the connection was terrible (I was seeing ~50kB/s on an 802.11g network). ndiswrapper is also flakey. In the end I gave up messing around with it and bought a cheap $13 USB dongle which uses a Realtek chipset, that works fine.

Keyboard

Mostly works out of the box. Backlighting works fine in latest kernels, you may need to set the brightness manually by prodding /sys/devices/platform/applesmc.768/leds/smc::kbd_backlight/brightness with echo.

Touchpad

Works well enough with the xorg-input-mtrack driver, but can be a little flakey. Despite lots of tweaking, I still haven’t found a configuration that doesn’t register false clicks. My biggest issue is the case where I’m resting my thumb on the trackpad and moving the cursor with my index finger; when I want to register a left click, about 50% of the time it’ll register as a right click because it’ll think it’s a two finger touch. For now I’ve worked around this by setting three finger click to be right click, four finger click to be a middle click and single and two finger clicks to be a left click. My configuration is:

Section "InputClass"
MatchIsTouchpad "on"
Identifier      "Touchpads"
Driver          "mtrack"
Option          "Sensitivity" "0.35"
Option          "IgnoreThumb" "true"
Option          "IgnorePalm" "true"
Option          "TapButton1" "0"
Option          "TapButton2" "0"
Option          "TapButton3" "0"
Option          "TapButton4" "0"
Option          "ClickFinger1" "0"
Option          "ClickFinger2" "3"
Option          "ClickFinger3" "2"
Option          "ButtonMoveEmulate" "false"
Option          "ClickTime" "25"
Option          "BottomEdge" "25"
EndSection

Thunderbolt

Not working.

Audio

Speakers work fine, as does the mixer. Optical output is always on at boot (which is the source of the red LED shining out of the headphone socket); turn it off with:

amixer -c0 set IEC958 mute

Microphone doesn’t work.

Webcam

Works out of the box, but somewhat useless without the microphone.

Power Management

Seems to work pretty well. Seems to hover around 17W when not doing much, but can jump to 30W under normal usage. When compiling it jumps to 60-70W. If using the Intel GPU with the discrete turned off, you gain a few watts on average.

Kernel

Grab the vanilla 3.6.0-rc3 from kernel.org, then apply this patch to fix the gmux, and these patches to fix nouveau. Once that’s done you can just build the kernel as normal.

22 thoughts on “A month with the Retina MacBook and Linux

  1. Help. I selected the NVIDIA card as default in gfxcardstatus and chose the load on boot option. Now I ami stuck, I cannot boot on Os X and can’t restore with Recouvert HD because I have a bootcamp partition.

    What Can I do ? I cant boot to safe mode or whatever neither

  2. “I’m not ruling out a hardware issue for now, but if you do see this issue (it manifests as a screen updating issue where portions of the screen jump around very quickly) please let me know.”

    Hi. FYI, I got this a couple of days ago for the first time, with 3.6-rc5 and then again with 3.6-rc1 (with i915). Then I didn’t see it again since then (after another 3.6-rc1 reboot). No idea what it can be related to, but it looks bad when it happens.

    • Interesting. Let me know if you can reliably reproduce the issue.

      By the way, vanilla 3.6-rc6 should work without trouble for both the i915 driver, and the NVIDIA binary driver. Also, following the guys on the Ubuntu Forums, one of them is using the following kernel arguments:

      i915.lvds_channel_mode=2 i915.modeset=1 i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1 drm.vblankoffdelay=1 i915.i915_enable_ppgtt=0 add_efi_memmap

  3. Pingback: Linux on Macbookpro 10,1 with Retina display « Micropore

  4. So I’ve manage to install fedora 17 on my new rMBP. But I’m having big problems getting any wireless module to work. I bought the TL-WN725N module, but I can’t get the drivers to install to many dependencies (i think). How did you guys manage to get the internal wireless drivers to install, and where to find it? I’m really new to fedora and linux. Would be super thankful for any help.

    Cheers

  5. More than a comment a desperate request for help. I followed step by step the beautiful tutorial to install Fedora on my Macbook retina. I tried many and many times but after the regular installation with the “glorious” 2880×1880 display, restart (using refit) fedora does not start, can not find the boot. Maybe I am not clear up
    … First off, you’ll need to ensure that there’s a 200MB partition HFS + Which you can install the bootloader to EFI. This should be in September to mount at
    / boot / efi ……
    It would be kind enough to explain it better? I am a user not an expert on linux but I love it!
    Many thanks
    Giovanni Losacco

    • I just spent the last weekend re-evaluating distros and tried Ubuntu 12.10, 13.04 daily, Fedora 17 and Fedora 18. I don’t recommend Ubuntu 12.10 for now, as it barely works, and you’d be better off with 13.04. 13.04 mostly works, but suspend/resume doesn’t work at all, and if you plan on using EFI boot (on either Ubuntu 12.10 or 13.04) it’s not going to be trivial.

      Fedora 18 worked mostly, but the installer didn’t like my partitioning and took a lot of massaging to get it to work. Once installed, though, it mostly worked, but again suspend/resume didn’t work. Fedora 17, on the other hand, once you get it to install works pretty much perfectly. Suspend/resume are working, backlight control, keyboard backlight, sound, microphone, etc. With the latest broadcom-wl drivers, Fedora 17 is pretty much a fully-functional Linux experience.

  6. George, I’d also be very interested to hear any further updates on this. I’m a pretty dedicated Fedora user, and am coming up for hardware refresh for my work machine – choices are between the current 15″ retina MBP, a dell laptop, and going back to desktop only…

    • Still working well with Fedora 17. Using the latest bcmwl-kernel-source package from Ubuntu Saucy seems to be working fine with kernel 3.9.x.

Leave a Reply

Your email address will not be published. Required fields are marked *