I have an older MacBook Air that is still in good condition, although it doesn't receive the latest macOS updates anymore. An easy solution to that is to install a Linux distribution. I have dual-booted Kali in the past but that didn't last very long. I decided to try out elementary OS this time.
- Model: MacBookAir6,2
- Storage: 128 GB
Install the OS
Download and follow the official instructions to create a bootable USB flash drive.
I chose to manually partition the drive with a 1 GiB EFI partition (fat32), a 10 GiB swap partition (swap), and the remaining space in-between as the root partition (ext4).
Some of the drivers for this hardware are not included or available with Linux. I ended up tethering via USB to my phone to download and install the WiFi driver.
$ lspci -nn -d 14e4: 02:00.0 Multimedia controller : Broadcom Inc. and subsidiaries 720p FaceTime HD Camera [14e4:1570] 03:00.0 Network controller : Broadcom Inc. and subsidiaries BCM4360 802.11ac Wireless Network Adapter [14e4:43a0] (rev 03) 0a:00.0 Ethernet controller : Broadcom Inc. and subsidiaries NetXtreme BCM57762 Gigabit Ethernet PCIe [14e4:1682]
The wireless adapter is a Broadcom BCM4360. The issue for me was that the installed kernel header files were the wrong version and the
wl module was not getting loaded correctly.
Module build for kernel 5.19.0-38-generic was skipped since the kernel headers for this kernel does not seem to be installed. modprobe: FATAL: Module wl not found in directory /lib/modules/5.19.0-38-generic
Install the correct kernel headers:
sudo apt install linux-headers-5.19.0-38-generic
Re-install the driver:
sudo apt install --reinstall bcmwl-kernel-source
This should re-build and install the kernel module. This worked without having to reboot.
FaceTime HD Camera
Getting the camera to work was more complicated. There are some guides on the Internet that refrence the iSight camera, however this is the USB version that was used on older computers. This MacBook Air has a PCIe device produced by Broadcom (more proprietary drivers, yay!) known as the FaceTime HD camera. I was able to get the camera working by using this reverse engineered driver here:
One thing to note as of this writing is that the kernel module will need to be rebuilt every time the kernel version is changed.