
Tengo una Dell G5 5590 con Ubuntu 18.04.4 LTS. La versión del BIOS es 1.11.1.
Mis ventiladores se encienden y apagan constantemente con un período de 30 segundos (30 segundos a máxima velocidad, 30 segundos completamente apagados), incluso sin ninguna carga del procesador. Esto es muy molesto y no estoy seguro de que deba ser así, ya que esperaría un control del ventilador más degradado.
Lo que hice:
- Busqué en la configuración del BIOS, pero no encontré ninguna configuración relacionada con el control del ventilador;
- Lo instalé
lm-sensors
, lo configurésensors-detect
ycoretemp
lo agregué/etc/modules
; - Lo instalé
i8kutils
y ejecutésudo modprobe i8k force=1
, ahora puedo ver la velocidad del ventilador enpsensor
la GUI, como en la imagen a continuación; - Lo instalé
fancontrol
e intenté configurarlo como se describe aquí:https://askubuntu.com/a/46135/762767- lapwmconfig
herramienta puede apagar y encender mis ventiladores durante la calibración, sin embargo, después de la calibración dice:
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)
Además, incluso si termino la pwmconfig
configuración y ejecuto el fancontrol
servicio, no hay ningún cambio en el comportamiento del ventilador.
Respuesta1
Actualizar la BIOS no solucionó el comportamiento de mi fan.
Sin embargo, redujo el rendimiento del procesador de forma permanente y, para algunos, elimina la capacidad de subvoltaje.
Aquí se explica cómo controlar manualmente sus ventiladores y establecer una curva de ventilador personalizada.
Tengo una Dell G5 5590 con un i7-9750H y una RTX 2070MQ. Estoy ejecutando Pop_OS 20.10, que es una variante de Ubuntu y usa systemd.
Hasta donde puedo decir, las actualizaciones de la BIOS (al menos después de 1.10, no puedo informarle antes) fueron principalmente para corregir fallas de seguridad en la arquitectura del procesador Intel. Las 'soluciones' requirieron perjudicar el procesador de manera que reduzcan permanentemente el rendimiento, y la degradación es bastante difícil y arriesgada (bloqueada por Dell, requiere generar su propia carga útil de BIOS falsa para evitarlo y puede hacer que el lector de huellas digitales nunca vuelva a funcionar). Además, según mi experiencia al pasar de 1.10 a 1.14 siguiendo la respuesta anterior y el comentario sobre la respuesta anterior y otros enlaces, no cambian el perfil térmico/de ventilador de esta computadora portátil.
Aquí está mi curva de temperatura, incluso en reposo a 800 mhz, en la última BIOS 1.14:
Como puede ver en la parte inferior de la imagen, mi temperatura simplemente sube y baja. En la parte superior de esas oscilaciones, el ventilador se enciende a "alto"/máximo 4700 rpm, en la parte inferior, el ventilador se apaga a 0 rpm. Extremadamente irritante. E idéntico a lo que experimenté en BIOS 1.10.
Actualización posterior: en esta computadora portátil, mi problema fue usar monitores externos a través del puerto hdmi y miniDP; hacer esto hace que mis temperaturas aumenten literalmente más de 40 grados centígrados, tanto en Linux como en Windows, aparentemente un problema con el controlador nvidia. En cambio, conectar mis monitores externos a través de un USB-C a un concentrador HDMI dual permite que mi computadora se mantenga a 47 °C sin ventiladores encendidos, en modo inactivo después de un arranque limpio.
Dell perjudica a los ventiladores y solo permite el control de ajustes preestablecidos específicos, pero se puede acceder a ellos en la medida de lo posible en su hardware leyendo estos enlaces:
(Actualización: parece que Dell simplemente no abre el código fuente del control del ventilador, y el trabajo de ingeniería inversa ha tenido un éxito limitado; parece que hay más ajustes preestablecidos disponibles para Windows de los que puedo acceder en Linux).
¿Cómo controlar la velocidad del 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
(Tenga en cuenta que /etc/i8kutils/i8kmon.conf se trasladó a /etc/i8kmon.conf en versiones posteriores, creo, y es lo que veo ahora en mi sistema de archivos y en la página de manual. También hay una disposición en la página de manual para especificar un archivo conf en su directorio de inicio).
Paso 1: instalar y 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
Si tienes problemas porque i8k no funciona, puedes intentar esto:
sudo -i
echo "options i8k force=1" > /etc/modprobe.d/i8k.conf
echo i8k >> /etc/modules
exit
Es posible que también vea mejores resultados si reinicia su computadora.
Si aún tiene problemas, puede consultar los enlaces mencionados anteriormente y explorar más con modprobe.este enlaceTambién puede ayudarte a guiarte.
Paso 2: vea si funciona
Para que esto entre en vigor, necesitaremos iniciar el servicio ydeshabilite el control de la bios de los ventiladores, lo cual obviamente es muy peligroso. Un procesador como este puede freírse sin posibilidad de reparación en 10 segundos de actividad a alta temperatura, así que TENGA MUCHO CUIDADO AQUÍ.
Mi consejo:
- abra
psensor
o alguna otra aplicación gráfica de temperatura para que pueda controlar las temperaturas y estar preparado para actuar si ve que las temperaturas aumentan más de lo que deberían. - Pruebe y asegúrese de que puede volver al control del BIOS en cualquier momento ejecutando
dell-bios-fan-control 1
(segúnaquí). - Puede configurar una alarma
psensor
para que se ejecute automáticamentedell-bios-fan-control 1
cuando se alcance una determinada temperatura para mayor seguridad. - Si ves que la temperatura aumenta y no escuchas que los ventiladores se encienden cuando ejecutas ese comando, prepárate para cortar la energía rápidamente. He notado en esta computadora portátil que un apagado forzado al mantener presionado el botón de encendido es extremadamente lento, por lo que para estar seguro aquí, debe actualizar la configuración del botón de encendido del sistema operativo para "apagar" en lugar de "suspensión". (Creo que no querrás ejecutarlo
shutdown now
porque eso no eliminará la carga de la CPU lo suficientemente rápido, pero no estoy seguro). ctrl
+alt
+printscrn
/(sysreq) +b
podría ser la forma más rápida de hacer que el kernel se reinicie inmediatamente. Puede que haya una mejor manera.
Probablemente sea excesivo, pero... si tienes una computadora portátil costosa, prepárate. (Sin embargo, no sea paranoico, ya que existen interruptores de seguridad de hardware que apagarán la computadora portátil para protegerse del sobrecalentamiento).
Ahora que estás listo,
sudo systemctl stop i8kmon.service
sudo systemctl status i8kmon.service
Bien, ahora vamos a desactivar el control de la BIOS (los ventiladores deben silenciarse) y luego encenderlos inmediatamente. 1
Vamos a probar cuántas configuraciones de ventilador tienes realmente disponibles y asegurarnos de que así sea. está trabajando.
Ejecute estos comandos 1 por 1 y preste atención a su 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.
Paso 3: Configuración de la "curva" del ventilador
Ahora necesitarás configurar la curva de tu ventilador. Lo hacemos editando este archivo:
sudo nano /etc/i8kmon.conf
Ahora tendrás que editar ese archivo de acuerdo con las características térmicas de tu computadora. Consulte la página de manual y la documentación según sea necesario. La versión corta es que las líneas que dicen esto:
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}
Querrá ajustar estos valores de acuerdo con las características térmicas de su computadora portátil. Mi máquina en particular no puede funcionar en ralentí por debajo de 85, punto, por lo que los ventiladores tienen que estar siempre encendidos, por lo que mi curva se ajusta en consecuencia. Una vez que vuelva a pegar, probablemente lo cambiaré nuevamente para obtener un inactivo silencioso.
(tenga en cuenta que el G5 5590 no admite la etapa de potencia tres, solo hasta la etapa de potencia 2; aún así, si no va a incluir esa línea, asegúrese de probar que no rompa nada, i8kutils es sensible a las cosas como eso)
Para interpretar cómo se escriben estas líneas, significan esto:
# 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: NO AGREGUE COMENTARIOS EN LAS MISMAS LÍNEAS QUE ESTOS COMANDOS, AGREGUE COMENTARIOS SÓLO EN/DESPUÉS DE LAS NUEVAS LÍNEAS.Además, las temperaturas máxima/mínima establecidas deben superponerse, preferiblemente en al menos 10 grados aproximadamente; consulte la página de manual si no comprende por qué.
# 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,0
y fans at 1,1
corresponde a estas líneas:
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
(Tenga en cuenta que, nuevamente, en el G5 (y creo que ni siquiera en las líneas de precisión, lo cual es una locura), no se admite la configuración manual de las RPM del ventilador, pero creo que sí lo es en las líneas XPS y Alienware; sin embargo, eso dijo, NO OMITIR ESTAS LÍNEAS ¡El programa se ejecutará, pero los ventiladores nunca girarán!)
que nos dicen lo que ves en los comentarios aquí. Supongo que los Alienware permiten esta característica, y el XPS parece que sí por lo que leí brevemente; sin embargo, Dell perjudica artificialmente a los fanáticos en todo lo que no sea su máquina premium de primera línea, incluso su semi-premium. Las líneas de precisión y G5 (¿no estás seguro acerca de G7?) no permiten el ajuste de rpm. Buenísimo, Dell.
Paso 4: Fans como servicio
Ahora, si ha prestado atención a sus tiempos en el pasado, puede intentar ingresar al archivo de configuración y configurarlo en los niveles que desee, y activar el servicio systemd para i8kmon.
sudo systemctl status i8kmon.service
sudo systemctl enable i8kmon.service
sudo systemctl start i8kmon.service
Ahora, también necesitaremos agregar un proceso systemd para asegurarnos de que la BIOS no vuelva a tomar el control cuando reiniciemos. Siguienteesta guía, básicamente haremos esto:
sudo nano /lib/systemd/system/dell-bios-fan-control.service
pega esto ahí:
[Unit]
Description=Turn off bios control of fans
[Service]
Type=simple
ExecStart=/usr/bin/dell-bios-fan-control 0
[Install]
WantedBy=multi-user.target
entonces
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
Usted debe ser bueno para ir. Sin embargo, continuaría y reiniciaría la computadora y me aseguraría de que funcione como se esperaba. Ver psensor debería indicarle si está siguiendo sus valores de configuración o no.
Avíseme si algo aquí no funciona. Estoy escribiendo esto de una manera realmente desordenada después de haberlo descubierto mediante prueba y error. Lo estoy limpiando con el tiempo a medida que consolido mi comprensión de esto.
Un problema claro y evidente es que, por seguridad, debería haber un manejo de errores al iniciar el servicio i8k que vuelva a activar el control del BIOS si no se inicia.
Incluso eso no sería una garantía; Comenté las líneas de 'rpm del ventilador', porque el archivo predeterminado indica que no son necesarias y se pueden probar, presumiblemente automáticamente, y esa característica no es compatible con mi modelo (el G5 5590). El servicio parece comenzar bien, pero nunca logra activar los ventiladores. Como resultado, también recomendaría tener otra temperatura a prueba de fallas en otra aplicación. Cuando pueda hacer esto, intentaré actualizar esta guía.
Paso 5: Comportamiento de apagado/seguridad de arranque dual
Si realiza un arranque dual, no tendrá ningún ventilador funcionando en ninguna otra distribución en la que no haya agregado control manual del ventilador, por lo que se sobrecalentaría y fallaría. Para cambiar eso, debe agregar un proceso inverso para devolver el control a la BIOS al apagar, como este:
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
entonces
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
Respuesta2
Actualice desde la versión 1.11.1 del BIOS a la últimaBIOS, 1.12.0, para tuPortátil Dell G5 5590, para resolver el problema del ventilador, ya que el control de los ventiladores pasa por el BIOS aunque no hay controles que puedas ajustar en él (todavía).
La última afirmación se basa en las primeras tres publicaciones que encontré con una búsqueda en la web sobre el tema, que indican un problema con los usuarios que ejecutan Windows 10 y Linux; de ahí mi opinión de que el BIOS está involucrado.
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
Respuesta3
Creo que encontré la solución, pero esto funciona en mi computadora portátil DELL Latitude. Mire aquí no está definido en el documento $etc/fancontrol.
# 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á vacío. Me escribieron FCFANS = hwmon3/pwm1 = 1.
y eso es trabajo!!