Corellium anuncia sua porta de Linux para chips M1

Corellium apresentou uma versão do Linux adaptada para funcionar em computadores Apple mais recentes equipados com o chip M1, a variante do kernel Linux compatível com o chip Apple M1 é lançada sob a licença GPLv2 e os patches foram enviados para inclusão no kernel principal.

Corellium tem ampla experiência na migração de chips Linux para Apple usado em dispositivos móveis como o iPhone. No estágio inicial da migração, os testadores foram encorajados que muitos dos componentes do Apple M1 são baseados em tecnologias já usadas pela Apple em outros SoCs.

Mas no processo de escrever drivers, ficou claro que nem tudo é tão simples e o chip Apple M1 inclui muitas soluções não padronizadas. O suporte do Linux para SoCs ARM de 64 bits é baseado em blocos comuns e interfaces de firmware, mas o Apple M1 dificilmente usa soluções típicas.

Por exemplo, em ARM SoCs convencionais, a ativação dos núcleos da CPU é feita através do PSCI (Power State Coordination Interface) fornecido pelo firmware e no Apple M1, requer a manipulação do registro MMIO.

Nesta fase, Os desenvolvedores do Corellium se adiantaram ao projeto Asahi Linux, fundada por Héctor Martin para portar o Linux para sistemas com o chip Apple M1, que até agora estava limitado à engenharia reversa e experimentos com um bootloader. No entanto, o principal objetivo do Asahi Linux não é apenas inicializar o Linux, mas fornecer suporte total para mecanismos de gerenciamento de energia e usar os recursos da GPU Apple M1, que usa um conjunto específico de instruções.

Os patches do Corellium são limitados a fornecer inicialização e suporte para recursos específicos de chips M1 relacionados ao modo SMP, temporizadores, interrupções, tratamento de estado inativo e inicialização.

As Representantes da Asahi Linux deram as boas-vindas ao lançamento de patches do Corellium e expressaram sua vontade de fornecer assistência de revisão por pares para acelerar a adoção do kernel do Linux.

Além disso, Alyssa Rosenzweig (da Collabora que desenvolve o driver Panfrost GPU Mali) também publicou um segundo relatório sobre Engenharia reversa e desenvolvimento de drivers de código aberto para a GPU Apple M1.

No estágio atual, foi preparado um protótipo inicial do controlador, que pode desenhar triângulos usando a GPU. Para GPUs M1, o primeiro vértice e os shaders de fragmento também são codificados manualmente. O driver do kernel IOKit é usado para interagir com a GPU.

O Apple M1 também usa seu próprio controlador de interrupção AIC (Apple Interrupt Controller), que na maior parte, é incompatível com ARM GICs padrão e um mecanismo diferente para ligar interrupções de um temporizador. Além disso, para organizar a interação entre vários processadores, são usados ​​registros separados que controlam o IPI (interrupções entre processadores).

Para inicializar em um computador Mac Mini M1 com um chip Apple M1, uma imagem rootfs pronta para usar é preparada, construído com base na compilação do Ubuntu para Raspberry Pi.

Para instalar, você deve copiar a imagem para uma unidade USB, conecte esta unidade à porta USB-C e inicie o computador no modo 1TR (SO de recuperação) pressionando e segurando o botão liga / desliga durante a inicialização. Depois que a linha de comando aparecer, você precisa executar o script linuxsetup.sh, que instalará o kernel e configurará o ambiente.

É quando o Linux começará a funcionar, enquanto para retornar o macOS, você deve executar o comando "bputil -n" no modo 1TR.

A construção pronta suporta USB, I2C e DART, sugere-se usar um adaptador USB externo para rede, enquanto a aceleração de hardware gráfico e periféricos estendidos ainda não são suportados. O suporte a Bluetooth requer a gravação de um novo driver devido ao uso de um protocolo baseado em PCIe não padrão.

fonte: https://corellium.com


O conteúdo do artigo segue nossos princípios de Ética editorial. Para relatar um erro, clique Clique aqui.

Seja o primeiro a comentar

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.