Pular para o conteúdo

Linux 7.4 adiciona suporte NVMe ao Apple M4 no pull de block

O pull de block do Linux 7.4 adiciona um driver para o controlador NVMe ANS2 do Apple M4, além de 33 correções para um antigo driver de disquete do Mac.

Por Tech AI Wire Team

4 min de leitura

XLinkedIn
A silver M4 Mac mini with the Apple logo on top sits on a wooden table, two USB-C ports and a headphone jack on its front.
Foto: Kyu3a / Wikimedia Commons, CC BY-SA 4.0

Em números

maximum queue depth the new driver sets for the M4 controller
64
fixes to the SWIM floppy driver for classic Macs
33
files changed by the 7.4 block pull
66

O Linux 7.4 integrou o suporte ao controlador de armazenamento NVMe do chip M4 da Apple, como parte do pull do subsistema block noticiado pelo Phoronix em 24 de outubro de 2026. O mesmo pull corrige drivers de disquete, incluindo um para os Macintosh clássicos. Para quem roda Linux no Apple Silicon, o driver do M4 é um passo necessário para ler e gravar no disco interno.

O que o pull de block contém

O subsistema block é a parte do kernel que cuida dos dispositivos de armazenamento: SSDs, discos rígidos e disquetes. Jens Axboe reúne as mudanças de block de cada versão e as envia a Linus Torvalds como um pull request.

O pull dele para a 7.4, com a tag "for-7.4/block-20261021", chegou ao ramo principal do kernel em 25 de outubro, segundo o commit de merge. Ele altera 66 arquivos, com 3.793 linhas adicionadas e 1.541 removidas. O resumo lista "Apple M4 (t8132) ANS2 NVMe support" entre as atualizações de NVMe reunidas por Keith Busch.

Mudança no pull de block da 7.4AutorO que corrige ou adiciona
Suporte NVMe ANS2 ao Apple M4Yureka LilianControlador de armazenamento do chip M4
Correção de memória do driver de disqueteDenis Efremov, OracleUm possível estouro da memória de pilha
Correção de regressão de disqueteDenis Efremov, OracleUm bug de uma reestruturação de 2017 das flags de unidade
Correções de condições de corrida de disqueteCen ZhangConflitos entre código rodando ao mesmo tempo
Correções do driver SWIMFinn Thain33 correções para o antigo controlador de disquete do Macintosh

As atualizações do io_uring, a interface rápida do kernel para entrada e saída assíncronas, também foram integradas neste período. O Phoronix não detalha essas mudanças.

Como o driver de armazenamento do M4 é diferente

NVMe é o padrão pelo qual SSDs rápidos conversam com um computador. O computador coloca comandos em filas de submissão e lê os resultados em filas de conclusão. ANS2 é o nome que o kernel usa para o controlador NVMe dentro do system-on-chip M4, cujo ID de chip é t8132.

O commit explica o que torna a versão do M4 incomum. "Esta variante exige que as filas de E/S sejam registradas usando gravações MMIO adicionais", diz o texto. MMIO, ou entrada/saída mapeada em memória, significa que o driver conversa com o hardware gravando em endereços de memória especiais.

Normalmente, um driver informa a um disco NVMe o tamanho de cada fila dentro do comando que a cria. No M4, esse campo de tamanho é ignorado. Em vez disso, o driver grava os tamanhos das filas em um registrador no deslocamento 0x1210. O kernel conhecia esse registrador antes como APPLE_ANS_MAX_PEND_CMDS_CTRL.

A mudança é pequena: um arquivo, 35 linhas adicionadas e 4 removidas no driver NVMe da Apple já existente. Ela define uma profundidade máxima de fila de 64 para o M4. Yureka Lilian a escreveu em 6 de setembro de 2026, Sven Peter a revisou e Keith Busch fez o commit. Uma mudança de uma linha adiciona a descrição de dispositivo "apple,t8132-nvme-ans2", aprovada por Conor Dooley.

O driver chega na mesma versão que os primeiros device trees para Macs com M4. Um device tree é um arquivo que diz ao kernel qual hardware uma máquina tem e onde encontrá-lo. Sven Peter, desenvolvedor do Asahi Linux, enviou device trees para seis Macs com M4, informou o Phoronix em 2 de outubro. São o MacBook Pro de 14 polegadas, dois iMacs de 24 polegadas, os MacBook Air de 13 e 15 polegadas e o Mac Mini. Eles cobrem só blocos básicos, como os núcleos da CPU, o controlador de interrupções, a porta serial e o framebuffer. A lista do Phoronix não inclui NVMe, e a GPU não está habilitada.

Correções de disquete, achadas por ferramentas e testadas em Macs antigos

O resto do pull lembra por quanto tempo o Linux mantém o hardware vivo. A correção de memória de Denis Efremov veio do KASAN, o Kernel Address Sanitizer. O KASAN é uma ferramenta de depuração que flagra código lendo ou gravando memória que não deveria tocar.

As correções de condições de corrida de Cen Zhang foram encontradas com "our tools" (nossas ferramentas), segundo o Phoronix. O site supõe que eram ferramentas de IA, mas nenhuma é nomeada.

Finn Thain, da comunidade que mantém o Linux rodando em Macs com processadores da família Motorola 68000, enviou 33 correções para o driver SWIM. SWIM é o controlador de disquete dos Macintosh clássicos. Ele as testou em um Mac Quadra 650, um Mac LC III, um Mac Quadra 700 e um Mac IIvx.

A janela de merge também trouxe um driver para o controle do Nintendo Switch 2 e flushes de workqueue mais rápidos para servidores grandes.

O que isso significa para desenvolvedores

O driver do M4 importa mais para a comunidade do Asahi Linux e para quem quer Linux em um Mac recente.

  • Não espere que Macs com M4 rodem Linux só com a 7.4. Os device trees da 7.4 bastam para começar a inicializar o kernel, segundo o Phoronix, e a maior parte do restante do hardware espera kernels futuros. O Asahi Linux, projeto que porta o Linux para o Apple Silicon, chegou ao suporte oficial ao M3 só em setembro, e ainda listava recursos faltando.
  • Acompanhe o caminho até o ramo principal. Este driver entrou no kernel oficial, não em um fork. Código que entra no ramo principal é revisado e mantido junto com todo o resto, o que ajuda as distribuições a incluí-lo.
  • Leia o commit se você escreve drivers. É um exemplo compacto de como tratar uma variante de hardware com uma flag em um driver existente, em vez de criar um novo.
  • Teste hardware antigo se ainda o usa. Se você mantém uma máquina Linux com unidade de disquete, a 7.4 muda os drivers de disquete e SWIM. Experimente as versões candidatas, começando pela 7.4-rc1.
  • Espere mais bugs achados por ferramentas. O KASAN achou uma correção e ferramentas sem nome acharam outras. Projetos que mantêm drivers antigos também deveriam rodar sanitizers nos próprios ambientes de teste.

Fontes

  1. Linux 7.4 Block Updates Range From Floppy Disk Driver Fixes To Apple M4 NVMe Support - Phoronix
  2. nvme: apple: add t8132 (M4) ANS2 NVMe support - Linux kernel (GitHub mirror)
  3. Linux 7.4 To Introduce Initial Device Trees For Apple M4, A18 Pro For MacBook Neo - Phoronix
  4. Merge tag 'for-7.4/block-20261021' of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux - Linux kernel (GitHub mirror)

Artigos relacionados