As of March 2019, I no longer have access to any MacBook Pro hardware. As such, this module is now officially unsupported and abandoned. A new maintainer is wanted, if anyone would like to adopt it. Please see Issue 16 for details and to comment.
- Overview
- Requirements
- Hardware Support Status
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
- Other References - Information on Arch Linux
Puppet module and accompanying documentation to install/setup Arch linux on a MacBook Pro Retina using Puppet (version 4 or 5).
This is the puppet module I use to manage my shiny new MacBook Pro Retina (mine is a MacBookPro11,4
).
- Generated Documentation: http://jantman.github.io/puppet-archlinux-macbookretina/
Important Notice: It is highly recommended that you only run this module on a brand new system; it makes some opinionated choices that may cause problems on existing systems.
- A MacBook Pro Retina (currently tested with Mid-2015 "11,4" model) with a brand new install of Arch Linux
- Whatever version of Puppet ships with Arch Linux
- A minimal install, ideally following the instructions in my workstation-bootstrap repository.
- This module is only tested alongside my archlinux_workstation module.
- A pacman repo providing AUR packages: macfanctld, bcwc-pcie-dkms and bcwc-pcie-firmware; you can use jantman/archlinux_workstation archlinux_workstation::repos::jantman for that.
Or mostly-working:
- Touchpad using Kernel 4.2+ and xf86-input-synaptics; works for tap-to-click, drag, two-finger scroll, and 2- or 3-finger taps (sometimes) for different mouse buttons.
- Networking on MacBookPro 11,4
- USB ethernet adapter A1277 works out-of-the-box
- BCM43602 AirPort Extreme (14e4:43ba) works with kernel built-in brcmfmac driver, autodetected, both 2.4GHz and 5GHz.
- Sound - Works. Under KDE/Phonon, needed to unmute/enable the "Built-in Audio Analog Stereo" (detected "Built-in Audio Digital Stereo (HDMI)" as default).
- Video - video works with the proprietary nvidia driver, the default in this module.
- External Displays - Tested OK using both direct HDMI and Thunderbolt to HDMI (1 or 2 external monitors); works seamlessly.
- Display/Desktop Scaling - This can be fixed within KDE:
- System Settings -> Fonts: check off "Force fonts DIP" and set to 144
- System Settings -> Icons -> "Advanced" tab: set them all to 48
- Click the menu button on the far right edge of the Panel, then drag the "Height" box up until the scale/size looks good
- Screen Backlight Adjustment - works using
/sys/class/backlight/acpi_video0/brightness
, the sliders on 'KDE5 System Settings -> Energy Saving' or the keyboard function keys.
- Hibernate / Suspend to Disk - doesn't wake up without long hold of power button & then turn back on. Session resumes once that's done.
- SD Card Reader - Working out of the box.
- Fans - macfanctld (AUR)
- Webcam - This works properly in Linux using the bcwc-pcie-dkms and bcwc-pcie-firmware AUR packages.
- Bluetooth - Per wiki, fully supported as of kernel 4.4.0. Works with my bluetooth mouse.
- Suspend to RAM - (haven't tested in many months; I never use this) doesn't wake up; long hold of power button & then turn back on gives a fresh boot.
- Lid Close - suspends to ram and doesn't wake up, but this could be a configuration issue. I never use this functionality.
- Partially-complete - SSD optimizations via sysctl settings, mount /dev/sda* noatime and discard (TRIM), use deadline scheduler on non-rotational disks
- Power Saving - https://wiki.archlinux.org/index.php/MacBookPro11,x#Powersave and https://wiki.archlinux.org/index.php/Laptop_Mode_Tools
- Laptop Mode Tools - ArchWiki and/or TLP - ArchWiki (started looking into this, very involved configuration and I don't really need it right now)
- I'm left handed. Use udev/xorg to reverse buttons on USB mice but keep trackpad the same. See https://wiki.archlinux.org/index.php/All_Mouse_Buttons_Working http://www.smop.co.uk/blog/index.php/2010/02/15/udev-rules-for-logitech-g7-mouse/ or might be able to do this with udev triggering "xinput set-button-map"
- the stuff in Maximizing Performance - ArchWiki
- implement the stuff in Enhancing Arch Linux Stability - ArchWiki
- SMART/other SSD health check, with warnings if problems are found
- look into replacing macfanctld with mbpfan / fan-control-daemon are two options that are less abrupt
For full automatically-generated documentation see: http://jantman.github.io/puppet-archlinux-workstation/
This module is only usable with Arch Linux on a MacBook Pro Retina.
It assumes that you have a relatively vanilla base install of Arch, such as the one I document in my workstation-bootstrap module, pretty much the same as the Arch Linux Installation Guide documents.
See CONTRIBUTING.md for information about development and contributing.
- First, many thanks to eli meister for being the office linux-on-MBP retina guinea pig
- MacBookPro Retina - ArchWiki
- MacBook - ArchWiki
- Installation Guide - ArchWiki
- Beginners' Guide - ArchWiki
- Solid State Drives - ArchWiki
- Laptop - ArchWiki
- Enhancing Arch Linux Stability - ArchWiki
- Arch Linux System Maintenance - ArchWiki