|
| 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 | + |
0 commit comments