Bagaimana cara pembuatannya
Halaman ini mencoba mendokumentasikan bagaimana Fedora Asahi Remix disusun. Prasyarat yang berguna untuk dibaca sebelum ini:
-
halaman Deviasi kami, mendokumentasikan di mana Remix menyimpang dari Fedora Linux dan mengapa
-
Pengantar Apple Silicon, yang membahas beberapa keunikan platform ini
-
Ekosistem OS Terbuka pada Mac dengan Apple Silicon, yang menjelaskan proses booting dan cara sistem operasi disusun
Sepanjang dokumen ini, komponen yang diwadahi di luar infrastruktur Fedora akan ditandai dengan suatu ⚠️.
Paket-paket
Fedora Asahi SIG mengelola sejumlah paket yang diperlukan untuk aktivasi platform, integrasi, dan implementasi. Sebanyak mungkin dari paket-paket ini dikelola langsung di Fedora melalui grup FAS asahi-sig di https://src.fedoraproject.org/group/asahi-sig. Ini bukan opsi untuk https://docs.fedoraproject.org/en-US/fedora-asahi-remix/deviations/#_downstream_packages_required_for_platform_enablement_are_included [beberapa paket] ⚠️, dan paket-paket tersebut dikelola di copr alih-alih, di bawah grup @asahi.
Instalasi
Fedora Asahi Remix diinstal menggunakan Penginstal Asahi (https://src.fedoraproject.org/rpms/asahi-installer) [asahi-installer], yang dijalankan dari macOS dan memandu pengguna melalui proses instalasi. Proses instalasi melibatkan penyesuaian ukuran partisi, menginstal salinan macOS yang disederhanakan dan berdiri sendiri, serta menempatkan citra Remix di disk; sistem kemudian di-reboot ke recoveryOS, di mana tahap kedua installer mengambil alih dan memandu pengguna untuk menyesuaikan pengaturan keamanan macOS mandiri dan mengganti kernel-nya dengan m1n1 yang disertakan (yang berasal dari paket m1n1-stage1), yang nantinya akan bertindak sebagai bootloader tahap pertama untuk sistem yang diinstal.
Penginstal disediakan dalam paket asahi-installer-package; proses pembuatannya bergantung pada dua artefak biner macOS yang sudah dibangun sebelumnya (Python dan libffi), yang telah mendapatkan pengecualian FESCo terhadap kebijakan prebuilt. Paket sumber asahi-installer juga menyediakan python3-asahi_firmware, yang digunakan oleh asahi-scripts untuk pengelolaan firmware di ruang pengguna (userspace).
Proses booting ⚠️
Setelah instalasi, sistem akan boot ke Linux secara default. Proses boot dimulai dengan m1n1; tahap 1-nya, yang ditempatkan oleh installer, bertanggung jawab untuk menemukan dan menjalankan tahap 2 dari partisi EFI. Perbedaan utama antara tahap 1 dan tahap 2 adalah bahwa yang pertama jarang diperbarui (karena prosesnya perlu menjalankan installer lagi dan melalui recoveryOS), sementara yang kedua didistribusikan oleh Fedora dalam paket biner m1n1 dan diperbarui bersama dengan distribusi (melalui update-m1n1 di asahi-scripts).
Setelah proses inisialisasi platform selesai, m1n1 akan menemukan u-boot ⚠️ dan menyerahkan kendali kepadanya. U-Boot bertindak sebagai bootloader tahap ketiga, melakukan inisialisasi platform tambahan, dan menyediakan lingkungan pra-boot minimal. Dalam alur default, U-Boot dikonfigurasi untuk menyediakan lingkungan UEFI yang diemulasikan, yang digunakan untuk memuat GRUB. Dari sini, alur boot mengikuti alur standar Fedora Linux.
Firmware
Perangkat Apple Silicon bergantung pada sejumlah besar firmware blobs untuk beroperasi. Koleksi firmware diimplementasikan dalam asahi-installer. Firmware kemudian dimuat sesuai kebutuhan dalam initramfs melalui dracut-asahi, yang merupakan bagian dari asahi-scripts. Paket asahi-fwupdate juga disediakan (juga dari asahi-scripts) untuk menerapkan pembaruan firmware di sisi Linux jika firmware baru tersedia.
Proyek Asahi Linux memiliki dokumentasi mendalam (https://asahilinux.org/docs/Open-OS-Ecosystem-on-Apple-Silicon-Macs#firmware-provisioning) tentang proses penyediaan firmware, yang dimaksudkan untuk distandarkan antar distribusi.
Driver kernel dan ruang pengguna ⚠️
Paket kernel kernel package ⚠️ untuk Fedora Asahi Remix dikelola sebagai cabang hilir dari kernel-ark, termasuk tambalan dari pohon hulu Asahi Linux tree. Asahi Linux juga memelihara pelacak detail status upstreaming untuk setiap komponen.
Pengemudi GPU juga memiliki versi pengguna (userspace) yang setara dengan pengemudi Asahi (https://docs.mesa3d.org/drivers/asahi.html) di mesa ⚠️. Pengemudi ini terintegrasi erat dengan pengemudi AGX di kernel.
Audio
Perangkat Apple Silicon memiliki konfigurasi speaker yang kompleks yang memerlukan perlindungan speaker untuk keamanan dan rantai DSP khusus untuk kualitas suara yang baik. Hal ini diimplementasikan oleh asahi-audio, yang memanfaatkan rust-bankstown-lv2 untuk peningkatan bass, rust-speakersafetyd untuk perlindungan speaker, dan https://src.fedoraproject.org/rpms/rust-triforce-lv2/ [rust-triforce-lv2] untuk dukungan mikrofon, serta alsa-ucm-asahi dan rust-alsa. PipeWire dan WirePlumber juga telah ditingkatkan untuk membuat perangkat audio virtual yang benar dan menampilkannya kepada pengguna dengan cara yang mudah dipahami.
Bar Sentuh
Beberapa MacBook dengan Apple Silicon dilengkapi dengan Baris Sentuh (Touch Bar) yang menggantikan baris pertama keyboard. Di Linux, ini ditampilkan sebagai layar biasa (meskipun ukurannya tidak standar), dan dapat dioperasikan seperti itu. Untuk membuatnya berguna, rust-tiny-dfr menampilkan serangkaian tombol fungsi di atasnya, meniru apa yang tersedia pada keyboard fisik.
Pemutaran media dan codec
Fedora Asahi Remix dilengkapi dengan dukungan bawaan untuk konten yang dienkode H.264. Hal ini diimplementasikan dengan menggunakan asahi-installer untuk mengunduh paket RPM dan menempatkannya di partisi EFI; sebuah unit systemd dalam fedora-asahi-remix-scripts kemudian menginstalnya pada booting pertama.
Kami juga menyediakan widevine-installer untuk mengaktifkan pemutaran Widevine secara otomatis dengan mengunduh dan mengekstrak komponen yang diperlukan dari citra ChromeOS.
NVram dan entri boot default
Sistem Apple Silicon menyimpan beberapa pengaturan konfigurasi sistem tingkat rendah di NVram. Kami menyediakan serangkaian paket untuk berinteraksi dengan ini, tetapi paket-paket tersebut tidak diinstal secara default karena saat ini tidak ada cara aman untuk memastikan hanya ada satu penulis (penulisan bersamaan dapat menyebabkan konflik dan mengakibatkan kerusakan data).
Entri boot default dapat diubah menggunakan rust-asahi-bless (alat baris perintah) atau rust-startup-disk (antarmuka grafis). Dua alat eksperimental juga disediakan untuk menyinkronkan pengaturan Bluetooth (rust-asahi-btsync) dan Wi-Fi (rust-wifisync) antara macOS dan Linux. Semua alat ini diimplementasikan di atas rust-apple-nvram dan rust-asahi-nvram.
Emulasi
Kami menyediakan stack emulasi lengkap yang memungkinkan menjalankan aplikasi x86/x86-64, termasuk Steam. Sejak Fedora Linux 42, sebagian dari ini telah dihttps://fedoraproject.org/wiki/Changes/FEX ke dalam Fedora Linux itu sendiri. Sebagai bagian dari pekerjaan ini, kami juga menyertakan rust-binfmt-dispatcher, yang menyediakan dispatcher sederhana untuk binfmt_misc yang secara dinamis memilih interpreter terbaik untuk digunakan saat runtime, dan meminta pengguna untuk menginstal dependensi yang diperlukan jika diperlukan.
Integrasi ekosistem Apple
Kami memelihara paket untuk tumpukan [libimobiledevice] dari https://libimobiledevice.org/, yang mengimplementasikan protokol dan alat untuk berkomunikasi dengan perangkat Apple. Di antara fitur lainnya, ini termasuk idevicerestore, yang dapat digunakan untuk melakukan DFU pada laptop Apple Silicon dari sistem Linux lain (tanpa harus bergantung pada Mac lain dengan Apple Configurator 2). Komponen lain dari stack ini adalah libimobiledevice, libimobiledevice-glue, libtatsu, libplist, libusbmuxd, dan usbmuxd.
Perlengkapan khusus untuk remix ⚠️
Kami mengelola sejumlah paket yang khusus untuk implementasi Remix:
-
asahi-platform-metapackage(source, copr) menyediakan metapackage yang mendeklarasikan semua dependensi paket platform Asahi lainnya -
asahi-repos(source, copr) menyediakan definisi repositori Yum untuk paket-paket yang disediakan melalui copr -
calamares-firstboot-configs(source, copr) menyediakan konfigurasi Calamares yang digunakan untuk installer pertama kali pada edisi KDE -
fedora-asahi-remix-appstream-metadata(source, copr) menyediakan metadata AppStream khusus Remix yang diperlukan untuk mendukung pembaruan antara rilis utama melalui PackageKit -
fedora-asahi-remix-release(source, copr) menyediakan branding distribusi untuk Remix; Fedora Asahi Remix telah mendapatkan persetujuan merek dagang dari Dewan Fedora untuk menggunakan nama dan branding saat ini (yang mencakup penggunaan logo Fedora). -
fedora-asahi-remix-scripts(source, copr) menyediakan berbagai skrip utilitas dan layanan systemd yang digunakan dalam Remix
Infrastruktur
Citra instalasi ⚠️
Citra instalasi Fedora Asahi Remix dibuat menggunakan Kiwi dari Kiwi descriptions dan berada di luar infrastruktur Fedora.
Kami menggunakan instance AWS EC2 untuk melakukan proses build dan mengunggahnya ke AWS S3, yang dipicu oleh AWS Lambda (yang berjalan setiap hari). Kami menggunakan layanan lain Lambda untuk menghasilkan manifes untuk build harian ini daily builds yang akan digunakan oleh Asahi Installer.
Kami menghosting situs web kami website di AWS S3, dengan AWS Cloudfront sebagai frontend; kami menggunakan Lambda lain untuk menangani invalidasi CDN. Situs web ini secara otomatis di-deploy dari repositori GitLab-nya https://gitlab.com/fedora/sigs/asahi/website; di sinilah juga manifes installer https://gitlab.com/fedora/sigs/asahi/website/-/blob/main/installer_data_stable.json yang dikelola secara manual untuk citra rilis (bukan citra harian) disimpan. Lambda juga secara otomatis di-deploy melalui GitLab Pipelines menggunakan AWS Chalice.
Dokumentasi
Situs dokumentasi kami dibuat menggunakan https://antora.org [Antora] dari repositori repository, dan dihttps://gitlab.com/fedora/docs/docs-website/docs-fp-o/-/commit/afc54fdc8d8a94ba72ab35f1d65ea535055f7b87 [diintegrasikan] ke dalam situs web Fedora Docs.
Pelacakan proyek dan bug
Kami mengelola pelacak perencanaan proyek dan pelacak bug.
Want to help? Learn how to contribute to Fedora Docs ›