web-dev-qa-db-fra.com

Impossible de configurer la vitesse du ventilateur avec pwmconfig!

J'ai un ordinateur portable ASUS TP301UJ avec double démarrage et mon ventilateur est tout à fait bruyant tout le temps. J'essaie de configurer la vitesse de mon ventilateur dans Ubuntu (je l'ai fait facilement sous Windows 10), mais j'ai des problèmes.

Voici ce que j'ai fait:

  1. J'ai installé lm-sensor, psensor et fancontrol. psensor a bien fonctionné et a lu la vitesse du ventilateur et toutes les températures.

  2. Ran Sudo sensors-detect qui a seulement dit que je devais ajouter coretemp à /etc/modules. coretemp était déjà dans les modules donc je n'ai rien fait.

  3. Redémarré. Ran Sudo pwmconfig et il a produit:

    Trouvé les appareils suivants:
    hwmon0 est acpitz
    hwmon1 est coretemp
    hwmon2 est asus

    Trouvé les contrôles PWM suivants:
    valeur actuelle hwmon2/pwm1:

    hwmon2/pwm1 est actuellement configuré pour le contrôle automatique de la vitesse.
    En général, le mode automatique est préféré au mode manuel, car il est plus efficace et il réagit plus rapidement. Êtes-vous sûr de vouloir configurer cette sortie pour un contrôle manuel? (n)

  4. Entré "y" et la sortie était:

    Donner aux fans un peu de temps pour atteindre leur pleine vitesse ...

    Trouvé les capteurs de ventilateur suivants:
    hwmon2/fan1_input vitesse actuelle: 0 ... saut!
    Il n'y a pas de capteurs de ventilateur qui fonctionnent, toutes les lectures sont 0.

    Assurez-vous qu'un ventilateur à 3 fils est connecté.
    Vous devrez peut-être également augmenter les diviseurs de ventilateur.
    Voir doc/fan-divisors pour plus d'informations.

Donc mon ventilateur entre en "mode manuel" et commence à tourner à pleine vitesse mais pwmconfig se ferme, laissant mon ventilateur tourner à pleine vitesse. Modification du nombre dans /sys/class/hwmon/hwmon2/pwm1_enable de 1 à 2, le rend automatique à nouveau.

Voici mon problème (je pense): Lorsque mon ventilateur est en "mode manuel" , sensors affiche -1 comme sa vitesse. Il n'est pas détecté! Mais en mode automatique , il n'y a aucun problème. Cela me rend impossible de configurer le ventilateur avec pwmconfig.

J'ai déjà essayé d'ajouter acpi_enforce_resources=lax à la variable GRUB_CMDLINE_LINUX_DEFAULT dans le fichier grub. Le résultat est le même.

Que devrais-je faire?

4
João Bravo

Commencez par man fancontrol pour avoir une idée des variables pouvant être utilisées dans /etc/fancontrol. Vous aurez besoin des éléments suivants lors de la construction de la configuration: INTERVAL, FCTEMPS, FCFANS, MINTEMP, MAXTEMP, MINSTART, MINSTOP.

# Checks the temperature every 10 seconds.
INTERVAL=10
# Maps a fan to a temp sensor, each separated by a space 
FCTEMPS=fanpath=temppath fanpath2=temppath2
# Maps a fan to the fan speed sensor
FCFANS=fanpath=fanspeedpath fanpath2=fanspeedpath2
# The temperature below which the fan gets switched to minimum speed.
MINTEMP=fanpath=degreesC fanpath2=degreesC2
# The temperature over which the fan gets switched to maximum speed.
MAXTEMP=fanpath=degreesC fanpath2=degreesC2
# Sets the minimum speed at which the fan begins spinning.
MINSTART=fanpath=minspeed fanpath2=minspeed2
#The minimum speed at which the fan still spins.
MINSTOP=fanpath=minspeed fanpath2=minspeed2

Échantillon réel:

INTERVAL=10
FCTEMPS=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm5=/sys/devices/platform/coretemp.0/hwmon/hwmon[[:print:]]*/temp3_input /sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm4=/sys/devices/platform/coretemp.0/hwmon/hwmon[[:print:]]*/temp3_input /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon[[:print:]]*/pwm1=/sys/devices/platform/coretemp.0/hwmon/hwmon[[:print:]]*/temp3_input
FCFANS=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm5=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/fan5_input /sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm4=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/fan4_input /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon[[:print:]]*/pwm1=
MINTEMP=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm5=55 /sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm4=50 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon[[:print:]]*/pwm1=55
MAXTEMP=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm5=60 /sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm4=60 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon[[:print:]]*/pwm1=60
MINSTART=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm5=70 /sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm4=70 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon[[:print:]]*/pwm1=70
MINSTOP=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm5=90 /sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm4=90 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon[[:print:]]*/pwm1=90

Les [[: print:]] représentent le numéro hwmon. Vous pouvez utiliser le nombre réel ou le [[: print:]], parfois le nombre change entre les bottes et le [[: print:]] lui permet de trouver le bon numéro hwmon.

Le problème sera FCFANS, si fan1_input a des données valides, et sinon, si fancontrol continuera à fonctionner sans cela.

Alternativement, vous pouvez essayer d'écrire votre propre script qui définirait la valeur de hwmon2/pwm1, il se situe entre 0 et 255.

2
rtaft

Le nct6775 a la possibilité de contrôler le ventilateur dans le matériel. Il permet de définir une certaine source de température comme entrée, puis de contrôler les ventilateurs par étapes en fonction de la température. Aucun script n'est donc nécessaire à part le chargement des paramètres de la puce. L'outil fancontrol ci-dessus a l'inconvénient que lorsqu'il est bloqué, a une erreur ou un bogue, il peut ne pas fonctionner.

Dans le répertoire /sys/devices/platform/nct6775.656/hwmon/hwmonX.

X ci-dessous est le FAN. Certains paramètres peuvent déjà être définis par le bios.

pwmX_mode définit le mode du ventilateur. 0 est PWM, 1 tension contrôlée. Vous pouvez le régler. Mais la lecture donne toujours 1.

pwmX_temp_sel est le capteur de température qui alimente ce ventilateur.

echo 5> à pwmX_enable met le ventilateur en mode intelligent. Cela signifie que le matériel (la puce nct6775) contrôle le ventilateur.

Les pwmX_auto_point1_pwm à pwmX_auto_point5_pwm définissent les étapes de vitesse du ventilateur. Valeurs de 0 à 255. Mes fans commencent à tourner autour de 85. J'ai donc 85 90 100 140 255 comme étapes.

Les températures correspondantes sont définies dans pwmX_auto_point (1-5) _temp. Valeurs en celcius.

0
U de Boer