Working at the intersection of Apple’s newest hardware and Linux kernel development, for the benefit of a free distribution, was never going to be easy. But it’s been an especially hard couple of weeks for Hector Martin, project lead for Asahi Linux, capping off years of what he describes as burnout, user entitlement, and political battles within the Linux kernel community about Rust code.
In a post on his site, “Resigning as Asahi Linux project lead,” Martin summarizes his history with hardware hacking projects, including his time with the Wii homebrew scene (Team Twiizers/fail0verflow), which had its share of insistent users desperate to play pirated games. Martin shifted his focus, and when Apple unveiled its own silicon with the M1 series, Martin writes, “I realized that making it run Linux was my dream project.” This time, there was no jailbreaking and a relatively open, if tricky, platform.
Support and donations came quickly. The first two years saw rapid advancement of a platform built “from scratch, with zero vendor support or documentation.” Upstreaming code to the Linux kernel, across “practically every Linux subsystem,” was an “incredibly frustrating experience” (emphasis Martin’s).
Then came the users demanding to know when Thunderbolt, monitors over USB-C, M3/M4 support, and even CPU temperature checking would appear. Donations and pledges slowly decreased while demands increased. “It seemed the more things we accomplished, the less support we had,” Martin writes.
Martin cites personal complications, along with stalking and harassment, as slowing down work through 2024, while Vulkan drivers and an emulation stack still shipped. Simultaneously, issues with pushing Rust code into the Linux kernel were brewing. Rust was “the entire reason our GPU driver was able to succeed in the time it did,” Martin writes. Citing the Nova driver for Nvidia GPUs as an example, Martin writes that “More modern programming languages are better suited to writing drivers for more modern hardware with more complexity and novel challenges, unsurprisingly.”
Rust may not sleep, but moves slow
Rust is a far more memory-safe coding language than the Linux kernel’s native C. But getting more than 1,700 maintainers, including branch bosses, to accept Rust code after decades of work in C is no small feat. Linux lead Linus Torvalds has shifted ever-so-slightly from a “wait and see” approach in 2021 to noting in the summer of 2024 that he expected Rust updates to be faster while admitting that it’s largely kernel developers’ familiarity with C standing in the way. At that time, Microsoft engineer Wedson Almeida Filho resigned from the Rust for Linux project, citing “nontechnical nonsense” as the motivation.
That conflict between the energy of Rust for Linux contributors and the strictures of kernel practices collided once more this winter in an early January kernel mailing list thread about a patch with the deceptively non-controversial name “Add dma coherent allocator abstraction.”
Kernel maintainer Christoph Hellwig opposed a patch that would have allowed drivers written in Rust to access the Direct Memory Access (DMA) API. “No rust code in kernel/dma, please,” Hellwig wrote. After some back-and-forth about suggested alternatives, Hellwig comes out with it: “Don’t force me to deal with your shiny language of the day. Maintaining multi-language projects is a pain I have no interest in dealing with.” A later post by Hellwig pushed further, and his attempt to clarify that it was “a cross-language codebase” he was comparing to “cancer,” not just Rust, did not likely soften its impact.
Martin, among others, was frustrated and posted on Mastodon to that effect. This led to kernel list discussion about Martin’s “grandstanding, brigading, playing to the crowd, streamer drama creation or any of that.” Martin (who, like others, took issue with the “brigading” accusation) responded that, “If shaming on social media does not work, then tell me what does, because I’m out of ideas.” (Ars is, despite how much is quoted, doing a lot of summarizing here).
“How about you accept that maybe the problem is you,” Torvalds responds. “You think you know better. But the current process works. It has problems, but problems are a fact of life. There is no perfect.”
Torvalds—who has some history with out-of-scope responses, and worked to address them—suggests that if there are issues in kernel development, “social media sure as hell isn’t the solution. The same way it sure as hell wasn’t the solution to politics.”
Moving on
Martin removed himself from the maintainers list (merged by Torvalds himself), with Sven Peter and Janne Grunau stepping up. In announcing his resignation from Asahi Linux, Martin answered as to “why we can’t just let the Rust situation play out on its own over a longer period of time,” keeping their work downstream until things smooth out. Developer morale, a suggested “lack of interest” a hard fork might imply, and the heavy maintenance work of maintaining such a fork that each new upstream kernel brings would all endanger both Asahi and the progress of Rust.
Martin, in an email to Ars, affirmed that he imagines himself contributing to Asahi in the future, just not as a leader. “At least I should get the Mac Pro I have sitting at home working, I don’t think it’s worth shipping that behemoth over to another continent just for someone else to figure out how to get the PCIe to work!”
Ars has reached out to Hellwig and Torvalds for comment and will update this post with any response.