Atualizar a bios não corrigiu meu comportamento de fã.

Atualizar a bios não corrigiu meu comportamento de fã.

Eu tenho um Dell G5 5590 com Ubuntu 18.04.4 LTS. A versão do BIOS é 1.11.1.

Meus ventiladores ligam e desligam constantemente por um período de 30 segundos (30 segundos em velocidade total, 30 segundos completamente desligados), mesmo sem qualquer carga do processador. Isso é muito chato e não tenho certeza se deveria ser assim, pois esperaria um controle de ventilador mais gradiente.

O que eu fiz:

  • Procurei nas configurações do BIOS, mas não encontrei nenhuma configuração relacionada ao controle do ventilador;
  • Eu instalei lm-sensors, configurei sensors-detecte coretempadicionei /etc/modules;
  • Instalei i8kutilse executei sudo modprobe i8k force=1, agora consigo ver a velocidade da ventoinha na psensorGUI, como na foto abaixo;
  • Eu instalei fancontrole tentei configurá-lo conforme descrito aqui:https://askubuntu.com/a/46135/762767- a pwmconfigferramenta é capaz de ligar e desligar meus ventiladores durante a calibração, porém, após a calibração diz:
No correlations were detected.
There is either no fan connected to the output of hwmon7/pwm1,
or the connected fan has no rpm-signal connected to one of
the tested fan sensors. (Note: not all motherboards have
the pwm outputs connected to the fan connectors,
check out the hardware database on http://www.almico.com/forumindex.php)

Além disso, mesmo que eu termine a pwmconfigconfiguração e execute o fancontrolserviço, não haverá alteração no comportamento do ventilador.

É assim que parece no psensor: insira a descrição da imagem aqui

Responder1

Atualizar a bios não corrigiu meu comportamento de fã.

Porém, ele reduziu permanentemente o desempenho do processador e, para alguns, elimina a capacidade de subtensão.

Veja como controlar manualmente seus ventiladores e definir uma curva de ventilador personalizada

Tenho um Dell G5 5590 com um i7-9750H e um RTX 2070MQ. Estou executando o Pop_OS 20.10, que é uma variante do Ubuntu e usa o systemd.

Pelo que eu sei, as atualizações do BIOS (pelo menos depois da versão 1.10, não posso falar antes disso) foram principalmente para corrigir falhas de segurança da arquitetura do processador Intel. As 'correções' exigiam prejudicar o processador de maneiras que reduzem permanentemente o desempenho, e o downgrade é bastante difícil e arriscado (bloqueado pela Dell, requer a geração de sua própria carga falsa de BIOS para ignorar e pode fazer com que o leitor de impressão digital nunca mais funcione). Eles também, pela minha experiência indo de 1,10 a 1,14 seguindo a resposta acima e o comentário na resposta acima e outros links, não alteram o perfil de ventoinha/térmico deste laptop.

Aqui está minha curva de temperatura, mesmo em modo inativo a 800 MHz, no BIOS 1.14 mais recente: insira a descrição da imagem aqui

Como você pode ver na parte inferior da imagem, minha temperatura oscila para cima e para baixo. No topo dessas oscilações, o ventilador liga em 'alta'/explosão máxima 4700 rpm, na parte inferior, o ventilador desliga em 0 rpm. Extremamente irritante. E idêntico ao que experimentei na BIOS 1.10.

atualização posterior: neste laptop, meu problema era usar monitores externos através da porta HDMI e miniDP - isso faz com que minha temperatura suba literalmente mais de 40 graus Celsius, tanto no Linux quanto no Windows, aparentemente um problema de driver da Nvidia. conectar meus monitores externos por meio de um hub usb-c a um hub HDMI duplo permite que meu computador fique a 47c sem ventiladores ligados, em modo inativo após uma inicialização limpa.

A Dell prejudica os ventiladores e só permite o controle de predefinições específicas, mas elas podem ser acessadas na medida do possível em seu hardware lendo estes links:

(atualização: a Dell parece não abrir o código do controle do ventilador, e o trabalho de engenharia reversa teve sucesso limitado; parece haver mais predefinições disponíveis para Windows do que consigo acessar no Linux.)

Como controlar a velocidade do ventilador? https://www.cyberciti.biz/faq/controlling-dell-fan-speeds-temperature-on-ubuntu-debian-linux/ https://mijorus.medium.com/thermal-tweaks-on-dell-laptops-running-linux-769c8c80022e https://wiki.archlinux.org/index.php/fan_speed_control#BIOS_overriding_fan_control https://github.com/TomFreudenberg/dell-bios-fan-control

(Observe que /etc/i8kutils/i8kmon.conf foi movido para /etc/i8kmon.conf em versões posteriores, eu acho, e é o que vejo agora em meu sistema de arquivos e na página de manual. Há também uma provisão na página de manual para especificar um arquivo conf em seu diretório inicial.)

Etapa 1: instalar e configurar

sudo apt install lm-sensors i8kutils -y
sudo modprobe i8k
if that doesn't work, which it did not for me, you may try:
# sudo modprobe i8k force=1
# (which seems to work for me?)
git clone https://github.com/TomFreudenberg/dell-bios-fan-control.git
cd dell-bios-fan-control
make
sudo mv dell-bios-fan-control /usr/bin/dell-bios-fan-control

Se você estiver tendo problemas com o i8k não funcionando, tente o seguinte:

sudo -i
echo "options i8k force=1"  >  /etc/modprobe.d/i8k.conf
echo i8k  >> /etc/modules
exit

Você também poderá ver melhores resultados se reiniciar o computador.

Se ainda estiver tendo problemas, você pode verificar os links mencionados acima e pesquisar mais com o modprobe.esse linktambém pode ajudar a orientá-lo.

Etapa 2: veja se funciona

Para realmente fazer isso entrar em vigor, precisaremos iniciar o serviço edesabilitar o controle do BIOS dos ventiladores, o que é obviamente muito perigoso. Um processador como este pode fritar sem possibilidade de reparo em 10 segundos de atividade em alta temperatura, então TENHA EXTREMAMENTE CUIDADO AQUI.

Meu conselho:

  1. open psensorou algum outro aplicativo gráfico de temperatura para que você possa ficar de olho nas temperaturas e estar pronto para agir se notar que as temperaturas estão subindo mais do que deveriam.
  2. teste e certifique-se de que você pode voltar ao controle do BIOS a qualquer momento executando dell-bios-fan-control 1(conformeaqui).
  3. Você pode definir um alarme psensorpara ser executado automaticamente dell-bios-fan-control 1quando uma determinada temperatura for atingida para ser mais seguro.
  4. se você observar a temperatura aumentando e não ouvir os ventiladores ligando ao executar esse comando, esteja pronto para desligar a energia rapidamente. Percebi neste laptop que um desligamento forçado ao segurar o botão liga / desliga é extremamente lento; portanto, para estar seguro aqui, você deve atualizar as configurações do botão liga / desliga do sistema operacional para 'desligar' em vez de 'hibernar'. (Acho que você não vai querer executar shutdown nowporque isso não eliminará a carga da CPU com rapidez suficiente, mas não tenho certeza.)
  5. ctrl+ alt+ printscrn/(sysreq) + bpode ser a maneira mais rápida de fazer com que o kernel seja reinicializado imediatamente. Pode haver uma maneira melhor.

Provavelmente isso é um exagero, mas... se você tem um laptop caro, esteja preparado. (Não seja paranóico, pois existem interruptores de segurança de hardware que desligam o laptop para se proteger contra superaquecimento.)

Agora que você está pronto,

sudo systemctl stop i8kmon.service 
sudo systemctl status i8kmon.service 

ok, vamos desabilitar o controle do BIOS agora - os ventiladores devem ficar silenciosos - e então ligá-los imediatamente 1- vamos testar quantas configurações de ventilador você realmente tem disponíveis e ter certeza disso está funcionando.

Execute estes comandos um por 1 e preste atenção ao seu sistema.

dell-bios-fan-control 0
# fans are now not being controlled by anything; are they quiet? 
# how are temps? You can watch for a second if desired.
dell-bios-fan-control 1
# let's turn it back on to make sure our failsafe works. With that settled,
# let's turn it back off
dell-bios-fan-control 0
# and let's manually set the fans on with i8kctl
i8kctl fan 1 1
# did fans turn on? let's see what RPM we're at:
i8kctl 
# you can spam this command a few times to get info. 
# the 7th and 8th values (will be in the thousands if fan is running, otherwise 0)
# are the left and right fan RPM.
# Now let's try and see if you hear different rpm's at different levels.
sudo i8kctl fan 2 2
# hear a difference? we can check again: 
i8kctl 
sudo i8kctl fan 3 3
i8kctl 
# did they all work? If not, not which ones did and didn't. For my G5 5590, I'm only seeing 0,1,2 work, which are 0rpm, 2200~ rpm, and 4740rpm.

Etapa 3: Definir a "curva" do ventilador

Agora você precisará definir a curva do leque. Fazemos isso editando este arquivo:

sudo nano /etc/i8kmon.conf

Agora você terá que editar esse arquivo de acordo com as características de aquecimento do seu computador. Consulte a página de manual e a documentação conforme necessário. A versão resumida é que as linhas que dizem isto:

set config(0) {{0 0} -1 55 -1 60}
set config(1) {{1 1} 45 80 45 80}
set config(2) {{2 2} 70 90 70 90}
set config(3) {{3 3} 80 128 80 128}

Você desejará ajustar esses valores de acordo com as características térmicas do seu laptop. Minha máquina em particular não pode ficar ociosa abaixo de 85, ponto final, então os ventiladores devem estar sempre ligados, então minha curva é ajustada de acordo. Depois de colar novamente, vou alterá-lo novamente, provavelmente para ficar em modo inativo silencioso.

(observe que o G5 5590 não suporta o estágio de potência três, apenas até o estágio de potência 2 - ainda assim, se você não incluir essa linha, certifique-se de testar se não quebra nada, i8kutils é sensível a coisas assim)

Para interpretar como escrever essas linhas, elas significam o seguinte:

# DO NOT COPY PASTE THESE LINES, ADDING COMMENTS AFTER BREAKS THIS CONFIG FILE
set config(0)   {{0 0}  -1  55  -1  60} # run fans at 0,0; above 55(ac) / 60(batt), move up to config(1)
set config(1)   {{1 1}  50  65  55  70} # run fans at 1,1; at 50(ac),55(batt) drop down to config(0); at 65(ac),70(batt) move up to config(2)
set config(2)   {{2 2}  60  75  65  80} # etc.                           
set config(3)   {{2 2}  70 128  75 128} # etc.    

NOTA: NÃO ADICIONE COMENTÁRIOS NAS MESMAS LINHAS DESTES COMANDOS, ADICIONE COMENTÁRIOS SOMENTE EM/DEPOIS DE NOVAS LINHAS.Além disso, as temperaturas máximas/mínimas definidas devem se sobrepor, de preferência em pelo menos 10 graus ou mais - consulte a página de manual se você não entender o porquê.

# set 
# config(configuration-number) 
# {
#  {speed-of-fan-n1 speed-of-fan-n2} 
#  drop-down-temp-AC                          
#  step-up-temp-AC                          
#  drop-down-temp-battery                       
#  step-up-temp-battery
# }
# 
# https://mijorus.medium.com/thermal-tweaks-on-dell-laptops-running-linux-769c8c80022e

fans at 0,0e fans at 1,1corresponde a estas linhas:

set status(leftspeed)   "0 1000 2000 3000" 
# 0=0rpm, 1=1000rpm, etc.
set status(rightspeed)  "0 1000 2000 3000" 
# same for right fan

# so 1,1 correponds to 1000rpm left fan,1000rpm right fan

(Observe que, novamente, no G5 (e acho que nem mesmo nas linhas de precisão, o que é uma loucura), a configuração manual do RPM do ventilador não é suportada, mas acho que é nas linhas XPS e Alienware - no entanto, isso disse, NÃO OMITE ESTAS LINHAS O programa vai rodar, mas os fãs nunca vão girar!)

que nos diga o que você vê nos comentários aqui. Presumo que os Alienware permitem esse recurso, e o XPS parece permitir, pelo que li brevemente - no entanto, a Dell prejudica artificialmente os fãs em tudo que não é sua máquina premium top de linha - até mesmo sua máquina semi-premium As linhas Precision e G5 (não tenho certeza sobre G7?) Não permitem configuração de rpm. legal, Dell.

Etapa 4: fãs como serviço

Agora, se você prestou atenção às suas temperaturas no passado, você pode tentar acessar o arquivo de configuração e configurá-lo para os níveis desejados e ativar o serviço systemd para i8kmon.

sudo systemctl status i8kmon.service 
sudo systemctl enable i8kmon.service 
sudo systemctl start i8kmon.service 

Agora, precisaremos também adicionar um processo systemd para garantir que o BIOS não assuma novamente quando reiniciarmos. Seguindoeste guia, basicamente faremos isso:

sudo nano /lib/systemd/system/dell-bios-fan-control.service

cole isso aí:

[Unit]
Description=Turn off bios control of fans

[Service]
Type=simple
ExecStart=/usr/bin/dell-bios-fan-control 0

[Install]
WantedBy=multi-user.target

então

sudo cp /lib/systemd/system/dell-bios-fan-control.service /etc/systemd/system/dell-bios-fan-control.service
 
sudo systemctl enable dell-bios-fan-control
sudo systemctl start dell-bios-fan-control

Você deve estar pronto para ir. Eu iria em frente e reiniciaria o computador e garantiria que ele funcionasse conforme o esperado. observar o psensor deve informar se ele está seguindo seus valores de configuração ou não.

Deixe-me saber se alguma coisa aqui não funcionar, estou escrevendo isso de uma forma realmente fora de ordem, depois de ter descoberto por tentativa e erro. Estou limpando isso com o tempo, à medida que solidifico minha compreensão disso.

Um problema evidente é que, por segurança, deve haver tratamento de erros no lançamento do serviço i8k que reativa o controle do BIOS se ele falhar ao iniciar.

Mesmo isso não seria uma garantia; Eu comentei as linhas 'fan rpm', porque o arquivo padrão indica que elas são desnecessárias e podem ser testadas, presumivelmente automaticamente, e esse recurso não é compatível com meu modelo (o G5 5590). O serviço parece começar bem, mas nunca conseguirá ativar os ventiladores. Como resultado, eu também recomendo ter outra temperatura à prova de falhas em outro aplicativo. Se/quando eu conseguir fazer isso, tentarei atualizar este guia.

Etapa 5: Comportamento de desligamento/segurança de inicialização dupla

Se você estiver com inicialização dupla, não terá nenhum ventilador funcionando em nenhuma outra distro onde não tenha adicionado o controle manual do ventilador - então, você superaqueceria e travaria. Para mudar isso, você deve adicionar um processo reverso para devolver o controle ao BIOS no desligamento, assim:

sudo nano /lib/systemd/system/dell-bios-fan-control-reverse.service
[Unit]
Description=Turn fan control back over to bios at shutdown, in case of windows boot, or i8k >

[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=/usr/bin/dell-bios-fan-control 1

[Install]
WantedBy=multi-user.target

então

sudo cp /lib/systemd/system/dell-bios-fan-control-reverse.service /etc/systemd/system/dell-bios-fan-control-reverse.service
 
sudo systemctl enable dell-bios-fan-control-reverse
sudo systemctl start dell-bios-fan-control-reverse

Responder2

Atualize da versão 1.11.1 do BIOS para a mais recenteBIOS, 1.12.0, Para o seuNotebook Dell G5 5590, para resolver o problema dos ventiladores, já que o controle dos ventiladores passa pelo BIOS mesmo que não haja controles que você possa ajustar nele (ainda).

A última afirmação é baseada nas três primeiras postagens que encontrei em uma pesquisa na web sobre o assunto, que indicam um problema com usuários que executam o Windows 10 e também o Linux; daí meu pensamento de que o BIOS está envolvido.

https://www.reddit.com/r/Dell/comments/ag5d4p/dell_g5_manual_fan_control_utility/

https://www.dell.com/community/Inspiron/Dell-G5-15-5590-fan-control/td-p/7390514

https://www.dell.com/community/Inspiron/Annoying-fan-speed-oscillation-on-DELL-G5-5590/td-p/7403566

Responder3

acho que encontrei a solução, mas este trabalho no meu laptop DELL latitude olha aqui não está definido em $etc/fancontrol doc

# Configuration file generated by pwmconfig, changes will be lost
INTERVAL=0000.1
DEVPATH=hwmon3= hwmon4=devices/pci0000:00/0000:00:03.0/0000:01:00.0
DEVNAME=hwmon3=dell_smm hwmon4=nouveau
FCTEMPS= hwmon3/pwm1=hwmon4/temp1_input
FCFANS= hwmon3/pwm1=
MINTEMP= hwmon3/pwm1=30
MAXTEMP= hwmon3/pwm1=60
MINSTART= hwmon3/pwm1=150
MINSTOP= hwmon3/pwm1=10
MAXPWM= hwmon3/pwm1=250

FCFANS está vazio, escrevi FCFANS= hwmon3/pwm1=1

e isso é trabalho!!

informação relacionada