Git Product home page Git Product logo

puppet-archlinux-macbookretina's Introduction

UNSUPPORTED / ABANDONED PROJECT - MAINTAINER WANTED

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.

Table of Contents

  1. Overview
  2. Requirements
  3. Hardware Support Status
  4. Reference - An under-the-hood peek at what the module is doing and how
  5. Limitations - OS compatibility, etc.
  6. Development - Guide for contributing to the module
  7. Other References - Information on Arch Linux

Overview

TravisCI Build Status Badge PuppetForge version badge Project Status: Unsupported โ€“ The project has reached a stable, usable state but the author(s) have ceased all work on it. A new maintainer may be desired.

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).

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 2018-02-02

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 - 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.

Broken

  • 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.

Untested / To Do

Reference

For full automatically-generated documentation see: http://jantman.github.io/puppet-archlinux-workstation/

Limitations

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.

Development

See CONTRIBUTING.md for information about development and contributing.

Other References

puppet-archlinux-macbookretina's People

Contributors

jantman avatar nhedger avatar petems avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

puppet-archlinux-macbookretina's Issues

Nvidia driver on 11,x?

Have you tried the nvidia driver on 11,x (I'm on 11,5). No luck yet. nouveau works fine, but as you might know it's slower. I want to see if I can get the nvidia driver working to see if it's more performant.

I've gotten MATE desktop running under nvidia, just not GOME, which is what I really want.

Split out non-MBP-specific parts, make a real module

This has become a bit of a catchall for everything I run on my laptop.

  1. split out anything that's specific to me to either https://github.com/jantman/workstation-bootstrap, specific modules that do the "thing" intended (i.e. like profile-sync-daemon), or a workstation-potpurri module
  2. Split out anything that's specific to Arch Linux but not MBP into a jantman/archlinux module.
  3. Make what's left a real Module, on the forge, well-documented, parameterized classes, etc.

update issues

I just did yaourt and pacman full updates for my system built using this module (after not doing them in a LONG time - like 3.9.8-1 to 3.16.4-1).

  • initially my touchpad didn't work. I reinstalled xf86-input-mtrack-git and this was fixed after reboot.
  • initially wireless didn't work. I tried removing b43-firmware, b43-fwcutter and wireless-bcm43142-dkms and replacing them with broadcom-wl-dkms but this didn't work at all. I them removed broadcom-wl-dkms and re-installed b43-firmware and b43-fwcutter. That got me 2.4GHz working fine, but I couldn't see my 5G (a/n) AP.
  • with the upgrade of NetworkManager from 0.9.8.8-1 to 0.9.10.0-4, OpenVPN connections die if they try to override automatic routes with custom manual/local routes. See this. Removing the overriding/local routes fixes the problem.

Evaluation Error: illegal name

Error: Evaluation Error: Illegal name. The given name 'puppet-archlinux-macbookretina::firewall_post' does not conform to the naming rule /^((::)?[a-z_]w_)(::[a-z]\w_)*$/ at /etc/puppetlabs/puppet/manifests/site.pp:20:20 on node archlinux.hsd1.pa.comcast.net

Error: undefined method `ancestors' for nil:NilClass

Hi Jason!

I follow your instructions and when I try "sudo puppet apply --verbose /etc/puppet/manifests/site.pp" I run into this error: "undefined method `ancestors' for nil:NilClass".

Some output from right above in debug mode:

Debug: /Firewall[101 allow mosh]: [validate]
Debug: /Package[xf86-video-nouveau]: Provider pacman does not support features install_options; not managing attribute install_options
Debug: /Package[nouveau-dri]: Provider pacman does not support features install_options; not managing attribute install_options
Debug: /Package[mesa-libgl]: Provider pacman does not support features install_options; not managing attribute install_options
Debug: /Package[lib32-mesa-libgl]: Provider pacman does not support features install_options; not managing attribute install_options
Debug: /Firewall[100 allow ssh]: [validate]
Debug: Puppet::Type::Sysctl::ProviderParsed: file /etc/sysctl.conf does not exist
Debug: Puppet::Type::Sysctl::ProviderParsed: file /etc/sysctl.conf does not exist
Debug: Puppet::Type::Sysctl::ProviderParsed: file /etc/sysctl.conf does not exist

What's the problem? Could you help?

Thanks a lot
Ivan

mkinitcpio runs for wrong kernel version

When doing a pacman -Syu system upgrade, mkinitcpio builds for the CURRENT kernel, not the NEW one.

Example currently running 3.9.8-1-ARCH and upgrading to 3.10.10-1-ARCH:

upgrading linux...
>>> Updating module dependencies. Please wait ...
>>> Generating initial ramdisk, using mkinitcpio.  Please wait...
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
  -> -k /boot/efi/EFI/arch/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/efi/EFI/arch/initramfs-linux.img
==> Starting build: 3.9.8-1-ARCH
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
==> ERROR: module not found: `usbhid'
  -> Running build hook: [fsck]
  -> Running build hook: [resume]
==> WARNING: No modules were added to the image. This is probably not what you want.
==> Creating gzip initcpio image: /boot/efi/EFI/arch/initramfs-linux.img
==> WARNING: errors were encountered during the build. The image may not be complete.
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
  -> -k /boot/efi/EFI/arch/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/efi/EFI/arch/initramfs-linux-fallback.img -S autodetect
==> Starting build: 3.9.8-1-ARCH
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
==> ERROR: module not found: `usbhid'
  -> Running build hook: [fsck]
  -> Running build hook: [resume]
==> WARNING: No modules were added to the image. This is probably not what you want.
==> Creating gzip initcpio image: /boot/efi/EFI/arch/initramfs-linux-fallback.img
==> WARNING: errors were encountered during the build. The image may not be complete.
error: command failed to execute correctly
upgrading linux-headers...

When we reboot, we see something like:

Waiting 10 seconds for device /dev/disk/by-partuuid/957fddfa-df23-4501-adf1-5a39f2ea08a0 ...
ERROR: device 'PARTUUID=957fddfa-df23-4501-adf1-5a39f2ea08a0' not found. Skipping fsck.
ERROR: Unable to find root device 'PARTUUID=957fddfa-df23-4501-adf1-5a39f2ea08a0'.
You are being dropped to a recovery shell
    Type 'exit' to try and continue booting
sh: can't access tty: job control turned off
[rootfs /]#

On second glance, it looks as though the only real problem is that vmlinuz-linux is placed in /boot/ when it should be in /boot/efi/EFI/arch/

MODULE ABANDONED

As of this week, because of the many problems trying to get Linux to run on the latest (15,x) MacBook Pro models with the T2 chip, with a very heavy heart, I've turned in my work-issued MBP in exchange for a Dell Precision 5530.

As such, I no longer have any MBP hardware in my possession and will be unable to continue maintaining this module.

If anyone would like to adopt it, please comment here. Otherwise, it will become unsupported.

with nvidia config and latest nvidia-325.15-5, X does not start

upgrade to latest nvidia, after reboot get only a black screen. console in (boot with "" kernel option) and Xorg.log.0 shows:

[ 12.441] (EE) NVIDIA(GPU-0): Failed to tear down EVO channel
...
[ 16.440] (EE) NVIDIA(GPU-0): EVO Push buffer channel allocation failed
[ 16.450] (EE) NVIDIA(GPU-0): Failed to allocate EVO core DMA push buffer
[ 16.452] (EE)
Fatal server error:
[ 16.452] (EE) AddScreen/ScreenInit failed for driver 0
...
[ 16.461] (EE) Server terminated with error (1). Closing log file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.