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.
12 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/srcIf 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-ibridgeInstallation
Install the BCE (Buffer Copy Engine) module for Keyboard and Audio
If you are on Arch, then use Aunali1's
apple-bce-dkms-gitpackageOtherwise, run
sudo git clone /usr/src/apple-bce-r183.c884d9cCreate a
dkms.conffile in/usr/src/apple-bce-r183.c884d9cand 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, usesudo dkms install -m apple-bce -v r183.c884d9c -k x.x.x-mbpinstead and changex.x.x-mbpto the kernel that you have installed, as by defaultdkmswill try to build the module for the kernel that the live iso is using, which will most likely be older.
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, usesudo dkms install -m apple-ibridge -v 0.1 -k x.x.x-mbpinstead and changex.x.x-mbpto the kernel that you have installed, as by defaultdkmswill try to build the module for the kernel that the live iso is using, which will most likely be older.
- Run
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.confIf 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
fito /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.shThis 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.confor removing it from /etc/modules-load.d/t2.conf.