marcan

is creating Linux for Apple Silicon Macs

Select a membership level

Active Advocate

$3
per month
Every little bit counts! Thanks for supporting this project!
  • Support the project

Basic Backer

$6
per month
Thank you so much for helping make this happen! You'll get to see progress updates and other random comments on Patreon.
  • Support the project
  • Patron-only posts and messages

Course Changer

$12
per month
Thank you so much! As a special benefit at this tier, you'll get to vote on what features or drivers to focus on next, in addition to prior benefits.
  • Support the project
  • Patron-only voting power
  • Patron-only posts and messages

1,208

patrons

About marcan

Hi! I'm Hector Martin "marcan", and I like putting Linux on things - most recently on the PS4.

Apple just released a new range of ARM-based Apple Silicon Macs that blow every other ARM machine in the same class out of the water. Wouldn't it be nice if they could run Linux too?
As it turns out, they can, but someone needs to do the work. Since these devices are brand new and bespoke silicon, porting Linux to run on them is a huge undertaking. Well beyond a hobby project, it is a full-time job.

This is where I need your help. By becoming a patron, you will be allowing me to focus on this project as my primary job, and spend much more time on it that I ever could as a side project.

The goal is to bring Linux support on Apple Silicon macs to the point where it is not merely a tech demo, but is actually an OS you would want to use on a daily driver device. To do this, there is a huge amount of work to be done. Running Linux on things is easy, but making it work well is hard. Drivers need to be written for all devices. The driver for the completely custom Apple GPU is the most complicated component, which is necessary to have a good desktop experience. Power management needs to work well too, for your battery life to be reasonable.

Thanks to your support, we can make this a reality! I have launched the community project as Asahi Linux, please check out our website for more information and community channels!

At this support level I can dedicate enough time to the project to make it worth doing, but not full time just yet, so all further support will help speed up development. The second Patreon goal represents the level of support where I can dedicate myself fully to this project. If we meet that goal, it will mean I no longer need to take on any other freelance/consulting jobs, and Asahi Linux will have a full-time engineer dedicated to the project.

In order to make this an educational endeavour, I am also documenting my progress and doing occasional public live streams so others can follow along (separate from private livestreams for patrons at the relevant tier, which will be more of a small group thing with more interaction). You can follow my progress on my YouTube channel!


FAQ

What devices will be supported?

All Apple M1 macs are in scope, as well as future generations as development time permits. The first target will be the M1 Mac Mini.

Does Apple allow this? Don't you need a jailbreak?

Apple allows booting unsigned/custom kernels on Apple Silicon macs without a jailbreak! This isn't a hack or an omission, but an actual feature that Apple built into these devices. That means that, unlike iOS devices, Apple does not intend to lock down what OS you can use on Macs (though they probably won't help with the development).

Is this legal?

As long as no code is taken from macOS in order to build the Linux support, the end result is completely legal to distribute and for end users to use, as it would not be a derivative work of macOS. The actual act of reverse engineering varies by jurisdiction, but in general, reverse engineering for interoperability purposes is protected by law in many countries. In any case, I do not anticipate that Apple would try to take legal action against this project, as it would be a massive PR hit for no real benefit to them. If they didn't want people to put Linux on Macs they would've locked down the boot process, no lawyers necessary.

How will this be released?

All development will be in the open, pushed to GitHub regularly. Contributions will be written with the intent to upstream them into the respective upstream projects (starting with the Linux kernel), and upstreamed as early as is practical. Code will be dual-licensed as the upstream license (e.g. GPL) and a permissive license (e.g. MIT), to ensure that the work can be reused in other OSes where possible.

Will this make Apple Silicon Macs a fully open platform?

No, Apple still controls the boot process and, for example, the firmware that runs on the Secure Enclave Processor. However, no modern device is "fully open" - no usable computer exists today that has completely open software and hardware (as much as some companies want to market themselves as such). What ends up changing is where you draw the line between closed parts and open parts. The line on Apple Silicon Macs is when the alternate kernel image is booted, while SEP firmware remains closed - which is quite similar to the line on standard PCs, where the UEFI firmware boots the OS loader, while the ME/PSP firmware firmware remains closed. In fact, mainstream x86 platforms are arguably more intrusive, as the proprietary UEFI firmware is allowed to steal the main CPU from the OS at any time via SMM interrupts, which is not the case on Apple Silicon Macs (this has real performance/stability implications, it's not just a philosophical issue).

Is this a solo project?

Linux development is never a solo project. I will of course be in contact with upstream developers and anyone else who wants to contribute. To get to truly good Linux support will definitely require more than one person, but having one person dedicated to the task makes a huge difference to this kind of project, because it means I can focus on anything that needs doing, while others can contribute on whatever they want whenever they want. For a platform port to succeed there needs to be at least one person pushing things forward, and I aim to be that person.

What if you end up with a lot of leftover money?

Obviously I will have to buy hardware (Apple devices aren't cheap) and have other costs to run this project. If the campaign really takes off, though, I might be able to afford to hire other developers to work on specific tasks!

Why should we trust you?

I've been reverse engineering devices for over half of my life, since the early 2000s. I've worked to build unofficial open software support for platforms such as the Nintendo Wii (where I am one of the largest contributors to hardware documentation, open libraries, "jailbreaking" software (The Homebrew Channel), recovery tools (BootMii), etc), the Sony PS3 (where I wrote AsbestOS and a Linux patchset to enable Linux to work on the PS3 Slim as well as up-to-date PS3 units after the original Linux support was removed), the PS4 (which I ported Linux to, to the point of being able to run Steam games with full OpenGL/Vulkan graphics support), and other smaller platforms. I always strive to write clean and robust code that is safe, puts the user first, and is upstreamable. I support open hardware and software development. I've gone through the Linux kernel patch process multiple times and I know what it takes to get stuff upstreamed.
Goals
59% complete
I can comfortably make this project my primary job and not have to worry about taking up freelance gigs to stay afloat.
2 of 2
By becoming a patron, you'll instantly unlock access to 2 exclusive posts
1
Livestream
1
Poll
By becoming a patron, you'll instantly unlock access to 2 exclusive posts
1
Livestream
1
Poll

Recent posts by marcan

How it works

Get started in 2 minutes

Choose a membership
Sign up
Add a payment method
Get benefits