Skip to content

Commit 47e560c

Browse files
chadmedConan-Kudo
authored andcommitted
alt: policy: add
Add our new distribution guidelines Signed-off-by: James Calligeros <[email protected]>
1 parent 5bf8441 commit 47e560c

File tree

2 files changed

+194
-0
lines changed

2 files changed

+194
-0
lines changed

docs/alt/policy.md

Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
---
2+
title: Asahi Linux Distribution Guidelines
3+
---
4+
5+
Asahi Linux exists to reverse engineer, document, and ultimately
6+
implement Linux support for the Apple Silicon platform. While
7+
[Fedora Asahi Remix](https://fedora-asahi-remix.org) is our flagship distribution, representing the
8+
state of the art of Linux support on Apple Silicon, we have always
9+
encouraged interested parties representing other distributions
10+
(and even other FLOSS operating systems like [OpenBSD](https://www.openbsd.org/)) to implement
11+
support for the platform.
12+
13+
Traditionally, it has been unclear whether or not these efforts
14+
are officially endorsed by the Asahi Linux project. This has led
15+
to frustration and confusion on the part of users, distro maintainers,
16+
and Asahi developers alike. Some distros have been semi-integrated
17+
into the project on account of being the distro of choice of
18+
our developers, while others are listed as "supported" in our
19+
documentation despite being drive-by attempts at support led
20+
by a single person who has long since given up.
21+
22+
To remedy this situation, we have compiled a set of guidelines
23+
for distros looking to implement support for Apple Silicon. We
24+
heavily encourage all distributions to strive toward them in the
25+
interests of a consistently good experience for all Apple Silicon
26+
users regardless of their distribution of choice.
27+
28+
These criteria are entirely optional. Everyone is of course
29+
welcome to experiment with and enjoy their favourite distribution
30+
on the Apple Silicon platform, and we will always enable and
31+
encourage this. These guidelines are aimed at mature/mainstream
32+
distributions interested in supporting Apple Silicon in an
33+
official or semi-official capacity. Distros which demonstrate
34+
adherence to these guidelines will be eligible for listing in
35+
our documentation as viable alternatives to Fedora Asahi Remix.
36+
37+
## Required reading
38+
Please familiarise yourself with the [Introduction to Apple Silicon](../platform/introduction.md),
39+
[Open OS Platform Integration](../platform/open-os-interop.md),
40+
and [Boot Process Guide](boot-process-guide.md) documents before continuing.
41+
42+
## Official buy-in
43+
Your project to implement Apple Silicon support in your distro of
44+
choice must be directly supported - or otherwise acknowledged - by
45+
your distro's official maintainers. This may vary depending on your
46+
distro's policy and organisational structure, however typically this
47+
will take the form of an official taskforce/group endorsed by the
48+
distro, e.g. the [Fedora Asahi SIG](https://fedoraproject.org/wiki/SIGs/Asahi),
49+
[Gentoo Asahi Project](https://wiki.gentoo.org/wiki/Project:Asahi), or Debian's
50+
[Team Bananas](https://wiki.debian.org/Teams/Bananas).
51+
52+
## Complete and up to date packages
53+
You must have the following list of packages present in your distro.
54+
Preferably, these will be in official package repositories. However,
55+
it is acceptable for them to be in a third-party repository (e.g.
56+
Fedora COPR, Portage Overlay) provided that your repository has been
57+
endorsed by your distro's official maintainers.
58+
59+
* [The Asahi Linux fork of the Linux kernel](https://github.com/AsahiLinux/linux)
60+
* [m1n1](https://github.com/AsahiLinux/m1n1)
61+
* [The Asahi Linux fork of Das U-Boot](https://github.com/AsahiLinux/u-boot)
62+
* [asahi-scripts](https://github.com/AsahiLinux/asahi-scripts) or equivalent configuration presets/scripts
63+
* [tiny-dfr](https://github.com/AsahiLinux/tiny-dfr)
64+
* [asahi-firmware](https://github.com/AsahiLinux/asahi-installer) (including its dependency lzfse)
65+
* [speakersafetyd](https://github.com/AsahiLinux/speakersafetyd)
66+
* [asahi-audio](https://github.com/AsahiLinux/asahi-audio) (and its LV2 plugin dependencies)
67+
68+
New versions of the above software must be packaged in your
69+
distro's bleeding edge (e.g. Fedora Rawhide or Gentoo's
70+
unstable package stream) within 2 weeks of becoming available upstream.
71+
72+
## Installation procedure
73+
Asahi Linux uses Das U-Boot's UEFI environment to chainload standard UEFI
74+
bootloaders, such as GRUB and systemd-boot. The Asahi Installer is capable
75+
of setting up a minial UEFI-only environment capable of booting UEFI
76+
executables on removable media. This provides users an installation
77+
experience that is almost identical to a standard amd64-based workstation.
78+
Building Apple Silicon support into your distro's existing AArch64 bootable
79+
media (e.g. via a secondary Asahi kernel selectable at the UEFI bootloader)
80+
allows the reuse of all your distro's existing upstream AArch64 resources,
81+
and negates the need to fork the Asahi Installer.
82+
83+
When selecting the minimal UEFI environment installation option, the Asahi
84+
Installer can be directed to create free space for a future root filesystem.
85+
Your guide must instruct users to use this facility to prepare their disk
86+
for your distribution rather than attempting to manually shrink or alter
87+
APFS containers via your installer.
88+
89+
Your installation process should be as close to your distro's standard
90+
installation procedure as possible. If your distro has an officially endorsed
91+
automatic installer (e.g. Anaconda), then it must be used. If your
92+
distro follows a manual guided installation (e.g. Gentoo Handbook), then
93+
you must have a clear and easy to follow guide specific to Apple Silicon.
94+
You must not instruct your users to materially deviate from your distro's
95+
prescribed official installation procedure.
96+
97+
If your installer attempts to partition the user's disk automatically, then
98+
you _should_ explicitly warn your users against making use of it if it cannot
99+
be made to ignore APFS containers. Altering or destroying any of the
100+
on-disk APFS containers will require your users to DFU restore their Mac.
101+
102+
Instead, your installation procedure _must_ encourage manual partitioning,
103+
with a section in your guide explaining the dangers of carelessly altering
104+
the partition table. Users must be made aware that it is _never_ safe to
105+
alter or rearrange _any_ disk structure other than the free space left by
106+
the Asahi Installer.
107+
108+
_Note: We are actively working on improving the safety of common disk partitioning
109+
and installation tooling. We may tighten these requirements in the future as
110+
tools such as cfdisk, blivet, Anaconda, etc. become capable of automatically
111+
handling Apple Silicon devices safely._
112+
113+
Your installation must install the Asahi-specific packages listed above as
114+
part of the installation procedure, or a subset suitable for the installation
115+
type. For example, server operating systems may choose to forego automatically
116+
installing the audio enablement packages.
117+
118+
## Infrastructure and hosting
119+
You or your distro will assume all responsibility for any required hosting
120+
or infrastructure other than the Asahi Installer. This includes any
121+
documentation, packages, CI runners to build packages, CDNs etc. The Asahi
122+
Linux project cannot do this for you.
123+
124+
## Support
125+
Your distro must have first-class, mature support for AArch64/ARM64 upstream.
126+
127+
You or your distro will provide official support for distro-specific issues
128+
relating to the Apple Silicon platform. This includes acting as the first
129+
point of contact for users when they encounter bugs or other issues with any
130+
packaged software. Apple Silicon should be a first-class platform within your
131+
distro's broader AArch64/ARM64 support.
132+
133+
## Using a forked installer and disk image
134+
There are two supported mechanisms for installing Linux on Apple Silicon Macs.
135+
As an alternative to the standard UEFI media method described above, the Asahi
136+
Installer can free space on the NVMe drive and then flash a prebuilt OS image
137+
into that space. This mimics other AArch64 embedded platforms, such as the
138+
Raspberry Pi, and provides a way for users not familiar or confident with
139+
installing Linux an easy way to get started at the expense of customisability.
140+
For more details on how this works, please see [AsahiLinux/asahi-installer](https://github.com/AsahiLinux/asahi-installer).
141+
142+
We expect distros to fork, modify, and host the reference Asahi Installer themselves
143+
if choosing to go down this route. We cannot host your images or make distro-specific
144+
changes to our reference installer.
145+
146+
Your disk image based installation should follow these guidelines:
147+
148+
* The installer and disk images are built and hosted by the distro officially
149+
* The disk images are ZIPped and streamable from the Web
150+
* The OS scrambles the root partition's UUID on first boot
151+
* The OS grows its root partition into trailing free space on first boot
152+
* The disk image includes all Asahi-specific packages
153+
* All supported hardware is enabled and working from the first boot
154+
* Disk images are reasonably up to date
155+
* The install flow for all images is tested before release
156+
* All disk images are thoroughly tested on multiple devices before release
157+
158+
It should be noted that the disk image installation flow is a curiosity of early
159+
bringup work that ended up sticking. While this installation method has its advantages,
160+
it is not the way forward for workstation-class hardware and contributes to the stigma
161+
of AArch64 devices being janky developers' toys. We heavily encourage distros
162+
to invest time in building AArch64 bootable media with Apple Silicon support,
163+
and leverage the reference installer's minimal UEFI environment. As mentioned above,
164+
this aligns closer with user expectations and 40 years of precedence when dealing with
165+
workstation-grade hardware.
166+
167+
We are actively working on improving the tooling required to make bootable media installs
168+
safer for users. Once we consider mainstream disk partitioning software and live media
169+
installation tooling sufficiently foolproof on Apple Silicon devices, we _may_ reconsider
170+
the need to support the image-based installation flow going forward.
171+
172+
## Disendorsement
173+
Through dilligent QA and attention to detail, Asahi Linux has
174+
become well-regarded as one of the best desktop Linux experiences available.
175+
This is a great source of pride for us, and we are determined to meet the high
176+
user expectations that come with such a reputation. We expect officially
177+
endorsed distros to strive to meet those same expectations.
178+
179+
We hope that it will never be necessary to do so, but we may be required to
180+
disendorse distros that are not meeting user or Asahi Linux expectations.
181+
Disendorsed distros will be delisted from our documentation. Depending on the
182+
circumstances, we may also discourage use of the disendorsed distro.
183+
184+
Reasons for disendorsement may include:
185+
186+
* A lack of official distro support for the Apple Silicon platform
187+
* Frequent or recurring distro-specific issues that cannot be reproduced
188+
on Fedora Asahi Remix, especially if such issues are not addressed in
189+
a timely fashion
190+
* Repeated failure to keep Asahi packages current
191+
* Failure to keep installer disk images current (if image-based installation is offered)
192+

mkdocs.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ nav:
3636
- Devicetree bindings: sw/devicetree-bindings.md
3737
- Open OS ecosystem on Apple Silicon Macs: platform/open-os-interop.md
3838
- Userspace Audio Stack: sw/audio-userspace.md
39+
- For distributions/OSes:
40+
- Distro guidelines: alt/policy.md
3941

4042
theme:
4143
name: material

0 commit comments

Comments
 (0)