-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Apple Silicon Mac support packages (v2) #39796
base: master
Are you sure you want to change the base?
Conversation
f9107c1
to
77b0c56
Compare
After installing in the usual way (chroot), it seems to run smoothly on my m1 macbook air. |
Note that the way Asahi reference distro handles things like firmware is still in flux; they recently changed it so that "update-vendor-firmware" is run in the initrd, for example. They also have some dracut stuff for Fedora that you can source if it makes sense for Void. Worth checking on pages from the Asahi wiki such as this if you haven't already, as well as asking in their IRC channels if you have questions. marcan has expressed that Asahi would like to help downstream distros make sense of the Asahi work so they can function properly, instead of trying to do it on their own and shipping broken packages (as happened recently with Manjaro). |
Thanks for the suggestions, and for doing the initial hard work. |
Upon some minor config changes, I was able to boot the latest 6.0 series kernel. |
7e7d09f
to
bfa6733
Compare
962b6f2
to
1dd5bb6
Compare
At this point, I think only kernel and m1n1 are really needed, the rest can be dropped, |
@Skirmisher Now shipping a kernel hook for m1n1, which allows to either have the kernel or uboot as payload.
More eyes are welcome :) |
64131f4
to
dce5828
Compare
This is awesome! Just a quick question: @dkwo you said
Is this phrased correctly? Do we really need to rebuild all Do you have interest in also porting the gpu drivers to Void Linux? |
"The packages" in this context is just referring to the ones in this PR. dkwo had to cross-compile the Asahi packages from another machine before making a system image to install on the M1. But after that, Void on the M1 can natively compile the packages; dkwo is confirming that native compilation is also working. The Apple Silicon machines can use Void's existing aarch64 packages just fine.
There is nothing to "port", the code is already in the same tree that the normal Asahi kernel is built from. It's still a work in progress though, so Asahi Linux (the reference distro) turns it off for their default kernel package, and offers a separate We could add a similar package, but it wouldn't be a good idea; the Asahi developers are frequently updating both the kernel and their mesa driver (which we would also need to build for the GPU to work), and we shouldn't be adding dev builds to Void. All the Asahi work is supposed to be upstreamed as soon as possible, and while the GPU driver is much bigger than other components and will not be upstreamable for a long time, it is better for us to wait for major features to be properly released. (The kernel is the usual exception here, since at this stage there are a lot of individual additions that make the user experience on M1/M2 machines more complete, but each feature need to be negotiated with mainline Linux developers before making it into an upstream release, even if it only needs minor tweaks to be "done". So, the platform kernel package is likely to stick around for a while, and it keeps to itself in the package tree. We are very lucky that Asahi Linux is diligent about tagging kernel releases and only updating their "stable" package with known-good changes.) Now, it might be nice to have templates for Asahi dev packages anyway, the hardware is plenty capable of building those updates itself :p But they shouldn't live in void-packages and take up Void maintainers' time and effort. |
Exactly as @Skirmisher said. I agree that GPU/mesa might be a bit premature. |
I've spent a while working on getting a good kconfig, and here's what i've gotten it to: https://gist.github.com/Calandracas606/332d2c42ce2713c4bbf799a3470ec74a It's based on the guidance from https://github.com/AsahiLinux/docs/wiki/Kernel-config-notes-for-distros, and from the references here: https://github.com/zzywysm/asahi-kernel-configs, along with many of the default settings that void sets for hardening, etc. As many modules which are not-applicable have been removed as possible, while still building most peripherals that could reasonably be connected to the system as modules |
@Calandracas606 I made some changes myself, I will look at that kconfig as well. |
f143508
to
1c0e034
Compare
lsp plugins has been merged: ba5adad I think this is pretty much good to go now? |
My main concern is now |
I do still insist that there is a lot of un-needed drivers in the kernel config, and generally a lot of things in there which are worth reviewing |
As for following Void's best practices, I will check again and try to be as close as possible to its aarch64 config. As for turning off unneeded stuff: this kernel can work as a generic Maybe other users or some maintainer can suggest which one would be preferred for Void? |
I'm currently working on making the config much closer to the aarch64 one. Will report back when I'm done |
fix version mess, edit config, make it closer to void's config/template
This PR can boot from a USB stick using void-linux/void-mklive#281
I thank @slimjimsoftware @Skirmisher and @Calandracas606 for contributing and/or testing.
[ci skip]
Remarks:
seatd
andwlroots
, see https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3911eudev
patch for sound eudev-project/eudev@917ae64