March 14, 2018

Fedora Linux on a MacBook Air. Easy.

I’ve previously written about going over to Linux full-time, and abandoning my aged Macbook Air for everything other than simple admin tasks - letters, spreadsheets, and the like. Since then I’ve also decided to go for Linux - in this case Fedora - on the Macbook Air too.. and it was quite easy.

In the past 6 months or so Apple has been the subject of numerous concerning new stories - stories that may boil down to either gross QA failures, or gross security failures… either way, it doesn’t inspire confidence! As a result of this lack of confidence, as well as a question mark over the usefuless of an aging 4 year old MacBook Air, I came to an obvious conclusion: I should throw Linux at it and hope for the best!

I opted for Fedora as I like the idea of using one distro across all my devices; in the past year I’ve been through various combinations of Solus, Mint, Elementary and Arch on my personal and work machines, and ultimately I’ve found Fedora to be the nicest to work with. Whilst a rolling distribution (i.e Solus or Arch) would have a few advantages, for everyday work Fedora is faultless with regards to both stability and the availability of packages.

The installation process for the MacBook Air was exactly the same as any other machine - a pain-free experience. With that in mind, I’ll completely gloss over this part - as it’s as simple as downloading the ISO, producing a valid installation USB via unetbootin or etcher, and then booting from the USB drive and following a fairly self-explanatory wizard.

Post-Installation Woes

Despite testing the hardware compatibility with the “live” mode of the installation USB, I was still apprehensive as to how well it would work post-installation. I know a few people that have had issues with hardware compatability issues with Apple devices and Linux, and I’d also read some rather pessimistic posts online too.

Personally though, my experience couldn’t have been better - booting up post-installation was nice and fast (easily quicker than macOS; despite utilising the full disk encryption options of both system), and I was greeted by an environment where all function keys worked, sleep functionality was correct, and display resolution was perfect.

Wireless Drivers

I knew full well during the installation process that Fedora didn’t possess the correct wifi drivers by default, and although this was a slight frustration - it was also incredibly easy to rectify. So if you’re looking for instructions on how to get wifi working for a 2014 Macbook Air with the BCM4360 chipset, then look no further!

By tethering my smartphone to the MacBook, I was able to install the drivers with just a few simple commands. With a working network connection - and as a superuser (i.e root, via the su command) - you need to:

  1. Add the rpmfusion repository of RPMs to your system;
  2. Install akmods kernel module management system;
  3. Install the drivers;
  4. Run the akmods tool.

This process is as simple as running the 4 commands below:

$ dnf install -y$(rpm -E %fedora).noarch.rpm
$ dnf install -y akmods "kernel-devel-uname-r == $(uname -r)"
$ dnf install -y broadcom-wl
$ akmods

Ammending the sudoers file

You may have noticed that in the above instructions I’ve mentioned running the commands as either root, or via su. Fedora seems to be quite an anomaly amongst modern distros, in that it doesn’t seem to automatically add the user account created during installation to the sudoers file.

Although this is only a 30 second tweak, it certainly caught me off my guard - I’m not entirely sure when the last time I had to manually do this was!

Essential Packages

I spend most of my time writing code, typing documentation, or doing “system-adminy” type tasks, and with that in mind I rely upon the following small collection of tools to “get stuff done“:

Naturally, having the tools is useless if you don’t have the appropriate libraries and languages installed though. Recently I’ve been mocking up quite a few prototypes with Vue.js and Laravel, as well as writing some back-end services in Golang.

Needless to say I soon installed tools like NodeJs, Yarn, vue-cli, PHP7, Composer, laravel-valet (unofficial port), Golang, Godep, PostgreSQL, Docker, and Ansible. With these correctly installed and configured, I’m ready for most of the tasks I need to face at the moment.


In total, all of this was achieved relatively easily within an hour or so; and although I completely wiped my HD prior to installing Fedora, there are numerous success stories online of people happily dual-booting both macOS and Linux.

Apart from the key-mapping issues - i.e it feels natural to use the cmd key a lot more when using my Macbook - everything has ran perfectly well, and there’s been no real issues at all yet. (Although I must stress that it’s certainly still early days!)

I’d be prepared to argue that the performance is superior in comparison to macOS, and I feel like Fedora has breathed some fresh life in to an old device. This performance gain - combined with the lightweight style of the MacBook Air - has seemingly given me a convenient laptop for working on-the-go with once again.

© Fergus In London 2019

Powered by Hugo & Kiss. Source available on Github.