How to install Mac keyboard and trackpad drivers

I have recently installed Ubuntu on my Mac book Pro 2016, and noticed that the built in keyboard, and the track-pad are frozen. I have looked up how to install the drivers but I don't understand a how to use GitHub and got lost really quick.

What is the fastest way I can get these drivers installed and working? I am using an external keyboard and mouse for now but would not like to in the long run.

1

2 Answers

Did you enable "Install third-party software for graphics and WIFI hardware and additional media formats" during installation? Also, if you have a external mouse, can you try using that? Theres also "Additional Drivers" in the "Software & Updates app, see if the drivers for the trackpad/keyboard are there.

The guide below is taken from

Note that two of the steps (about loading the modules either at boot or immediately) are optional, and should not be necessary for Ubuntu.


Preparation

First install the dkms module

Next check that your kernel isn't outdated (or your distribution uses different module versions from those used later) by running

dkms status or ls -l /usr/src

If the version of apple-bce is 0.1 then uninstall the old modules (to avoid incompatibility issues):

sudo dkms uninstall -m apple-bce -v 0.1
sudo dkms uninstall -m apple-ibridge -v 0.1
sudo rm -r /usr/src/apple-bce-0.1
sudo rm -r /usr/src/apple-ibridge-0.1
sudo rm -r /var/lib/dkms/apple-bce
sudo rm -r /var/lib/dkms/apple-ibridge

Installation

  1. Install the BCE (Buffer Copy Engine) module for Keyboard and Audio

    • If you are on Arch, then use Aunali1's apple-bce-dkms-git package

    • Otherwise, run

      sudo git clone /usr/src/apple-bce-r183.c884d9c
    • Create a dkms.conf file in /usr/src/apple-bce-r183.c884d9c and put in the following:

      PACKAGE_NAME="apple-bce"
      PACKAGE_VERSION="r183.c884d9c"
      MAKE[0]="make KVERSION=$kernelver"
      CLEAN="make clean"
      BUILT_MODULE_NAME[0]="apple-bce"
      DEST_MODULE_LOCATION[0]="/kernel/drivers/misc"
      AUTOINSTALL="yes"
    • Now run sudo dkms install -m apple-bce -v r183.c884d9c. If on a live ISO, use sudo dkms install -m apple-bce -v r183.c884d9c -k x.x.x-mbp instead and change x.x.x-mbp to the kernel that you have installed, as by default dkms will try to build the module for the kernel that the live iso is using, which will most likely be older.

  2. Install the Touchbar and Ambient Light sensor modules

    • Run sudo git clone /usr/src/apple-ibridge-0.1
    • Run sudo dkms install -m apple-ibridge -v 0.1. If on a live ISO, use sudo dkms install -m apple-ibridge -v 0.1 -k x.x.x-mbp instead and change x.x.x-mbp to the kernel that you have installed, as by default dkms will try to build the module for the kernel that the live iso is using, which will most likely be older.
  3. Load the modules into the kernel - optional

    Note that this is only required if you wish to run the modules immediately (instead of after a reboot).

    If you are installing modules from a live iso the commands will fail as the modules have only been installed for the kernel you specified.

    sudo modprobe apple_bce
    sudo modprobe apple_ib_tb
    sudo modprobe apple_ib_als

The touchbar and the keyboard should now work.

For audio some additional configuration is required, see Audio config files.

Making the modules load at boot time - optional

In Ubuntu, these should already be set:

echo "apple-bce
apple-ib_tb
apple-ib-als
brcmfmac" >> /etc/modules-load.d/t2.conf

If you don't want (for example) the touch bar modules, you can omit them from this command. brcmfmac is needed to use the internal Wi-Fi chip, refer to the Wi-Fi guide for details on how to set that up.

Configuring the Touchbar module

The Touchbar module offers some modes to set. In /etc/modprobe.d/apple-tb.conf, set fnmode (options apple-ib-tb fnmode=x) to one of the following options:

  • 0: Only show F1-F12
  • 1: Show media and brightness controls, use the fn key to switch to F1-12
  • 2: Show F1-F12, use the fn key to switch to media and brightness controls
  • 3: Only show media and brightness controls
  • 4: Only show the escape key

Fixing suspend

Copy this script

#!/bin/sh
if [ "${1}" = "pre" ]; then modprobe -r apple_ib_tb hid_apple
elif [ "${1}" = "post" ]; then modprobe hid_apple apple_ib_tb
fi

to /lib/systemd/system-sleep/rmmod_tb.sh

Then run

sudo chmod 755 /lib/systemd/system-sleep/rmmod_tb.sh
sudo chown root:root /lib/systemd/system-sleep/rmmod_tb.sh

This unloads the Touchbar modules as they can cause issues for suspend.

Possible Issues

The apple_ib_als module can cause issues, if you find your computer hanging at shutdown, or having BCE errors at boot, try blacklisting it by running

sudo sh -c "echo blacklist apple-ib-als" >> /etc/modprobe.d/blacklist.conf

or removing it from /etc/modules-load.d/t2.conf.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like