Novo patch para o Kernel Linux traz suporte ao RGB do Asus ROG Strix Arion via comandos SCSI

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...

RGB do Asus ROG no Linux é uma realidade!

Um novo patch submetido para a lista de discussão do Kernel Linux propõe a adição de suporte para o controle de iluminação RGB em cases externos para SSDs NVMe da linha Republic of Gamers (ROG), da Asus. O código, enviado pelo desenvolvedor Liang Haowen na forma de um Request for Comments (RFC), tem como alvo principal o modelo ROG STRIX Arion.

O que torna o driver particularmente interessante do ponto de vista da engenharia é o método utilizado pela fabricante para gerenciar os LEDs: em vez de adotar uma interface USB tradicional para periféricos, a iluminação é controlada por meio de comandos de armazenamento SCSI enviados diretamente ao controlador do disco.

Como o RGB funciona dentro de um protocolo de armazenamento

Geralmente, dispositivos com iluminação RGB conectados via USB utilizam a classe HID (Human Interface Device) para receber instruções do sistema operacional sobre quais cores e efeitos exibir. No entanto, o ROG STRIX Arion se apresenta ao sistema puramente como um dispositivo de armazenamento em massa (BOT e UAS), sem nenhuma interface HID exposta.

IHiCXfTp patch kernel linux rgb asus rog strix arion 1
Novo patch para o Kernel Linux traz suporte ao RGB do Asus ROG Strix Arion via comandos SCSI 3

Para contornar essa arquitetura, os comandos da iluminação Aura RGB precisam ser empacotados como operações de disco. Os LEDs são gerenciados por um controlador da ENE Technology, que é acessado através de comandos SCSI proprietários enviados para a mesma unidade lógica (LUN) onde os dados do SSD trafegam.

Na prática, o driver desenvolvido por Haowen registra um manipulador de dispositivo SCSI que identifica o hardware pelas strings de fábrica (fabricante “ROG”, modelo “ESD-S1C”). Após o reconhecimento, o sistema expõe os quatro LEDs independentes do case no diretório /sys/class/leds, permitindo o controle individual de cada zona de iluminação.

O desafio técnico e as limitações do kernel

Durante o desenvolvimento, o autor do patch encontrou uma limitação na forma como o subsistema SCSI do Kernel Linux lida com comandos proprietários. O protocolo da ENE exige um bloco descritor de comando (CDB) de 16 bytes. No entanto, a função padrão do kernel usada para executar esses comandos (scsi_execute_cmd()) mapeia o código de operação da Asus para apenas 10 bytes, descartando silenciosamente o restante da instrução e resultando em falha na mudança de cor.

A solução encontrada foi contornar a função padrão e construir a requisição de bloco manualmente, forçando o tamanho correto de 16 bytes. Essa descoberta técnica foi documentada no patch para alertar outros desenvolvedores que tentarem implementar instruções SCSI proprietárias semelhantes no futuro.

Alerta de integridade: risco de desgaste na memória flash

Embora o código já seja funcional em hardware real, a submissão traz um alerta crítico sobre o comportamento do controlador.

Atualmente, para que uma nova configuração de cor seja aplicada com sucesso, o driver precisa emitir um comando de “Salvar” (código 0xaa). O problema é que esse comando grava a configuração diretamente na memória flash interna do próprio case (não no SSD NVMe armazenado nele).

Como memórias flash possuem um limite físico de ciclos de gravação, o autor adverte que o desgaste ainda não foi devidamente caracterizado. Em termos práticos, isso significa que usar softwares para sincronizar efeitos dinâmicos rápidos — como ondas de arco-íris ou reatividade a áudio, que alteram as cores dezenas de vezes por segundo — pode esgotar a vida útil da memória do case e danificar permanentemente seu controlador de iluminação.

Próximos passos e integração

Por se tratar de um RFC, o código ainda não está pronto para ser integrado à ramificação principal (mainline) do Kernel Linux. A proposta atual faz parte de um esforço maior, coordenado com outros desenvolvedores como Denis Benato e Armin Wolf, para unificar a interface do ecossistema Asus Aura no Linux.

A arquitetura final planejada dividirá as responsabilidades: o transporte SCSI ficará no diretório de drivers apropriado (drivers/scsi), enquanto o controle visual ficará com o subsistema de LEDs (drivers/leds). Até que essas discussões e revisões de código sejam concluídas e o problema de desgaste da flash seja mitigado, o suporte nativo e estável aos cases RGB da Asus ainda levará algum tempo para chegar aos usuários finais.

Compartilhe este artigo
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre GNU/Linux, Software Livre e Código Aberto, dedica-se a descomplicar o universo tecnológico para entusiastas e profissionais. Seu foco é em notícias, tutoriais e análises aprofundadas, promovendo o conhecimento e a liberdade digital no Brasil.