Como se hace
Esta página intenta documentar como Fedora Asahi Remix es puesto junto. Útil pre-requisitos para leer antes de esto:
-
nuestra página Desviaciones, documentando donde el Remix desviado desde Fedora Linux y porqué
-
Introducción para Apple Silicon, lo cual cubre alguna de estas peculiaridades de la plataforma
-
Ecosistema de SO Abierto en Apple Silicon Macs, lo cual explica el proceso de arranque y como el SO está dispuesto
A lo largo de este documentos, componentes hospedados fuera de la infraestructura de Fedora será marcada con un ⚠️.
Paquetes
El Fedora Asahi SIG mantiene varios paquetes necesarios para la habilitación, integración e implementación de la plataforma. La mayor cantidad posible de estos paquetes se mantiene en Fedora, bajo el grupo FAS asahi-sig
. Esto no es posible para algunos paquetes⚠️, y estos se mantienen en copr, bajo el grupo @asahi
.
Instalación
Fedora Asahi Remix se instala mediante asahi-installer
, el cual se ejecuta desde macOS y guía al usuario durante el proceso de instalación. La instalación implica redimensionar particiones, instalar una copia independiente de macOS simplificada y almacenar la imagen de Remix en el disco. A continuación, el sistema se reinicia en modo recoveryOS, donde la segunda etapa del instalador toma el control y guía al usuario para ajustar la configuración de seguridad de macOS independiente y reemplazar su kernel con el m1n1 agrupado (viene en el paquete m1n1-stage1
), que posteriormente actuará como gestor de arranque de primera etapa para el sistema instalado.
El instalador se entrega en asahi-installer-package
; su proceso de compilación se basa en dos artefactos binarios de macOS precompilados (Python y libffi), que han recibido una excepción FESCo a la normativa precompilador. El paquete fuente asahi-installer
también proporciona python3-asahi_firmware
, que es utilizado por asahi-scripts
para la gestión del firmware en el espacio de usuario.
Proceso de arranque ⚠️
Tras la instalación, el sistema arranca en Linux por defecto. El flujo de arranque comienza con m1n1
; su etapa 1, colocada por el instalador, se encarga de encontrar y ejecutar la etapa 2 desde la partición EFI. La principal diferencia entre la etapa 1 y la etapa 2 es que la primera rara vez se actualiza (ya que el proceso requiere volver a ejecutar el instalador y pasar por el sistema operativo de recuperación), mientras que la segunda es distribuida por Fedora en el paquete binario m1n1
y se actualiza junto con la distribución (mediante update-m1n1
en asahi-scripts
).
Una vez finalizada la inicialización de la plataforma, m1n1
encontrará u-boot
⚠️ y le cederá el control. U-Boot actúa como el gestor de arranque de tercera etapa, realizando una inicialización adicional de la plataforma y proporcionando un entorno de prearranque mínimo. En el flujo predeterminado, U-Boot está configurado para proporcionar un entorno UEFI emulado, que se utiliza para cargar GRUB. A partir de aquí, el flujo de arranque es el estándar de Fedora Linux.
Firmware
Las máquinas Apple Silicon dependen de una gran cantidad de blobs de firmware para funcionar. La recopilación de firmware se implementa en asahi-installer
. Posteriormente, el firmware se carga según sea necesario en el initramfs mediante dracut-asahi
, el cual forma parte de asahi-scripts
. También se proporciona un paquete asahi-fwupdate
(además disponible en asahi-scripts
) para aplicar actualizaciones de firmware en Linux en caso de que haya disponible firmware nuevo.
El proyecto Asahi Linux tiene documentación detallada del proceso de aprovisionamiento de firmare, que está pensado para estar estandarizado entre distribuciones.
Kernel y controladores en espacio de usuario ⚠️
El paquete del kernel ⚠️ para Fedora, Asahi Remix se mantiene como una bifurcación descendente de kernel-ark, que incluye parches del árbol ascendente árbol Asahi Linux. Asahi Linux también mantiene un rastreador detallado del estado de la actualización ascendente de cada componente.
El controlador de GPU también tiene una contraparte de espacio de usuario en asahi driver en mesa⚠️. Esto está estrechamente acoplado con el controlador AGX en el kernel.
Sonido
Las máquinas Apple Silicon tienen una configuración de altavoces compleja que requiere protección de altavoces para que sea segura y una cadena DSP dedicada para sonar bien. Esto se implementa mediante asahi-audio
, que aprovecha rust-bankstown-lv2
para la mejora de graves, rust-speakersafetyd
para la protección de los altavoces y rust-triforce-lv2
para la compatibilidad con el micrófono, además de alsa-ucm-asahi
y rust-alsa
. PipeWire y WirePlumber también se han mejorado para crear los dispositivos de audio virtuales correctos y presentarlos al usuario de una manera comprensible.
Barra táctil
Algunas MacBooks con Apple Silicon incorporan una barra táctil (https://developer.apple.com/design/human-interface-guidelines/touch-bar) que reemplaza la primera fila del teclado. En Linux, se presenta esto como una pantalla normal (aunque de tamaño irregular) y se puede controlar como tal. Para que sea útil, la barra táctil (https://src.fedoraproject.org/rpms/rust-tiny-dfr) reproduce un conjunto de teclas de función que imitan las de un teclado físico.
Reproducción de medio y codificaciones
Fedora Asahi Remix viene con soporte fuera de la caja para contenido codificado en H.264. Esto se implementa mediante la descarga de los RPM en asahi-installer
y su instalación en la partición EFI; una unidad systemd en fedora-asahi-remix-scripts
los instala en el primer arranque.
También proporcionamos widevine-installer
para habilitar automáticamente la reproducción de Widevine descargando y extrayendo los bits necesarios de una imagen de ChromeOS.
Apunte de NVram y arranque predeterminado
Los sistemas Apple Silicon almacenan algunas configuraciones de bajo nivel en la NVRAM. Ofrecemos un conjunto de paquetes para interactuar con esta configuración, pero no se instalan por defecto, ya que actualmente no existe una forma segura de implementar un único escritor (las escrituras simultáneas pueden ser imprudentes y provocar daños).
El apunte de arranque predeterminado se puede cambiar mediante rust-asahi-bless
(una herramienta CLI) o rust-startup-disk
(una interfaz gráfica de usuario). También se proporcionan dos herramientas experimentales para sincronizar la configuración de Bluetooth (rust-asahi-btsync
) y Wi-Fi (rust-wifisync
) entre macOS y Linux. Todas estas herramientas se implementan sobre rust-apple-nvram
y rust-asahi-nvram
.
Emulación
Ofrecemos una pila de emulación completa que permite ejecutar aplicaciones x86/x86-64, incluyendo Steam. A partir de Fedora Linux 42, parte de esta emulación se ha integrado en Fedora Linux. Como parte de este trabajo, también incluimos rust-binfmt-dispatcher
, que proporciona un despachador simple para binfmt_misc que selecciona dinámicamente el mejor intérprete para usar en tiempo de ejecución y solicita al usuario que instale las dependencias necesarias.
Integración del ecosistema Apple
Mantenemos paquetes para la pila libimobiledevice, que implementa protocolos y herramientas para la comunicación con dispositivos Apple. Entre otras cosas, esto incluye idevicerestore
, que permite realizar un DFU a un portátil con Apple Silicon desde otro sistema Linux (en lugar de tener que depender de otra Mac con Apple Configurator 2). Otros componentes de esta pila son libimobiledevice
, libimobiledevice-glue
, libtatsu
, libplist
, libusbmuxd
y usbmuxd
.
Remezcla específica de cañerías ⚠️
Mantenemos un número de paquetes que son específicos para la implementación del Remix:
-
asahi-platform-metapackage
(source, copr) proporcionan metapaquetes que declaran todos los otras dependencias de paquete de la plataforma Asahi -
asahi-repos
(source, copr) proporcionan definiciones de repositorios Yum para nuestros paquetes copr-proporcionados -
calamares-firstboot-configs
(source, copr) proporciona las configuraciones de los Calamares utilizadas para el instalador del primer arranque en la edición KDE -
fedora-asahi-remix-appstream-metadata
(fuente, copr) proporciona los metadatos de AppStream específicos de Remix que se requieren para admitir actualizaciones entre versiones principales a través de PackageKit -
fedora-asahi-remix-release
(source, copr) proporciona la marca de distribución para el Remix; Fedora Asahi Remix tiene aprobación de marca registrada del Consejo de Fedora para usar su nombre y marca actuales (que incluye el uso del logotipo de Fedora) -
fedora-asahi-remix-scripts
(fuente, copr) proporciona varios scripts de utilidad y servicios systemd utilizados en Remix
Infraestructura
Instalación de imágenes ⚠️
Las imágenes de instalación de Fedora Asahi Remix se crean utilizando Kiwi desde nuestras Descripciones de Kiwi y están fuera de la infraestructura de Fedora.
Utilizamos instancias de AWS EC2 para ejecutar compilaciones y subirlas a AWS S3, activadas por un AWS Lambda (que se ejecuta diariamente). Usamos otro Lambda para generar el manifiesto de estas compilaciones diarias que el instalador de Asahi consumirá.
Alojamos nuestro sitio web sitio web en AWS S3, gestionado por AWS Cloudfront. Usamos otra Lambda para gestionar la invalidación de la CDN. El sitio web se despliega automáticamente desde su repositorio de GitLab repositorio de GitLab; aquí también se encuentra el archivo manifiesto del instalador, mantenido manualmente, para las imágenes de lanzamiento (en lugar de las diarias). Las Lambdas también se despliegan automáticamente mediante Gitlab Pipelines con AWS Chalice.
Documentación
Nuestro sitio de documentación se genera con Antora desde su repositorio, y está integrado en el sitio Web de Documentación de Fedora.
Proyecto y seguimiento de defectos
Mantenemos un seguimiento de planificación de proyecto y un seguimiento de defectos.
Want to help? Learn how to contribute to Fedora Docs ›