In last 7 days, Ubuntu 18.10 was released followed by release of long awaited Linux kernel 4.19, and last but not least Linus Torvalds is back in drivers seat of Linux development. With this said, it was time to revisit how well does Linux work on MacBook Pro.

Last remaster I did was done on Ubuntu 18.04 with 4.17.6 kernel, I was so underwhelmed that I didn’t even make an “official release”. I was putting all my hopes in kernel 4.19, so now that it’s here, what’s the situation?

Ubuntu 18.10 (4.19 linux kernel) image release for MacBook Pro with Touch Bar

ISO/image download: ubuntu-18.10-mbr-fooctrl-desktop-amd64.iso

Compared to Ubuntu 18.04 image release, unfortunately not a lot changed. Big improvement is that now bluetooth also works out of box and everything works great except for:

* audio input/output
* suspend/hibernation

Everything is lot smoother and lot more responsive than before. However, these two problems are what will prevent me from switching to Ubuntu on MBP and using it in a production environment at this time.

There also seem to be few more regressions, where keyboard backlight is off, and can’t be turned on. WiFi is still limited to 2.4Ghz spectrum and as before I had to run following to increase my signal strength:iwconfig wlp3s0 txpower 10dBm

Ubuntu 18.10 remaster details

I went with Ubuntu 18.10 instead of 18.04 due to the simple fact that all software on it is newer + I’m a big fan of new theme, which IMO was long overdue.

Difference between my image and the default Ubuntu 18.10 image is:

* Added ubuntu-mainline-kernel.sh tool as a system binary (see explanation why below)
* Removal of default Linux kernel 4.18 (we’re only interested in capabilities of latest kernel)
* Installation of Linux kernel 4.19
* Installation and setup of MacBook keyboard/touchpad/touchbar drivers on top of Linux kernel 4.19
* Added amdgpu.dc=0 as a kernel parameter without which system wouldn’t boot (blank screen)
* Ability to switch between Function keys and Special keys on Touch Bar using Fn button
* Setup optimal DPI settings for touchpad

ubuntu-mainline-kernel.sh tool allows you to easily install latest kernel from Ubuntu Kernel PPA. If you plan on running Linux on latest MacBook Pro, you’ll definitely want to be running on the latest kernel. Getting latest kernel version using this tool is simple as running:

fooctrl@cosmic:~$ ubuntu-mainline-kernel.sh -i
Finding latest version available on kernel.ubuntu.com
Latest version is v4.19.0 but seems its already installed, continue? (y/N)
Will download 6 files from kernel.ubuntu.com:
Downloading CHECKSUMS: 100%
Downloading CHECKSUMS.gpg: 100%
Downloading linux-headers-4.19.0-041900-generic_4.19.0-041900.201810221809_amd64.deb: 100%
Downloading linux-headers-4.19.0-041900_4.19.0-041900.201810221809_all.deb: 100%
Downloading linux-image-unsigned-4.19.0-041900-generic_4.19.0-041900.201810221809_amd64.deb: 100%
Downloading linux-modules-4.19.0-041900-generic_4.19.0-041900.201810221809_amd64.deb: 100%
Signature of checksum file has been succesfully verified
Checksums of deb files have been succesfully verified with sha256sum
Installing 4 packages
...

Remaster tool idea

Since Linux remastering is manual, time consuming and error prone task, lately I’ve been thinking of creating a tool which based on few initial parameters (i.e kernel version), would perform automated remaster of any Debian Linux based distribution (Ubuntu, Elementary, Mint, etc … ). Output of such tool would be an .iso of that distro with all drivers and configuration necessary to run on MacBook Pro out of box.

This would allow anyone to run their own remasters and hopefully, end result would be increased collaboration and Linux seamlessly working on latest MacBook Pro’s sooner than later?

However, since creation of one such tool would take a nice chunk of my time and before I let my fantasies run wild and start working on it. Let me know how many of you would like to have one such tool and how many of you would find it useful?

Happy hacking & if you found this useful, consider becoming my GitHub sponsor!