How I installed Linux on my MacBook 2017 and enjoyed it

Ehsan Tork
18 min readMay 17, 2023

--

Introduction: Hi everyone. I’m a programmer who loves Linux. Linux is an open-source operating system that allows you to have full control over your computer and customize it to your liking. Linux also offers you many features in terms of software development, security, creativity and personalization. I always wanted to install Linux on my laptop and use it as my main operating system. But the problem was that my laptop was a MacBook 2017 and installing Linux on it had its own challenges. In this article, I’m going to tell you how I managed to install Linux on my MacBook and what are the pros and cons of doing so.

Section one: Installing Linux on MacBook

To install Linux on MacBook, you need two things: an empty flash drive and an ISO file of the Linux distribution that you want to install. As i said, I used Manjaro but you can use **Ubuntu 22.04** which is a popular and easy distribution. You can download the ISO file from the official Ubuntu website.

To install Linux on the flash drive, you need an app called **Etcher**³ that allows you to burn the ISO file to the flash drive in a bootable way. You can download Etcher for free here.

To install Linux on the MacBook, you need to do the following steps:

  • Open Disk Utility, select your flash drive, and click Erase. Then format your flash drive as MS-DOS (FAT) and the scheme as GUID Partition Map.
  • - Open Etcher, click Select Image, and select your Linux ISO file. Then click Select target and choose your flash drive. Then click Flash.
  • - Restart your MacBook and hold down the Option key while it does. Choose EFI boot or EFI drive from the boot manager.
  • - You will see the GRUB menu where you can choose to install or try Ubuntu. I recommend trying it first to see if everything works fine.
  • - Follow the installation instructions and choose Erase disk and install Ubuntu or Othe Distrobutions like Manjaro, Fedora or etc; Then if you want to replace macOS with Linux completely. Otherwise, you can choose Install Linux alongside macOS if you want to dual boot them.
  • - Wait for the installation to finish and restart your MacBook.

Wht is Manjaro? and Why It’s best choice?

If you are looking for a fast, user-friendly, and desktop-oriented Linux distribution, you might want to give Manjaro a try. Manjaro is based on Arch Linux and offers a stable, rolling-release model that ensures you always have the latest version of the operating system and applications.

I have been using Arch Linux for Personal usages and Manjaro for job about 10 years and I love it. It has a great community, a rich software repository, and a variety of desktop environments to choose from. It also supports multiple kernels and allows you to switch between them at boot time.

But what if you have a MacBook Pro and you want to install Manjaro on it? Is it possible? Is it easy? Is it worth it?

In this article, I will share with you my experience of installing Manjaro on my MacBook Pro 2017 and how I solved some of the common issues that I faced along the way. I will also tell you why I think Manjaro is a great choice for Mac users who want to try Linux.

Why I Chose Manjaro for My MacBook Pro

I have been using MacBooks for a long time and I like them. They have a sleek design, a high-quality display, a long battery life, and a smooth performance. However, they also have some drawbacks that make me want to use Linux in my MacBook instead.

Section two: Enjoying Linux on MacBook

After installing Linux on my MacBook, I was amazed by how fast and smooth it was. Everything worked fine except for some minor issues that I fixed easily. Here are some of the things that I enjoyed about using Linux on my MacBook:

  • The Unity desktop interface was very similar to macOS and easy to use. I could customize it to my liking with different themes, icons, widgets and extensions.
  • - The software center had a lot of apps that I could install with a few clicks. I could also use the terminal and apt commands to install any app that I wanted from the online repositories.
  • - The development tools were very powerful and convenient. I could use different editors, compilers, debuggers, frameworks and libraries for web development, data mining, graphics and game making.
  • - The security and privacy were very high. I didn’t have to worry about viruses, malware or spyware. I could also encrypt my files and folders with passwords or keys.
  • - The creativity and personalization were unlimited. I could create my own scripts, programs, games and art with Linux. I could also modify the source code of any app or system component if I wanted to.

How to Install Manjaro Linux on My MacBook Pro 2017

To install Manjaro Linux on my MacBook Pro 2017, I needed a few things:

  • A flash drive with at least 8 GB of free space
  • A USB-C to USB-A dongle to connect the flash drive to the MacBook
  • A USB-C to Ethernet dongle to connect to the internet with a cable
  • Another computer with Linux or Windows operating system
  • A copy of the Manjaro ISO file that I downloaded from [the official website]

The first step was to create a bootable Manjaro USB drive using the other computer. I used a tool called [Etcher] to do this. Etcher is a simple and cross-platform application that can flash any ISO file to a USB drive. I just had to select the Manjaro ISO file, the flash drive, and click on “Flash”.

The second step was to prepare the MacBook for booting from the USB drive. I had to disable some security features that prevent booting from external media. To do this, I had to boot into Recovery Mode by holding down Command+R while turning on the MacBook. Then, I had to go to Utilities > Startup Security Utility and enter my administrator password. There, I had to set the Secure Boot option to “No Security” and the External Boot option to “Allow booting from external media”. After that, I restarted the MacBook.

The third step was to boot from the USB drive and start the Manjaro installation process. I had to hold down the Option key while turning on the MacBook and select the EFI Boot option from the menu. This brought me to the Manjaro live environment, where I could try Manjaro without installing it or proceed with the installation. I chose the latter and clicked on the “Launch Installer” icon on the desktop.

The installation process was pretty straightforward and similar to other Linux distributions. I had to choose my language, location, keyboard layout, username, password, and partition scheme. I decided to erase the entire disk and install Manjaro as the only operating system on my MacBook. However, if you want to dual-boot with macOS or another OS, you have to create a separate partition for Manjaro and install it there.

The fourth step was to complete the installation and reboot into Manjaro. After the installation was done, I had to remove the USB drive and restart the MacBook. Then, I was greeted by the Manjaro bootloader (GRUB), where I could choose which kernel to boot with. Manjaro offers several kernels for different hardware and preferences. I chose the latest one (linux-ck-generic-v3) which is optimized for performance and responsiveness.

The fifth step was to configure Manjaro and enjoy it. After booting into Manjaro, I had to connect to the internet using the Ethernet dongle and update the system using the Software Update tool. Then, I had to install some drivers and patches for my MacBook hardware that were not working out of the box. These included:

The internal audio input and output: I had to apply a kernel patch from [this GitHub repository] that enabled the Cirrus 8409 audio codec for my MacBook model (MacBookPro14,3). This patch made both the internal speakers and microphone work, as well as any external headphones or speakers that I connected via Bluetooth or jack.

The camera: I had to install a driver from [this GitHub repository] that enabled the FaceTime HD camera for my MacBook model. This driver made the camera work with any application that used it, such as Cheese or Skype.

The touchpad and keyboard: I had to configure them using some graphical tools that KDE Plasma provided. These tools allowed me to adjust the sensitivity, acceleration, tapping, scrolling, and gestures.

Linux hierarchical and directories

Linux folders, or directories, are organized in a hierarchical structure that starts from a root directory (/) and contains several subdirectories that each have a specific role and content. For example, the /bin directory contains executable files of essential programs, the /etc directory contains configuration files of the system, the /home directory contains personal folders of users, and so on.

I have dedicated my entire hard drive, which was 256 GB, for Linux. I have used different file system formats and sizes for different partitions. I have allocated 56 GB for the home directory (/home) with XFS format, because I keep my data on an external hard drive and XFS is a fast and reliable file system for large volumes. I have allocated 11 GB for swap memory, because I have 8 GB of RAM and this amount is necessary for enabling hibernation. I have allocated the rest of the space for the root directory (/) with ext4 format, which is a common and versatile file system for Linux. I have also created a 512 MB partition with fat32 format for EFI, which is needed for booting the system.

Section three: Facing some challenges with Linux on MacBook

Of course, installing and using Linux on MacBook was not without its drawbacks. Here are some of the challenges that I faced with Linux on MacBook:

For coding, KDevelop is very good and has low battery consumption. KDevelop is a cross-platform IDE for C, C++, Python, QML/JavaScript and PHP. It has great code completion and project support, along with documentation integration that keeps you close to where you’re editing code. It also supports multiple projects, remote repositories, and various plugins.

ّ I also Edge when Macbook is not plugged-in for its performance and features. Edge is a fast and secure browser that runs on Windows, macOS, Linux, iOS, and Android. Specially for bing AI ;-) It has best in class compatibility for websites and extensions, and built-in privacy and security features. It also has a battery saver mode that can extend your battery life by up to 50% compared to other browsers.

  • Overall, the battery life was shorter than macOS. I had to adjust some settings like brightness, power management and fan speed to make it last longer. In conclusion, battery consumption is an important factor for laptop users who want to extend their battery life and work longer without plugging in. Linux is a versatile operating system that can run on various hardware, but it may not always be optimized for power saving by default. Therefore, you may need to adjust some settings and use some tools to improve your battery performance on Linux. You can also choose a browser that has a built-in battery saver mode, such as Opera, which can reduce the power consumption of your laptop by up to 50% compared to other browsers. By following these tips and tricks, you can enjoy using Linux on your MacBook Pro 2017 and save some energy.
  • - The touchpad was as responsive as macOS. I installed some drivers and tweak some settings to make it work better. but palm detection was not as responsive as macOS. :-(
  • - The WiFi was not stable sometimes. I had to restart the network manager or reboot the system to fix it. I used Wi-Fi USB-Dongle but internal is OK.
  • - The sound quality was lower than macOS. I had to install some codecs and adjust some settings to make it sound better.
  • - The compatibility with some apps and devices was not good. Some apps
  • Some apps that You may use on macOS were not available on Linux or had different versions. For example, Photoshop, Microsoft Office, iTunes and iMovie. I had to find some alternatives or use online services to replace them. For Apple Music you can use Cider.
  • - Some devices that I connected to my MacBook were not recognized by Linux or had limited functionality. For example, my iPhone, AirPods, printer and scanner. I had to install some drivers or use some workarounds to make them work. KDE Connect is perfect even for iOS.

How to resolve WIFI problems

Some MacBook models have problems with WiFi using the brcmfmac driver, which is the default driver for Linux. The problems include:

  • Only 2.4GHz networks are detected, not 5GHz ones
  • The signal strength is very low and drops quickly
  • The WiFi stops working after a short time and needs to be restarted

There is a bug report about this issue on the kernel website. Some possible solutions are:

  • Lowering the transmit power of the WiFi card with a command like sudo iwconfig wlp3s0 txpower 10
  • Editing the firmware file of the WiFi card (/lib/firmware/brcm/brcmfmac43602-pcie.bin) and changing some values (regrev and ccode) as explained in the bug report
  • Using a different driver or a USB WiFi adapter

These solutions may or may not work for you, depending on your MacBook model and your WiFi environment. Hopefully, this issue will be fixed in future kernel updates.

Audio Need patch kernel Intel HDA Module

The text is about how to make the internal audio work on some MacBook Pro models with Linux. It says that:

There is a kernel patch from [this GitHub repository] that can enable the internal audio input and output for the MacBookPro13,1, MacBookPro13,3 and MacBookPro14,3 models.

  • If you use PulseAudio, you may need to switch between the built-in audio profiles with the pavucontrol command to make the internal audio input work. The ‘Analog Stereo Duplex’ profile should work.
  • The MacBookPro14,1 model has working internal audio output, but not input.
  • The other MacBook Pro models do not have working internal audio, but they can use HDMI or USB audio devices as a workaround.
  • There are some bug reports and discussions about this issue on the kernel website and the ALSA mailing list.

Other Issues you should fixed

If so, here is what I have written for you:

If you have a MacBook Pro 13,3 or 14,3 model, you don’t need to do anything special to make the camera work on Linux kernels 4.13 and later. However, if you have an older kernel, you need to create a file called /etc/modprobe.d/uvcvideo.conf and write this line in it:

options uvcvideo quirks=0x100

If you have a MacBook Pro 13,1 or 14,1 model, you need to install a driver called bcwc_pcie from [this GitHub repository] (mainline branch). You can find more details about this driver on [this issue page].

For the bluetooth, you need to have the CONFIG_BT_HCIUART_BCM option enabled in your kernel configuration. This option is enabled by default on kernel 4.16 and later, but you need to apply some patches on older kernels. You can find the patches for kernel 4.13, 4.14, and 4.15 on [this comment] and the following discussion. After applying the patches and rebooting, you may also need to apply a service patch and start a service as described on [the same comment] (this is not necessary on kernel 4.15 and later). Note that there are still some problems with bluetooth on MacBook Pro 13,1 and 14,1 models on kernel 4.16 and later. You can check [the same issue page] for more information on how to fix them.

Why I Enjoy Manjaro on My MacBook Pro 2017

After installing and configuring Manjaro on my MacBook Pro 2017, I started using it and I have to say that I am very satisfied with it. Manjaro has given me features and capabilities that I could not have with macOS. Some of the reasons that made me happy with Manjaro are:

The speed and performance of Manjaro: Manjaro is a light and fast Linux distribution that is optimized for working with different hardware. In My Manjaro, I’m using the linux-ck-generic-v3 kernel, has given me a smooth and responsive experience in using applications and games. It also has a rolling-release system that keeps it always up to date and does not require installing new versions.

The freedom and flexibility of Manjaro: Manjaro allows me to customize my operating system according to my taste and needs. I can choose from several desktop environments, kernels, software, themes, icons, and plugins and configure them using graphical tools or terminal commands. I can also easily install software from the rich and updated repositories of Arch Linux and Manjaro.

The community and support of Manjaro: Manjaro has a great community of users and developers who are friendly, helpful, and active. I can find answers to my questions, solutions to my problems, and tips and tricks for my system on the [Manjaro forum], the [Manjaro wiki], or the [Manjaro chat]. I can also contribute to the development and improvement of Manjaro by reporting bugs, giving feedback, or donating money.

These are some of the reasons why I enjoy using Manjaro on my MacBook Pro 2017. Of course, there are some challenges and drawbacks as well, such as:

The compatibility and stability of Manjaro: Manjaro is not fully compatible with some of the hardware features of my MacBook, such as the touch bar, the fingerprint sensor, the Wi-Fi card. I had to use some workarounds or alternative solutions to make them work or live without them. Also, Manjaro is not as stable as macOS or other Linux distributions such as debian, as it sometimes crashes or freezes due to bugs or conflicts.

The learning curve and risk of Manjaro: Manjaro is not as easy to use as macOS or other Linux distributions, as it requires some knowledge and skills in Linux and terminal commands. I had to learn how to use Manjaro’s tools and settings, how to troubleshoot issues, how to backup and restore data, and how to fix broken packages or dependencies. Also, Manjaro is not as safe as macOS or other Linux distributions, as it exposes me to more security threats or data loss due to its rolling-release nature.

These are some of the challenges and drawbacks that I faced while using Manjaro on my MacBook Pro 2017. However, they did not stop me from enjoying Manjaro and learning new things from it. I think Manjaro is a great choice for Mac users who want to try Linux and have some fun with it.

My Plan for Future

One of the main issues that I have is the touch bar, which is a unique feature of your MacBook model that replaces the function keys with a touch-sensitive OLED strip. The touch bar can display different buttons and controls depending on the context and application that macOS is using. However, on Linux, the touch bar does not work as expected and has limited functionality. You can only use it as a basic keyboard with some predefined keys, such as escape, brightness, volume, etc.

There are some possible solutions that you can try to make the touch bar more useful or replace it with something else. Some of them are:

  • Write a driver for the touch bar that can communicate with Linux and customize its behavior and appearance. This is a challenging and complex task that requires a lot of programming skills and knowledge of Linux internals. However, if you are interested and motivated, you can find some resources and examples on GitHub repositories.
  • Swap your keyboard with a version without the touch bar. This is a simpler and cheaper solution that can give you back the physical function keys that you may prefer over the touch bar. You can find some compatible keyboards on for around $100-$200.
  • Use an external keyboard or a keyboard cover that can overlay the touch bar with physical keys or stickers. This is another easy and affordable solution that can allow you to use the touch bar as a regular keyboard without modifying or replacing it. You can find some examples of external keyboards or keyboard covers for around $10-$50.

Another issue that you have is the camera, which is a built-in webcam that allows you to take pictures, record videos, or make video calls. The camera works fine on macOS, but on Linux, it does not work at all or has poor quality. This is because the camera uses a proprietary driver that is not compatible with Linux and requires a special firmware file to operate.

There are some possible solutions that you can try to make the camera work or use an alternative device. Some of them are:

  • Install a driver for the camera that can enable it for Linux and load the firmware file from your macOS partition. This is a feasible and effective solution that can make your camera work with any application that uses it, such as Cheese or Skype. You can find the instructions and the driver on GitHub.
  • Use an external webcam or a smartphone as a webcam. This is another practical and convenient solution that can give you a better quality and more features than your built-in camera. You can find some compatible webcams for around $20-$100. You can also use your smartphone as a webcam by installing an app like [DroidCam] or [iVCam] on your phone and your computer.

The last issue that you have is the RAM, which is the memory that stores data temporarily while your computer is running. The RAM affects the speed and performance of your computer, especially when you run multiple programs or tasks at the same time. Your MacBook Pro 2017 has 8 GB of RAM, which may not be enough for some intensive applications or games.

There are some possible solutions that you can try to increase or optimize your RAM usage or use an alternative device. Some of them are:

  • Use a swap partition or file, which is an area on your hard drive that acts as an extension of your RAM when it is full. The swap can help you avoid running out of memory or crashing your system, but it also slows down your computer because reading from and writing to the hard drive is much slower than reading from and writing to the RAM. I have allocated 11 GB for swap memory, which is more than enough for enabling hibernation, but you may want to adjust it depending on your needs and preferences.
  • Use lightweight software and desktop environments, which are less resource-intensive and consume less RAM than heavier ones. You can choose from various options that suit your needs and preferences, such as XFCE, LXDE, or MATE for desktop environments, or KDevelop, VSCode, or Sublime Text for code editors.
  • Use a web version of Visual Studio Code for coding, which is a free, zero-install Microsoft Visual Studio Code experience running entirely in your browser, allowing you to quickly and safely browse source code repositories and make lightweight code changes. You can use this option when you are using battery, but you can also use it when you want to save some RAM. You can access the web version of Visual Studio Code On you selfhosting solution too.
  • Use a Raspberry Pi as a sandbox environment for developing software, which is a small and cheap computer that can run Linux and various programming languages and tools. I buy a Raspberry Pi and use it as a sandbox environment for your software development, which is a great idea.

Conclusion: Is Linux worth it on MacBook?

In conclusion, I think installing Linux on MacBook was a great decision for me. I enjoyed the benefits of Linux in terms of performance, features, security and creativity. I also learned a lot about Linux and how to solve problems with it. The challenges that I faced were not too hard to overcome and did not affect my overall experience. I think Linux is worth it on MacBook if you are a programmer, a hacker, a tinkerer or a curious person who wants to try something new and different. However, if you are a casual user who just wants to use your MacBook for basic tasks like browsing, emailing, watching and listening, then you might be better off sticking with macOS. It depends on your needs and preferences.

I hope you enjoyed reading my article and learned something from it. If you have any questions or comments, feel free to leave them below. Thank you for your attention and have a nice day. 😊

In this article, I have also update (Updated in 19 2023–08) data and shared with you how I installed Manjaro Linux on my MacBook Pro 2017 and why I enjoyed it. I hope you found this article informative and helpful. If you have any questions or comments, please feel free to leave them below. Thank you for reading! 😊

(1) How to install & set up Linux on a Mac | Macworld. https://www.macworld.com/article/672021/how-to-install-set-up-linux-on-a-mac.html.

(2) How to Install Linux on a Mac : HelloTech How. https://www.hellotech.com/guide/for/how-to-install-linux-on-mac.

(3) Installing Linux On An Old Macbook: The Pros And Cons. https://www.systranbox.com/how-to-install-linux-on-old-macbook/.

(4) How to install ubuntu 20.10 on macbook air 2017 – linux. https://unix.stackexchange.com/questions/637173/how-to-install-ubuntu-20-10-on-macbook-air-2017.

--

--