David Rheinsberg, da Red Hat, que contribui com systemd, BUS1, KMSCON e outros projetos ao longo dos anos, está liderando um esforço para que os alvos de firmware UEFI da Rust sejam promovidos para uma classe de nível 2.
A linguagem de programação Rust atualmente suporta alvos UEFI para AArch64, i686 e x86_64 para que seja possível construir aplicativos Rust UEFI. Para habilitar o Rust para o desenvolvimento de firmware, ele espera ver esses alvos UEFI promovidos das classificações de suporte Tier-3 para Tier-2 do Rust. Além do desenvolvimento do systemd e outras funções, David é um dos mantenedores do Rust UEFI junto com Nicholas Bishop do Google.
Alvos de firmware Rust UEFI procuram uma promoção para o nível 2
Rust Tier-3 é o nível de classificação mais baixo para obter alvos mesclados no upstream. Mas os alvos de Tier-3 não têm nenhuma compilação oficial do compilador nos canais de lançamento do Rust, não têm garantias de integração contínua (CI) do Rust e forçam os usuários a usar compilações de compilador noturnas/instáveis.
David Rheinsberg espera que os alvos Rust UEFI sejam promovidos para o nível 2 para que possam desfrutar de compilações automáticas através dos canais de lançamento do Rust e não exigir mais compilações noturnas/instáveis.
As compilações automáticas de CI também devem ajudar a garantir um bom suporte para aqueles que desejam usar a linguagem de programação Rust para desenvolvimento de firmware UEFI. Essa promoção, por sua vez, deve tornar muito mais fácil começar a usar a linguagem de programação Rust para começar a trabalhar no desenvolvimento de firmware do sistema UEFI.
Rheinsberg resumiu sua proposta através desta postagem no blog. Ele também abriu o Rust UEFI MCP com a equipe do compilador para facilitar essa promoção.
Árvores de dispositivos Apple M1 Pro/Max/Ultra em análise para Linux
Os arquivos Device Tree (DT) necessários para o kernel Linux para Apple Macs alimentados pelos M1 Pro, Max e Ultra SoCs foram enviados na lista de discussão do kernel para revisão e trabalhando para upstream.
Isso faz parte do trabalho de habilitação para fazer com que os dispositivos Apple M1 Pro/Max/Ultra funcionem com o kernel Linux upstream. Graças ao projeto Asahi Linux e sua distribuição corrigida baseada no Arch Linux, já é possível executar esses dispositivos Apple Mac mais recentes alimentados pelas partes M1 de ponta enquanto o esforço de upstreaming para o kernel continua em andamento.
Os patches de “solicitação de comentários” enviados na sexta-feira adicionam os arquivos necessários da Árvore de dispositivos para os SoCs Apple M1 Pro, Max e Ultra, mas ainda assim esse não é o último trabalho de ativação. Janne Grunau comentou ao enviar os patches do DT:
Mesmo com o suporte a t6000-dart, os dispositivos t600x não são muito úteis em upstream. Não há suporte para dispositivos de entrada. O teclado e o touchpad do laptop não possuem drivers SPI e HID sobre SPI. As portas USB-C dwc3 ainda não foram adicionadas, pois requerem manuseio especial após a desconexão. O controlador xhci USB baseado em PCIe no Mac Studio requer o download do firmware de maneira semelhante ao USB_XHCI_PCI_RENESAS.
Além de muitos patches não serem upstream, um dos grandes bloqueadores para o uso diário do hardware Apple M1 e M2 no Linux continua sendo o suporte à aceleração de GPU. Há esperança para o OpenGL 2.1 em seu driver de engenharia reversa de código aberto até o final do ano civil, mas mesmo assim provavelmente ainda levará mais tempo até ser upstream… a linguagem de programação Rust, então, por sua vez, também precisa da infraestrutura Rust pronta e upstream no kernel.
É um processo longo e contínuo para fazer com que os dispositivos da Apple da Apple funcionem bem no Linux. Os bits mais recentes para upstreaming são os arquivos DT para os chips M1 de ponta em uso por empresas como Apple Mac Studio (foto).
Os interessados ??nos patches DT podem vê-los na lista de discussão do kernel.
Aqueles que se perguntam sobre o suporte downstream atual para Linux no Apple M1/M2 ao usar o Asahi Linux podem ver sua página Wiki para a matriz de recursos atual.