ວິທີການສ້າງ
ໜ້ານີ້ພະຍາຍາມລວບລວມເອກະສານກ່ຽວກັບວິທີການສ້າງ Fedora Asahi Remix. ສິ່ງທີ່ຄວນອ່ານກ່ອນໜ້ານີ້:
-
ໜ້າ ຂໍ້ແຕກຕ່າງ (Deviations) ຂອງພວກເຮົາ, ເຊິ່ງລວບລວມຂໍ້ມູນບ່ອນທີ່ Remix ແຕກຕ່າງຈາກ Fedora Linux ແລະ ເຫດຜົນ
-
ການແນະນຳກ່ຽວກັບ Apple Silicon, ເຊິ່ງກວມເອົາບາງລັກສະນະສະເພາະຂອງແພລັດຟອມນີ້
-
ລະບົບນິເວດ Open OS ເທິງ Apple Silicon Macs, ເຊິ່ງອະທິບາຍເຖິງຂັ້ນຕອນການບູດ ແລະ ການຈັດວາງຂອງ OS
ຕະຫຼອດທັງເອກະສານນີ້, ອົງປະກອບທີ່ໂຮສ (host) ຢູ່ນອກໂຄງສ້າງພື້ນຖານຂອງ Fedora ຈະຖືກໝາຍດ້ວຍ ⚠️.
ແພັກເກດ (Packages)
Fedora Asahi SIG ໄດ້ບຳລຸງຮັກສາແພັກເກດຈຳນວນໜຶ່ງທີ່ຈຳເປັນສຳລັບການເປີດໃຊ້ງານແພລັດຟອມ, ການເຊື່ອມໂຍງ ແລະ ການຈັດຕັ້ງປະຕິບັດ. ແພັກເກດສ່ວນໃຫຍ່ແມ່ນຖືກບຳລຸງຮັກສາຢູ່ໃນ Fedora ເອງພາຍໃຕ້ກຸ່ມ FAS asahi-sig. ສ່ວນ ບາງແພັກເກດ ⚠️ ບໍ່ສາມາດເຮັດແບບນັ້ນໄດ້ ແລະ ຖືກບຳລຸງຮັກສາຢູ່ໃນ copr ແທນ ພາຍໃຕ້ກຸ່ມ @asahi.
ການຕິດຕັ້ງ
Fedora Asahi Remix ຖືກຕິດຕັ້ງໂດຍ asahi-installer, ເຊິ່ງເຮັດວຽກຈາກ macOS ແລະ ແນະນຳຜູ້ໃຊ້ຜ່ານຂັ້ນຕອນການຕິດຕັ້ງ. ການຕິດຕັ້ງປະກອບມີການປັບຂະໜາດພາກສ່ວນດິດ, ການຕິດຕັ້ງ macOS ສະບັບຫຍໍ້ແບບແຍກຕ່າງຫາກ ແລະ ການວາງໄຟລ໌ອິເມຈຂອງ Remix ລົງໃນດິດ; ຈາກນັ້ນລະບົບຈະຖືກບູດເຂົ້າສູ່ recoveryOS, ເຊິ່ງຕົວຕິດຕັ້ງຂັ້ນຕອນທີສອງຈະຮັບຊ່ວງຕໍ່ ແລະ ແນະນຳຜູ້ໃຊ້ໃນການປັບການຕັ້ງຄ່າຄວາມປອດໄພສຳລັບ macOS ແບບແຍກຕ່າງຫາກ ແລະ ປ່ຽນແທນ kernel ຂອງມັນດ້ວຍ m1n1 ທີ່ມາພ້ອມກັນ (ເຊິ່ງມາຈາກແພັກເກດ m1n1-stage1), ເຊິ່ງຕໍ່ມາຈະເຮັດໜ້າທີ່ເປັນ bootloader ຂັ້ນທຳອິດສຳລັບລະບົບທີ່ຕິດຕັ້ງແລ້ວ.
ຕົວຕິດຕັ້ງຖືກສົ່ງມາໃນ asahi-installer-package; ຂະບວນການສ້າງຂອງມັນອາໄສໄຟລ໌ໄບນາຣີ macOS ທີ່ສ້າງມາລ່ວງໜ້າສອງອັນ (Python ແລະ libffi), ເຊິ່ງໄດ້ຮັບ ການຍົກເວັ້ນຈາກ FESCo ຕໍ່ກັບ ນະໂຍບາຍໄບນາຣີທີ່ສ້າງມາລ່ວງໜ້າ. ແພັກເກດຊອດໂຄດ asahi-installer ຍັງມີ python3-asahi_firmware, ເຊິ່ງຖືກໃຊ້ໂດຍ asahi-scripts ສຳລັບການຈັດການເຟີມແວໃນສ່ວນຜູ້ໃຊ້ (userspace).
ຂັ້ນຕອນການບູດ ⚠️
ຫຼັງຈາກການຕິດຕັ້ງ ລະບົບຈະບູດເຂົ້າສູ່ Linux ໂດຍຄ່າເລີ່ມຕົ້ນ. ຂັ້ນຕອນການບູດເລີ່ມຕົ້ນດ້ວຍ m1n1; stage 1 ຂອງມັນ, ເຊິ່ງຖືກຕິດຕັ້ງໂດຍຕົວຕິດຕັ້ງ, ມີໜ້າທີ່ຊອກຫາ ແລະ ປະຕິບັດການ stage 2 ຈາກພາກສ່ວນ EFI. ຂໍ້ແຕກຕ່າງຫຼັກລະຫວ່າງ stage 1 ແລະ stage 2 ແມ່ນ stage 1 ຈະບໍ່ຄ່ອຍໄດ້ອັບເດດ (ເນື່ອງຈາກຕ້ອງໄດ້ໃຊ້ຕົວຕິດຕັ້ງຄືນໃໝ່ ແລະ ຜ່ານ recoveryOS), ໃນຂະນະທີ່ stage 2 ແມ່ນຖືກແຈກຢາຍໂດຍ Fedora ໃນແພັກເກດໄບນາຣີ m1n1 ແລະ ຖືກອັບເດດໄປພ້ອມກັບລະບົບ (ຜ່ານ update-m1n1 ໃນ asahi-scripts).
ເມື່ອສຳເລັດການກຽມພ້ອມແພລັດຟອມ, m1n1 ຈະຊອກຫາ u-boot ⚠️ ແລະ ສົ່ງການຄວບຄຸມໃຫ້ມັນ. U-Boot ເຮັດໜ້າທີ່ເປັນ bootloader ຂັ້ນທີສາມ, ເຮັດການກຽມພ້ອມແພລັດຟອມຕື່ມອີກເລັກນ້ອຍ ແລະ ໃຫ້ສະພາບແວດລ້ອມ preboot ຂັ້ນພື້ນຖານ. ໃນຂັ້ນຕອນປົກກະຕິ, U-Boot ຖືກຕັ້ງຄ່າໃຫ້ຈຳລອງສະພາບແວດລ້ອມ UEFI ເພື່ອໃຊ້ໃນການໂຫຼດ GRUB. ຈາກນັ້ນ ຂັ້ນຕອນການບູດກໍຈະເປັນໄປຕາມມາດຕະຖານຂອງ Fedora Linux.
ເຟີມແວ (Firmware)
ເຄື່ອງ Apple Silicon ຕ້ອງອາໄສໄຟລ໌ເຟີມແວ (firmware blobs) ຈຳນວນຫຼາຍເພື່ອເຮັດວຽກ. ການລວບລວມເຟີມແວແມ່ນຖືກຈັດການໃນ asahi-installer. ຈາກນັ້ນ ເຟີມແວຈະຖືກໂຫຼດຕາມຄວາມຈຳເປັນໃນ initramfs ຜ່ານ dracut-asahi, ເຊິ່ງເປັນສ່ວນໜຶ່ງຂອງ asahi-scripts. ຍັງມີແພັກເກດ asahi-fwupdate (ຈາກ asahi-scripts ເຊັ່ນກັນ) ເພື່ອໃຊ້ໃນການອັບເດດເຟີມແວໃນຝັ່ງ Linux ໃນກໍລະນີທີ່ມີເຟີມແວໃໝ່ອອກມາ.
ໂຄງການ Asahi Linux ມີ ເອກະສານແບບລະອຽດ ກ່ຽວກັບຂະບວນການຈັດຕຽມເຟີມແວ, ເຊິ່ງມີຈຸດປະສົງເພື່ອໃຫ້ເປັນມາດຕະຖານດຽວກັນລະຫວ່າງແຕ່ລະ distro.
Kernel ແລະ ໄດເວີໃນສ່ວນຜູ້ໃຊ້ (userspace drivers) ⚠️
ແພັກເກດ kernel ⚠️ ສຳລັບ Fedora Asahi Remix ຖືກບຳລຸງຮັກສາໂດຍການແຍກສາຂາ (fork) ມາຈາກ kernel-ark, ເຊິ່ງລວມເອົາ patches ຈາກ Asahi Linux tree ຕົ້ນທາງ. Asahi Linux ຍັງມີ ລະບົບຕິດຕາມແບບລະອຽດ ກ່ຽວກັບສະຖານະການສົ່ງໂຄດຄືນໄປຍັງຕົ້ນທາງ (upstreaming) ສຳລັບທຸກໆອົງປະກອບ.
ໄດເວີ GPU ຍັງມີສ່ວນທີ່ເຮັດວຽກໃນ userspace ໃນ asahi driver ພາຍໃຕ້ mesa ⚠️. ເຊິ່ງມັນເຮັດວຽກຄວບຄູ່ກັນຢ່າງໃກ້ຊິດກັບໄດເວີ AGX ໃນ kernel.
ລະບົບສຽງ
ເຄື່ອງ Apple Silicon ມີການຕັ້ງຄ່າລຳໂພງທີ່ຊັບຊ້ອນ ເຊິ່ງຕ້ອງມີການປ້ອງກັນລຳໂພງເພື່ອຄວາມປອດໄພ ແລະ ຕ້ອງມີລະບົບ DSP ສະເພາະເພື່ອໃຫ້ສຽງດີ. ສິ່ງນີ້ຖືກຈັດການໂດຍ asahi-audio, ເຊິ່ງໃຊ້ rust-bankstown-lv2 ສຳລັບການເພີ່ມສຽງເບສ, rust-speakersafetyd ສຳລັບການປ້ອງກັນລຳໂພງ ແລະ rust-triforce-lv2 ສຳລັບການຮອງຮັບໄມໂຄຣໂຟນ, ບວກກັບ alsa-ucm-asahi ແລະ rust-alsa. PipeWire ແລະ WirePlumber ຍັງໄດ້ຮັບການປັບປຸງເພື່ອສ້າງອຸປະກອນສຽງສະເໝືອນທີ່ຖືກຕ້ອງ ແລະ ສະແດງໃຫ້ຜູ້ໃຊ້ເຫັນໃນຮູບແບບທີ່ເຂົ້າໃຈງ່າຍ.
Touch Bar
Apple Silicon Macbook ບາງລຸ້ນມີ Touch Bar ແທນທີ່ແຖວທຳອິດຂອງຄີບອດ. ໃນ Linux, ມັນຈະຖືກສະແດງເປັນໜ້າຈໍປົກກະຕິ (ເຖິງວ່າຈະມີຂະໜາດແປກໆ) ແລະ ສາມາດໃຊ້ງານໄດ້ໃນລັກສະນະນັ້ນ. ເພື່ອໃຫ້ມັນມີປະໂຫຍດ rust-tiny-dfr ຈະສະແດງປຸ່ມຟັງຊັນ (function keys) ເທິງນັ້ນ, ເພື່ອຈຳລອງສິ່ງທີ່ມີຢູ່ໃນຄີບອດປົກກະຕິ.
ການຫຼິ້ນສື່ ແລະ ຕົວຖອດລະຫັດ (codecs)
Fedora Asahi Remix ມາພ້ອມກັບການຮອງຮັບເນື້ອຫາທີ່ເຂົ້າລະຫັດ H.264 ໄດ້ທັນທີ. ສິ່ງນີ້ເຮັດໄດ້ໂດຍໃຫ້ asahi-installer ດາວໂຫຼດໄຟລ໌ RPM ແລະ ວາງໄວ້ໃນພາກສ່ວນ EFI; ຈາກນັ້ນ systemd unit ໃນ fedora-asahi-remix-scripts ຈະທຳການຕິດຕັ້ງພວກມັນໃນການບູດຄັ້ງທຳອິດ.
ພວກເຮົາຍັງມີ widevine-installer ເພື່ອເປີດໃຊ້ງານການຫຼິ້ນ Widevine ໂດຍອັດຕະໂນມັດ ດ້ວຍການດາວໂຫຼດ ແລະ ແຍກສ່ວນປະກອບທີ່ຈຳເປັນຈາກ ChromeOS image.
NVram ແລະ ລາຍການບູດເລີ່ມຕົ້ນ (default boot entry)
ລະບົບ Apple Silicon ເກັບກຳການຕັ້ງຄ່າລະບົບລະດັບຕ່ຳບາງຢ່າງໄວ້ໃນ NVram. ພວກເຮົາໄດ້ກຽມແພັກເກດຈຳນວນໜຶ່ງເພື່ອຈັດການກັບສ່ວນນີ້, ແຕ່ພວກມັນບໍ່ໄດ້ຖືກຕິດຕັ້ງໄວ້ເປັນຄ່າເລີ່ມຕົ້ນ ເພາະໃນປັດຈຸບັນຍັງບໍ່ມີວິທີທີ່ປອດໄພໃນການຈຳກັດໃຫ້ຂຽນຂໍ້ມູນໄດ້ເທື່ອລະຄົນ (ການຂຽນພ້ອມກັນອາດເຮັດໃຫ້ຂໍ້ມູນເສຍຫາຍໄດ້).
ລາຍການບູດເລີ່ມຕົ້ນສາມາດປ່ຽນໄດ້ໂດຍໃຊ້ rust-asahi-bless (ເຄື່ອງມື CLI) ຫຼື rust-startup-disk (ເຄື່ອງມື GUI). ຍັງມີເຄື່ອງມືທົດລອງສອງຢ່າງສຳລັບການຊິງຄ໌ (sync) ການຕັ້ງຄ່າ Bluetooth (rust-asahi-btsync) ແລະ Wi-Fi (rust-wifisync) ລະຫວ່າງ macOS ແລະ Linux. ເຄື່ອງມືທັງໝົດນີ້ຖືກສ້າງຂຶ້ນເທິງ rust-apple-nvram ແລະ rust-asahi-nvram.
ການຈຳລອງລະບົບ (Emulation)
ພວກເຮົາໄດ້ກຽມລະບົບຈຳລອງແບບຄົບຊຸດ ເຊິ່ງຊ່ວຍໃຫ້ສາມາດ ລັນແອັບພລິເຄຊັນ x86/x86-64 ໄດ້, ລວມທັງ Steam. ໃນ Fedora Linux 42, ບາງສ່ວນຂອງລະບົບນີ້ໄດ້ຖືກ ເຊື່ອມໂຍງ ເຂົ້າໃນ Fedora Linux ໂດຍກົງ. ແລະ ຍັງໄດ້ລວມເອົາ rust-binfmt-dispatcher, ເຊິ່ງເຮັດໜ້າທີ່ເລືອກຕົວແປພາສາ (interpreter) ທີ່ດີທີ່ສຸດໃຫ້ໂດຍອັດຕະໂນມັດໃນຂະນະເຮັດວຽກ ແລະ ຈະແຈ້ງໃຫ້ຜູ້ໃຊ້ຕິດຕັ້ງສິ່ງທີ່ຈຳເປັນຖ້າຫາກຕ້ອງການ.
ການເຊື່ອມໂຍງລະບົບນິເວດຂອງ Apple
ພວກເຮົາບຳລຸງຮັກສາແພັກເກດສຳລັບ libimobiledevice, ເຊິ່ງເປັນໂປຣໂຕຄໍ ແລະ ເຄື່ອງມືໃນການສື່ສານກັບອຸປະກອນ Apple. ນອກຈາກນັ້ນ, ຍັງລວມເຖິງ idevicerestore, ເຊິ່ງສາມາດໃຊ້ເພື່ອເຮັດ DFU ໃຫ້ກັບແລັບທັອບ Apple Silicon ຈາກລະບົບ Linux ອື່ນໄດ້ (ແທນທີ່ຈະຕ້ອງອາໄສເຄື່ອງ Mac ອື່ນທີ່ມີ Apple Configurator 2). ອົງປະກອບອື່ນໆໃນຊຸດນີ້ມີ libimobiledevice, libimobiledevice-glue, libtatsu, libplist, libusbmuxd, ແລະ usbmuxd.
ລະບົບພື້ນຖານສະເພາະຂອງ Remix ⚠️
ພວກເຮົາບຳລຸງຮັກສາແພັກເກດຈຳນວນໜຶ່ງທີ່ສ້າງຂຶ້ນມາສະເພາະສຳລັບການເຮັດວຽກຂອງ Remix:
-
asahi-platform-metapackage(source, copr) ເປັນ metapackage ທີ່ລວບລວມທຸກໆແພັກເກດທີ່ຈຳເປັນສຳລັບແພລັດຟອມ Asahi -
asahi-repos(source, copr) ໃຫ້ຂໍ້ມູນຄັງຊອບແວ (Yum repository) ສຳລັບແພັກເກດໃນ copr ຂອງພວກເຮົາ -
calamares-firstboot-configs(source, copr) ໃຫ້ການຕັ້ງຄ່າ Calamares ທີ່ໃຊ້ໃນການຕິດຕັ້ງຄັ້ງທຳອິດ (first-boot) ໃນລຸ້ນ KDE -
fedora-asahi-remix-appstream-metadata(source, copr) ໃຫ້ຂໍ້ມູນ AppStream metadata ສະເພາະຂອງ Remix ທີ່ຈຳເປັນໃນການຮອງຮັບການອັບເດດລະຫວ່າງເວີຊັນຫຼັກ (major releases) ຜ່ານ PackageKit -
fedora-asahi-remix-release(source, copr) ໃຫ້ຂໍ້ມູນຍີ່ຫໍ້ (branding) ຂອງ Remix; Fedora Asahi Remix ໄດ້ຮັບ ການອະນຸມັດເຄື່ອງໝາຍການຄ້າ ຈາກສະພາ Fedora ໃຫ້ໃຊ້ຊື່ ແລະ ຍີ່ຫໍ້ໃນປັດຈຸບັນໄດ້ (ເຊິ່ງລວມເຖິງການໃຊ້ໂລໂກ້ Fedora) -
fedora-asahi-remix-scripts(source, copr) ໃຫ້ສະຄຣິບຊ່ວຍເຫຼືອຕ່າງໆ ແລະ ບໍລິການ systemd ທີ່ໃຊ້ໃນ Remix
ໂຄງສ້າງພື້ນຖານ
ອິເມຈສຳລັບການຕິດຕັ້ງ ⚠️
ອິເມຈສຳລັບການຕິດຕັ້ງ Fedora Asahi Remix ແມ່ນຖືກສ້າງຂຶ້ນໂດຍໃຊ້ Kiwi ຈາກ Kiwi descriptions ຂອງພວກເຮົາ ແລະ ຢູ່ນອກໂຄງສ້າງພື້ນຖານຂອງ Fedora.
ພວກເຮົາໃຊ້ AWS EC2 ໃນການສ້າງ ແລະ ອັບໂຫຼດພວກມັນລົງໃນ AWS S3, ໂດຍມີ AWS Lambda ເປັນຕົວສັ່ງການ (ເຊິ່ງເຮັດວຽກທຸກໆມື້). ພວກເຮົາຍັງໃຊ້ Lambda ອີກຕົວໜຶ່ງເພື່ອສ້າງໄຟລ໌ manifest ສຳລັບ daily builds ເພື່ອໃຫ້ Asahi Installer ນຳໄປໃຊ້ງານ.
ພວກເຮົາໂຮສ ເວັບໄຊ ຂອງພວກເຮົາໄວ້ໃນ AWS S3 ໂດຍມີ AWS Cloudfront ຢູ່ດ້ານໜ້າ; ພວກເຮົາໃຊ້ Lambda ອີກຕົວໜຶ່ງ ເພື່ອຈັດການ CDN invalidation. ເວັບໄຊຈະຖືກເຜີຍແຜ່ໂດຍອັດຕະໂນມັດຈາກ GitLab repository ຂອງມັນ; ເຊິ່ງນີ້ຍັງເປັນບ່ອນເກັບ installer manifest ທີ່ຖືກປັບປຸງດ້ວຍຕົນເອງສຳລັບ release images (ແຕກຕ່າງຈາກ dailies). ຕົວ Lambdas ກໍຖືກເຜີຍແຜ່ໂດຍອັດຕະໂນມັດຜ່ານ Gitlab Pipelines ໂດຍໃຊ້ AWS Chalice.
ເອກະສານ
ເວັບໄຊເອກະສານ ຂອງພວກເຮົາແມ່ນຖືກສ້າງຂຶ້ນດ້ວຍ Antora ຈາກ repository ຂອງມັນ, ແລະ ໄດ້ຮັບ ການເຊື່ອມໂຍງ ເຂົ້າກັບເວັບໄຊ Fedora Docs.
ການຕິດຕາມໂຄງການ ແລະ ຂໍ້ຜິດພາດ (Bug)
We maintain a project planning tracker and a bugs tracker.
Want to help? Learn how to contribute to Fedora Docs ›