Estou tentando encontrar uma maneira de acessar e/ou controlar a velocidade do ventilador via Linux em um chipset Intel Q45 Express/ICH10DO . Este chipset contém um recurso chamado Intel Quiet System Technology (Intel QST), que faz parte do Intel Management Engine (Intel ME) executado em um coprocessador incorporado. A Intel descreve o QST da seguinte forma:
O Intel Management Engine (ME) hospeda um subsistema de firmware – Intel Quiet System Technology (QST) – que fornece suporte para o monitoramento de sensores de temperatura, tensão, corrente e velocidade do ventilador fornecidos no chipset, no processador e em outros dispositivos no Placa-mãe. Para cada sensor, um status de integridade, com base nos limites estabelecidos, será determinado em intervalos regulares. O Intel QST também oferece suporte para controle de velocidade do ventilador otimizado acusticamente. Com base nas leituras obtidas dos sensores de temperatura, o Intel QST determinará, ao longo do tempo, as velocidades ideais para operar os ventiladores de resfriamento disponíveis, a fim de abordar as condições térmicas existentes com o menor impacto acústico possível.
A folha de dados Intel ICH10 afirma:
5.24 Tecnologia de sistema silencioso Intel® (Intel® QST)
O ICH10 implementa três sinais PWM e 4 TACH para Intel Quiet System Technology (QST).
Nota: A funcionalidade Intel Quiet System Technology requer um sistema configurado corretamente, incluindo um (G)MCH apropriado com Intel ME, Firmware Intel ME e suporte ao BIOS do sistema.
Continua descrevendo as Saídas PWM, Entradas TACH e Sensores Térmicos.
Este artigo afirma que um driver Linux para Intel QST estava disponível em dezembro de 2012:
No início deste ano, houve suporte inicial para Intel QST em LM_Sensors, sendo anunciado agora um novo driver Intel QST para Linux. O código para este novo driver Quiet System Technology está atualmente no GitHub.
O código acima mencionado não estava realmente no github, mas sim em um repositório git hospedado de forma privada ( http://mose.dyndns.org/mei.git ) que usava o serviço extinto dyndns.org
.
Passei algum tempo procurando na fonte do kernel Linux (v4.16.7), mas até agora não encontrei nenhum vestígio desse driver.
- O suporte Intel QST já foi incluído no kernel do Linux?
- Em caso afirmativo, quais módulos de driver/kernel são necessários para o suporte ao Intel QST ?
Esta resposta documenta informações definitivas sobre o suporte do Linux para Intel QST, que foi montado rastreando arquivos da
lm-sensors
lista de discussão extinta e contatando diretamente os autores de algumas dessas mensagens. As informações aqui estão organizadas em ordem cronológica do desenvolvimento do suporte Linux QST.Histórico do suporte ao QST do Linux
Em fevereiro de 2010, o Intel QST SDK foi disponibilizado publicamente.
Uma postagem no fórum da Intel em junho de 2011 mencionou posteriormente que o driver HECI de www.openamt.org não era mais necessário para executar o SDK.
Uma mensagem de fevereiro de 2012 na
lm-sensors
lista de discussão mostrou o tipo de informação disponível através de uma versão modificada do Intel QST SDK (a " versão gigaplex ") e indicou quehwmon
o suporte QST seria bem-vindo, se pudesse ser implementado sem depender do QST SDK:Em dezembro de 2012, alguém havia desenvolvido exatamente esse driver, conforme evidenciado nesta mensagem no LKML:
O módulo foi desenvolvido originalmente para Linux 2.6.39, foi nomeado , e forneceu suporte para QST v1 implementando um driver mei
qst-hwmon
inteiro do zero. Houve mais discussão sobre um segundo módulo que implementaria suporte para QST v2.qst2-hwmon
Uma nota de março de 2013 na página de suporte de hardware hwmon indica que todas as tentativas conhecidas de implementar o suporte Linux para Intel QST aparentemente pararam:
No entanto, um relatório de bug de novembro de 2014 pelo desenvolvedor original
qst-hwmon
indicou que o driver ainda estava sendo trabalhado até 29 de novembro de 2014 e que havia sido portado para o Linux 3.14.18.Estado atual do suporte QST do Linux
O módulo do kernel qst-hwmon
Finalmente consegui rastrear a localização atual do repositório git para o módulo do kernel. Para obter uma cópia do código-fonte:
Este módulo do kernel ainda não chegou à fonte principal do kernel Linux (a partir do kernel 4.19).
O código compila de forma limpa para Linux 4.16.7, produzindo 4 módulos, que devem ser copiados para o diretório de módulos apropriado:
E atualize as dependências do módulo:
Em seguida, os módulos podem ser carregados:
E então você pode verificar se a
/sys/bus/intel-mei/devices/
pasta contém algumas entradas relevantes. No momento, isso não está funcionando para mim, mas acredito que seja devido ao driver Intel MEI padrão compilado no kernel.Mais trabalho será necessário para conseguir
lm_sensors
detectar oqst_hwmon
driver. Os arquivos da lista de discussão acima indicam que os lib-sensors podem precisar ser corrigidos para identificar corretamente ointel-mei
barramento fornecido por esses módulos.Atualização: estou em contato com o desenvolvedor do driver, então espero obter as instruções definitivas documentadas aqui em breve.
Abordagem alternativa usando Intel QST SDK e meifand
Aqui está um artigo (dezembro de 2015) sobre como controlar os ventiladores por meio da " versão gigaplex " do Intel QST SDK (fevereiro de 2012) e usar meifand ( não
lm-sensors
) como um processo daemon para acessar as informações do sensor.