Puppet module and accompanying documentation to install/setup Arch linux on a MacBook Pro Retina 11,4
Ruby Puppet Other
Switch branches/tags
Latest commit d5036e9 Jul 9, 2017 @jantman jantman committed on GitHub Merge pull request #12 from jantman/aur-package-switch
Aur package switch
Permalink
Failed to load latest commit information.
files add puppet-managed headers to some files missing them Sep 22, 2015
manifests finish package renames; fix acceptance tests by bumping to more recen… Jul 9, 2017
spec finish package renames; fix acceptance tests by bumping to more recen… Jul 9, 2017
templates Add touchpad support back in, now that kernel 4.2 has reached general… Oct 10, 2015
tests initial puppet4/module rewrite with working placeholder spec and acce… Sep 16, 2015
.fixtures.yml update for new upstream branch Sep 18, 2015
.gitignore Updates Beaker setup for upstream support Dec 19, 2016
.rebuildbot.sh rebuildbot updates Nov 17, 2015
.rspec initial puppet4/module rewrite with working placeholder spec and acce… Sep 16, 2015
.ruby-version Updates Beaker setup for upstream support Dec 19, 2016
.sync.yml update .sync.yml Jan 8, 2017
.travis.yml use rvm 2.3; this is what Arch has right now, and Bundler requires >=… Dec 21, 2016
CHANGELOG 0.2.2 - update for changed AUR package names Jul 9, 2017
CONTRIBUTING.md initial puppet4/module rewrite with working placeholder spec and acce… Sep 16, 2015
CONTRIBUTORS initial puppet4/module rewrite with working placeholder spec and acce… Sep 16, 2015
Gemfile bump to released beaker 3.7.0 Jan 8, 2017
Gemfile.lock bump to released beaker 3.7.0 Jan 8, 2017
Guardfile initial puppet4/module rewrite with working placeholder spec and acce… Sep 16, 2015
LICENSE initial puppet4/module rewrite with working placeholder spec and acce… Sep 16, 2015
README.md finish package renames; fix acceptance tests by bumping to more recen… Jul 9, 2017
Rakefile workaround for puppet-lint ignore not working - rodjek/puppet-lint#355 Sep 19, 2015
metadata.json 0.2.2 - update for changed AUR package names Jul 9, 2017

README.md

archlinux_macbookretina puppet module

Project Status: Active - The project has reached a stable, usable state and is being actively developed.

Puppet module and accompanying documentation to install/setup Arch linux on a MacBook Pro Retina using puppet4.

This is the puppet module I use to manage my shiny new MacBook Pro Retina (mine is a MacBookPro11,4).

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.

Requirements

Hardware Support Status

Mid-2015 MacBookPro11,4 as of 2016-10-25 (4.8.4-1 kernel)

Working

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 - Per Arch Wiki, there's a project on GitHub for a reverse-engineered driver. This works properly in Linux using the bcwc-pcie-dkms and bcwc-pcie-firmware AUR packages, though the color balance seems a bit off.

Broken

  • Suspend to RAM - 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
  • Bluetooth - Per wiki, fully supported as of kernel 4.4.0. Works with my bluetooth mouse.

Untested / To Do

Testing

Unit Tests

Unit tests should be run automatically by TravisCI. To run them locally, use bundle exec rake spec. To run the full commit tests (validation, syntax, lint, rspec, etc.) use bundle exec rake test.

  1. Use whatever ruby version is specified in .ruby-version
  2. bundle install --path vendor
  3. bundle exec rake test

Acceptance Tests

Acceptance tests are done with beaker and beaker-rspec. They currently use the "2017.07.01" version of the ogarcia/archlinux-x64 Vagrant box for VirtualBox.

  1. Use whatever ruby version is specified in .ruby-version
  2. bundle install --path vendor
  3. bundle exec rake spec_prep to setup the fixture modules that the specs will need
  4. bundle exec rake beaker to run the tests.

See beaker-rspec for environment variables to control the run. The important settings are:

  • BEAKER_destroy=no - keep the VMs after the test run
  • BEAKER_destroy=onpass - to keep the VMs around only after a test failure

Other References