 I gave a similar version of this talk at FOSDEM, pretty much the same talk, it's just an updated version. It's just a general update of what we do in the ASAHISIG in Fedora. And when I arrived in Brussels that time and I went to do the presentation, when I connected HTMI to my Mac Mini and it didn't work, but there's a part of the Apple Silicon, it's called DCP or Display Co-Processor, it's specific to Apple hardware and we found a couple of bugs and they got fixed and it's much more reliable now. And I haven't seen an issue since until today. Whenever I present, I hit a DCP bug, but that's the way it goes. So this is an update on Fedora ASAHI Remix, so it's simply Fedora for Apple Silicon. So yeah, I'm Eric Kirk and I'm a software engineer at Red Hat. I work in automotive stuff mostly. So why do we care about all this stuff? You guys probably know, but Apple released new ARM-based Apple Silicon device late 2020 as of this month, the entire Mac lineup uses Apple Silicon chips. And why do we care? There's actually a shortage of well-upstreamed ARM devices, so this is one of them that in the process of getting upstreamed and even the code that isn't upstreamed, it's all publicly available and the upstream guys are doing their best to keep pushing as much as they can upstream. Another cool thing about these devices is the firmware is unlocked out of the box to run third-party operating systems. So I'm talking about Linux obviously, but there's some guys run OpenBSD on Apple Silicon. This is actually a feature of the device, it's not an exploit or anything like that. One thing I find useful is the firmware, it's even unlocked onto the EL2 layer, so which means you have KVM support and all those goodies included. So they're really, really fast and they're great bang for book. You can get some of these devices now for I think like 700 euros dollars and they're pretty fast. Why do I care specifically? I work in, I said this already, but Red Hat Automotive and many of the automotive words are ARM based, so I end up doing quite a bit of work that requires me to have some kind of ARM environment. So the Apple Silicon devices allow me to iterate really quickly and build and test my code much more quickly than I would be able to on other devices. I learned more stuff about modern ARM, hardware and software implementations, kernel space rusts, et cetera, just from following the effort and getting involved. So this will give you an idea of the performance. When I first purchased this machine, I was using a Raspberry Pi. So this is the number of seconds it takes to build a project I was working with at a time called Lib Camera, which is a C++ code base. And I was doing my development on a Raspberry Pi sometimes, which is the top line. So that's how long it was taken to build Lib Camera. I also created this kind of Fedora container environment on my Android phone. It worked. So that's the green and the yellow bars. And the red bar is my company issue laptop. That's just an Intel laptop. And funnily enough, this Apple Silicon device was even cheaper than my company issue laptop, but it's faster. I took those benchmarks like well over a year ago. I think at the time, it might have been even a Linux VM running on top of Mac OS but yeah, that just gives you an idea of the outstanding performance. So what makes Fedora Sahi great? We have absolutely amazing upstream folk. I don't know if you follow a few of them on Mastodon or Twitter or whatever, but they're really amazing. I can say how amazing they are. And I'm not going to go through the list of names because I have fear of mispronouncing someone's name, but they're all there. We also have great downstream folk. So Neil and Davide are in the crowd there. There's Neil. Davide is here. Davide is over there. So they're part of the SIG and they're here obviously. So if you ever get an opportunity to grab five minutes of their time to pick their brain, I'd always recommend that they're outstanding Fedora and CentOStreme contributors. And we also have Michelle and Leif Liddy and many more. So one of the things I really like about this SIG and this community is everyone kind of has this upstream everything attitude, if at all possible. So that's one thing that's in the spirit of various kind of ARM-related certification, like works for Chromebook or system ready or there's a rail certification as well. And well upstream, the ARM devices aren't as common as they could be in the ARM ecosystem. So I really like to see that this community kind of has that attitude. So this is our general workflow. We push as much upstream as much as we possibly can. And then we try and propagate it to Fedora. And that also ends up in Fedora-Sahi remix, which has some forked packages just to make things work. But this isn't the only workflow we use. Like sometimes we have some, there's publicly available code. It's not ready to go upstream. So we maintain copers and that kind of thing for that code. That's not quite ready for upstream yet. Yeah, this is kind of another thing. In the best case scenario, basically this Fedora-Sahi thing doesn't really exist anymore. You can just install the standard Fedora out of the box pretty much. And an Apple Silicon device, so absolutely, since it would actually be a success. These are just some forked packages we have in copper at the minute. There's not as many as you would think. There's U-boot, kernel, kernel edge, a slightly different version of Mesa and a handful of others. And some of those will become obsolete in time also. Yes, there's actually three types of Fedora kernels, that boot, and Apple Silicon devices at the moment. So the actual Fedora kernel, like kernel arc, that has Apple Silicon partial, Apple Silicon support merge. So it boots, but it's kind of more a boot-to-shell experience at the moment. Like don't expect to accelerate the graphics and everything to work. So yeah, we test and enable configs as support arrives upstream. This is built with 4K page size, which is kind of the most common page size across various CPU architectures. So not everything is upstream with support for 4K page size, at least not yet anyway. And the Apple Silicon hardware, say macOS, runs with 16K page size. So the hardware is actually designed for 16K page size. So if you run the standard Fedora kernel, you take a small performance hit there. But there are advantages to that because you have increased compatibility when you use a 4K page kernel. So there's trade-offs there. This is one of the kernels we maintain. It's the Fedora Sahi kernel. So this uses all the stuff from the last kernel we were talking about. And it merges in another kernel from the upstream guys that adds extra yet to be upstream packages. So we enable even more configs. And we build it with 16K page size instead, which gives us increased hardware support on the devices. And this uses software rendered graphics. So you use this simple DRM, and you guys are familiar with what that is. And now, we have another kernel. Our kernels are based on the branches, the upstream Sahi guys create. So one of those kernels is called kernel edge. I just said I'd describe edge in this context because edge is so fashionable the last few years as a term in general. But edge in this context, all it means is it's a kernel with additional experimental features. So this uses the last kernel as base and adds a couple of more patches and more configs. So the only difference at present is this one also has accelerated graphics. So as a user, that's the only difference. But under the hood, there's a couple of more differences. Like, this is pretty much the only Fedora kernel out, it's the only Fedora kernel out there I'm aware of that's built for Linux support. So this is to enable the kernel space side of the GPU driver. And actually, this is gonna be promoted to the main Fedora Sahi kernel in the coming weeks or months. So the difference between the two kernels might change. We'll have a discussion about that with upstream and in the seagull, whatever. So we also had Clang LLVM as build dependencies as required by the Rust tool chain because you need those build tools to build Rust code at least at the moment. That's the only compiler that can do it. And we have a forked Mesa package. But even that forked Mesa package, all that code is being actively upstream. So that fork may well, that could be one of the next packages to disappear without giving any timelines. So this is just an example that in the recent kernel release 6.3, I think was released about, I don't know, two months ago, six weeks ago, around that time. So there's many examples of a Sahi helping the community as a whole. I thought this was a pretty cool one because up until 6.3, on any big little device, so a device with different types of cores, you had to pin VMs to a specific set of cores. So you couldn't mix match, say, performance cores and efficiency cores. But this really talented virtualization guy, he made it possible so you could use all the cores in the guest VM on a big little machine. And he used the Sahi Linux to do all the work. So I thought that was pretty cool because that didn't benefit a Sahi, it benefited loads of ARM SOCs and even, there's an x86 Intel chip that has big little cores over there. Yeah. Is it Alder Lake or? Is it Alder Lake? Yeah, Alder Lake. Yeah, yeah. Yeah, yeah. So yeah, it even fixed that issue on non-Architectures as well, so I thought that was pretty cool because they did all that work on a Sahi. I pretty much gave this talk at Fulton. So this is just pointing out some of the differences. There's loads of differences, so I just summarized a couple. There's been some DCP fixes for HDMI. Accelerated graphics have come a long way, they're really mature in performance. I don't know if you watched the streams, I'm gonna talk about them in the next few slides, but some of the graphics work that has been going on is pretty amazing and they have some really demanding games in that running on Apple Silicon now. We have Fedora branding. Because most people are running 16K kernels on a Sahi Linux, there's been page size fixes and all sorts of user space applications. This is just a couple I listed off the top of my head. So initial support for DM2, SOC, and many more things. Just a slide I added this morning because I was talking around with the idea of showing off the accelerated graphics, but in the interest of time, I don't want to do that. And a Sahi Lena, that stream on YouTube, she has so many examples of that. So if you're interested, feel free to check out that stream. Hector Martin, those streams. Neil Gamble, those some streams of downstream work. And yet, they can be pretty interesting. This is the question we get all the time. Can I use Fedora Sahi as my daily driver? And you may, it depends on what you use it for. I've been using it for over a year now, every day, for my work, but it really depends on what you want to use it for. So to get an idea of features, complete lists and upstream Sahi Wiki, that's a good reference point because it tells you what works and what doesn't. Like, two examples of things that don't work are sound and camera, although there's progress being made there, especially in sound. Like, there are workarounds for these things, like Bluetooth works perfectly, pretty much. You can use the USB, camera, et cetera. So I asked a couple of days ago, should I share this link? And nobody complained. And one or two people said, yeah, sure. So we still deem this unreleased. But this is the link to the installer if you want to try it. It's up to you. It works pretty well, but don't expect things to be perfect. Forks. So back when the Sahi guys initially released, there was loads of different Sahi forks farming. So one of these is the leaf lady fork of Fedora, and he's actually a part of the SIG these days. So he has this fork also of Fedora, which it's still maintained this day. It's consistent. It consumes the same pancakes. What that's supposed to say is that it's 99% the same as this one. It consumes the same packages, not pancakes. So it has a more minimal variant of Fedora Sahi, and it uses an OS composing tool called MKOSI, whereas the SIG images use Kiwi. Another interesting tool leaf has on GitHub, actually, is because the Sahi chain loads eventually to a U-boot, UEFI environment, you can booth over USB if you interrupt U-boot at that point. And he has a cool project, actually, that allows you to create flashable USBs pretty easy. So I think that project's pretty nifty. That should not say kernel edge. That's just some various links, and that's it. Any questions and answers or any questions? So the question is for YouTube, for the YouTubers, what is the difference between the normal Fedora kernel and the Fedora Sahi kernel? So, yeah, the official Sahi kernel is more designed to run on edge. So this kernel is based on the real Fedora kernel. The kernel you're referring to is designed for edge, and the kernel config options are just completely different, but they are very similar. Yeah. Yeah. Yeah. Yeah. Why I prefer the Fedora kernel is because I know everything that works on this laptop is going to work. I know if I run Podman, for example, that all the kernel configs required for Podman are turned on, but if I use Hector's kernel, that might necessarily be the case, because he just turns on the minimal, well, whatever is required for him, whereas this Fedora kernel has everything enabled on the standard Fedora kernel plus the Sahi stuff on top. The question is, is the Fedora kernel less stable than the Fedora Sahi kernel? No, no, no, no. So you said that a regional kernel has less features, one by one, one by one, enables just one. Fedora kernel has fewer than Fedora kernel for us, a Sahi kernel. Yeah. Is it less stable? The question is, is the Fedora kernel nowadays less stable? The question is, is the Fedora kernel less stable than the Fedora Sahi kernel? No, no, no. The question is, the Sahi kernel, the Arch kernel, as stable as the Fedora Sahi kernel, and yes, they're on par, because what like Neil will do or I will do, we just merged the two kernels basically, so you have the best of all worlds. So yeah, they're on par. So anything you see, most of the things you see Hector do on his streams, you can do it on Fedora also. So yeah, question. I can see Neil like, oh my God, it's so much pain. It takes me weeks and I have to go to a new kernel. Yeah. Okay, so the question is, how hard is it to build a Linux kernel with Rust support enabled? It's getting better, it used to be more difficult. I even have a contribution that made it slightly easier. It's pretty easy, if you just install Clang, a little VM tools, and it works, but we do have an issue at the moment as regards versioning. You have to have a specific version of the Rust compiler for it to build without errors. And an issue we're starting to see kind of regularly is Fedora Rahide, or not even Rahide, will bump their version of Rust C, and the kernel guys haven't arrived there yet, so we'll start to see build failures. So that's an issue for us. We're talking about long-term solutions. That problem Davide has something ready. Well, I don't know what I'm explaining. He thought that we could make it a little bit longer, so he would probably take a few weeks to get a little bit. Yeah, I think what we're going to find out is that in the 7 steps against the Rust and Python, that's in Fedora, all of the latest is those with wallpapers failing, you will need to go. And then, the freighter will want to start building it into the one that will walk around. So for the YouTubers, just to summarize the conversation in the room, we haven't fully decided on a long-term solution, but what we're thinking of is we're thinking of building kind of a kernel Rust package that basically pins the Rust compiler to a certain version just for building the kernel. But we haven't fully teased that out yet, so yeah, but it's in progress. Are there any other questions on the matrix? Okay, if there are no other questions, I guess that's it.