J'essayais donc de comprendre comment créer une courbe de ventilateur personnalisée pour ma carte Gigabyte GTX 960 ITX. C'est à peu près une demi-longueur (pour mon petit cas) mais cela signifie qu'il a un très petit dissipateur de chaleur, et le pilote Nvidia n'a pas compensé correctement cela.
J'ai fait un tas de recherches sur Google, et la plupart des réponses n'ont pas vraiment fonctionné pour une raison quelconque.
Comment puis-je créer une courbe de ventilateur personnalisée?
J'ai trouvé l'essentiel de ma réponse sur les forums Ubunt mais la commande pour définir la vitesse du ventilateur donnée était fausse. J'ai aussi écrit le script Shell moi-même (et je suis un noob), alors n'hésitez pas à dire comment j'ai tout faux, tant que vous me dites comment résoudre ce problème :) J'ai ajouté des commentaires excessifs afin que les gens qui ne comprennent pas Bash peut avoir une idée de ce que je fais. Cela ne fonctionne que pour 1 GPU et nécessitera des modifications pour plusieurs. En passant, la courbe de ventilation que j'ai définie est speed%=0.028*(degreesC^2)
.
Sudo konqueror
)./etc/X11
et autorisez l'accès en écriture à tous les groupes (mais laissez la fenêtre ouverte).nvidia-settings
dans le terminal).Sudo nvidia-xconfig
, puis à nouveau avec --cool-bits=4
.#!/bin/bash
# Put "sleep 30" here if you run it at start-up
# to make sure this starts after the Nvidia driver does.
fan="0"
gpu="0"
echo "GPU fan controller service started."
nvidia-settings -a "[gpu:$gpu]/GPUFanControlState=1" > /dev/null
check="$(nvidia-settings -a \"[fan:$fan]/GPUTargetFanSpeed=30\" | tr -d '[[:space:]]')"
working="Attribute'GPUTargetFanSpeed'($(hostname):0fan:$fan)assignedvalue30."
if [[ "$check" != "$working" ]]; then
echo "error on fan speed assignment: $check"
echo "Should be: $working"
exit 1
fi
while true
do
degreesC="$(nvidia-smi -i $gpu | grep -owEe '[0-9]+C')"
fanSpeed=$(($degreesC ** 2))
fanSpeed=$(($fanSpeed / 50))
if [[ $fanSpeed -gt 100 ]]
then
fanSpeed=100
fi
nvidia-settings -a "[fan:$fan]/GPUTargetFanSpeed=$fanSpeed" > /dev/null
sleep 8
done
Je ne le mettrai probablement pas à jour à l'avenir, car je passerai à un RX 480.
J'ai fait mon propre script pour cela et c'est le meilleur que j'ai vu jusqu'à présent. J'espère que certains d'entre vous contribueront et amélioreront mon code. Mine fonctionne simplement en l'exécutant et devrait pouvoir prendre en charge les versions antérieures à 349.16. Il a également une courbe de ventilateur réglable.
Voici le lien github: https://github.com/abc123me/Nvidia-Fancontrol
Merci pour le script. J'ai des problèmes avec l'un des contrôleurs de ventilateur, ce qui freine le contrôle du ventilateur matériel (le second ventilateur n'est pas reconnu, commence à tourner comme un fou.). Le contrôle logiciel fonctionne bien sous Windows. J'ai donc décidé de vérifier comment implémenter le contrôle logiciel avec une courbe de ventilateur sous Ubuntu.
Quoi qu'il en soit, la raison pour laquelle je tape ceci est que vous avez codé en dur le nom de votre ordinateur dans un script (Ligne 4: Bens-PC). Il serait préférable d’utiliser une variable et de commenter le script afin que les gens puissent le remarquer plus facilement.