Módulo do kernel do FreeBSD para controlar a velocidade do ventilador

3

Eu tenho tentado obter uma caixa FreeBSD (rodando FreeNAS) para controlar seus fãs. Ele quer apenas executá-los em alta velocidade, embora as temperaturas do sistema sejam bastante baixas. O pacote lm-sensors pode fazer isso no Linux, mas não está disponível no FreeBSD.

Eu encontrei esta pergunta semelhante aqui, mas não houve resposta.

Existe algum módulo do kernel que eu possa carregar para fazer isso no FreeBSD?

    
por dwilliss 20.09.2017 / 16:07

2 respostas

3

ACPI

Sim. Se o seu hardware suporta Advanced Configuration and Power Interface (ACPI), então existem módulos carregáveis para ACPI apoio.

Infelizmente, a maioria (se não todos) os módulos são alvejando laptops.

Você pode ver se tem alguma configuração relacionada aos fãs que usam sysctl :

# sysctl hw.acpi

Mas, em vez de ajustar manualmente a velocidade do ventilador, ele deve ser ajustado automaticamente de acordo com a temperatura e a carga. No FreeBSD isso é tratado pelo powerd que está desabilitado por padrão.

Assim, mesmo que os ventiladores não sejam expostos diretamente, você poderá ajustá-los, mas ajustando a frequência da CPU. Alguns BIOS então ajustam a velocidade do ventilador de acordo (se dentro da faixa de temperatura razoável também).

Exemplo de configuração em /etc/rc.conf

powerd_enable="YES"
powerd_flags="-a adaptive"
performance_cx_lowest="C2"      # Online CPU idle state
performance_cpu_freq="1399"     # Online CPU frequency
economy_cx_lowest="C3"          # Offline CPU idle state
economy_cpu_freq="NONE"         # Offline CPU frequency

O sysctl hw.acpi também será exibido se qualquer uma das configurações acima puder entrar em vigor.

IPMI

Se você não tiver sorte na rota da ACPI, talvez a Interface de gerenciamento inteligente da plataforma (IPMI) possa ser útil para você. No entanto, isso normalmente só está disponível em placas-mãe de servidor com um BMC.

Quando o servidor é inicializado, os ventiladores são executados nas velocidades padrão do BIOS até que o SO assuma o controle. Se o sistema operacional não assumir (ou seja, usando ACPI), a CPU e os ventiladores geralmente são executados a todo vapor. Embora os limites não estejam diretamente disponíveis na tela de configuração do BIOS, em vários casos, isso pode ser definido usando o IPMI.

O FreeBSD tem um driver IPMI e você pode instalar sysutils / ipmitool para brincar com as configurações.

O seguinte snippet de servethehome.com deve funcionar para algumas placas SuperMicro (X9 / X10 / X11):

#set fan mode to "full"
ipmitool raw 0x30 0x45 0x01 0x01
#set fans in "system" zone to 37.5%
ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x24
#set fans in "peripheral" zone to 25%
ipmitool raw 0x30 0x70 0x66 0x01 0x01 0x16

OBSERVAÇÃO: O modo de ventoinha é ajustado para cheio no início, já que o BMC não parece mudar a velocidade do ventilador se não.

Hardware

Se tudo mais falhar, compre um controlador de ventoinha de hardware barato: -).

    
por 21.09.2017 / 13:29
0

Parece que o que você está vendo é o resultado de um BMC diferente sendo usado no X9 vs. X10 / X11. O X9 só pode emitir comandos brutos para alterar o modo de ventilador - uma string de 4 valores (conforme resumido abaixo); Considerando que as placas X10 / 11 podem levar uma seqüência de 6 valores para controlar adicionalmente a zona do ventilador e o ciclo de trabalho.

# Set fan mode: raw 0x30 0x45 0x01 [x]
# [x] Modes:      CPU Zone  Peripheral Zone
#                 Target    Target 
# -------------   --------  ---------------
# 00  Standard    50%      50%
# 01  Full        100%     100%
# 02  Optimal     30%      30%
# 04  Heavy I/O   50%      75%
    
por 03.05.2018 / 15:14