Nettoyage du code et refonte complète du README
- Suppression du code mort et commenté (fonctions inutiles) - Correction du bug wait $SLEEP -> wait $SLEEP_PROCESS_PID - Suppression des fichiers de sauvegarde .default - Refonte complète du README en français avec : * Documentation des nouveaux paramètres de contrôle dynamique * Exemples Docker/docker-compose mis à jour * Section dépannage adaptée au système de seuils * Logique de fonctionnement détaillée 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
147
README.md
147
README.md
@@ -1,10 +1,14 @@
|
||||
<div id="top"></div>
|
||||
|
||||
|
||||
# Dell iDRAC fan controller Docker image
|
||||
Fork de : https://github.com/tigerblue77/Dell_iDRAC_fan_controller_Docker.git<br>
|
||||
Download Docker image from :
|
||||
- [Docker Hub](https://hub.docker.com/repository/docker/itrass/idrac_fan_control)
|
||||
# Contrôleur de ventilateurs Dell iDRAC - Version modifiée
|
||||
|
||||
Fork de : https://github.com/tigerblue77/Dell_iDRAC_fan_controller_Docker.git
|
||||
|
||||
**Modifications apportées :**
|
||||
- Remplacement du contrôle statique par un contrôle dynamique basé sur la température
|
||||
- Configuration de 4 seuils de température avec vitesses correspondantes
|
||||
- Gestion progressive de la vitesse des ventilateurs selon la température du CPU
|
||||
|
||||
<!-- TABLE OF CONTENTS -->
|
||||
<details>
|
||||
@@ -52,12 +56,19 @@ docker run -d \
|
||||
--name Dell_iDRAC_fan_controller \
|
||||
--restart=unless-stopped \
|
||||
-e IDRAC_HOST=local \
|
||||
-e FAN_SPEED=<decimal or hexadecimal fan speed> \
|
||||
-e CPU_TEMPERATURE_THRESHOLD=<decimal temperature threshold> \
|
||||
-e CHECK_INTERVAL=<seconds between each check> \
|
||||
-e CPU_TEMPERATURE_THRESHOLD=<seuil de sécurité en °C> \
|
||||
-e CHECK_INTERVAL=<secondes entre chaque vérification> \
|
||||
-e CPU_TEMPERATURE_1=30 \
|
||||
-e CPU_TEMPERATURE_2=40 \
|
||||
-e CPU_TEMPERATURE_3=50 \
|
||||
-e CPU_TEMPERATURE_4=60 \
|
||||
-e FAN_SPEED_1=10 \
|
||||
-e FAN_SPEED_2=30 \
|
||||
-e FAN_SPEED_3=60 \
|
||||
-e FAN_SPEED_4=80 \
|
||||
-e DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=<true or false> \
|
||||
--device=/dev/ipmi0:/dev/ipmi0:rw \
|
||||
tigerblue77/dell_idrac_fan_controller:latest
|
||||
votre_image:latest
|
||||
```
|
||||
|
||||
2. with LAN iDRAC:
|
||||
@@ -66,14 +77,21 @@ docker run -d \
|
||||
docker run -d \
|
||||
--name Dell_iDRAC_fan_controller \
|
||||
--restart=unless-stopped \
|
||||
-e IDRAC_HOST=<iDRAC IP address> \
|
||||
-e IDRAC_USERNAME=<iDRAC username> \
|
||||
-e IDRAC_PASSWORD=<iDRAC password> \
|
||||
-e FAN_SPEED=<decimal or hexadecimal fan speed> \
|
||||
-e CPU_TEMPERATURE_THRESHOLD=<decimal temperature threshold> \
|
||||
-e CHECK_INTERVAL=<seconds between each check> \
|
||||
-e IDRAC_HOST=<adresse IP iDRAC> \
|
||||
-e IDRAC_USERNAME=<nom d'utilisateur iDRAC> \
|
||||
-e IDRAC_PASSWORD=<mot de passe iDRAC> \
|
||||
-e CPU_TEMPERATURE_THRESHOLD=<seuil de sécurité en °C> \
|
||||
-e CHECK_INTERVAL=<secondes entre chaque vérification> \
|
||||
-e CPU_TEMPERATURE_1=30 \
|
||||
-e CPU_TEMPERATURE_2=40 \
|
||||
-e CPU_TEMPERATURE_3=50 \
|
||||
-e CPU_TEMPERATURE_4=60 \
|
||||
-e FAN_SPEED_1=10 \
|
||||
-e FAN_SPEED_2=30 \
|
||||
-e FAN_SPEED_3=60 \
|
||||
-e FAN_SPEED_4=80 \
|
||||
-e DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=<true or false> \
|
||||
tigerblue77/dell_idrac_fan_controller:latest
|
||||
votre_image:latest
|
||||
```
|
||||
|
||||
`docker-compose.yml` examples:
|
||||
@@ -85,15 +103,22 @@ version: '3.8'
|
||||
|
||||
services:
|
||||
Dell_iDRAC_fan_controller:
|
||||
image: tigerblue77/dell_idrac_fan_controller:latest
|
||||
image: votre_image:latest
|
||||
container_name: Dell_iDRAC_fan_controller
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- IDRAC_HOST=local
|
||||
- FAN_SPEED=<decimal or hexadecimal fan speed>
|
||||
- CPU_TEMPERATURE_THRESHOLD=<decimal temperature threshold>
|
||||
- CHECK_INTERVAL=<seconds between each check>
|
||||
- DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=<true or false>
|
||||
- CPU_TEMPERATURE_THRESHOLD=70
|
||||
- CHECK_INTERVAL=60
|
||||
- CPU_TEMPERATURE_1=30
|
||||
- CPU_TEMPERATURE_2=40
|
||||
- CPU_TEMPERATURE_3=50
|
||||
- CPU_TEMPERATURE_4=60
|
||||
- FAN_SPEED_1=10
|
||||
- FAN_SPEED_2=30
|
||||
- FAN_SPEED_3=60
|
||||
- FAN_SPEED_4=80
|
||||
- DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=false
|
||||
devices:
|
||||
- /dev/ipmi0:/dev/ipmi0:rw
|
||||
```
|
||||
@@ -105,42 +130,80 @@ version: '3.8'
|
||||
|
||||
services:
|
||||
Dell_iDRAC_fan_controller:
|
||||
image: tigerblue77/dell_idrac_fan_controller:latest
|
||||
image: votre_image:latest
|
||||
container_name: Dell_iDRAC_fan_controller
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- IDRAC_HOST=<iDRAC IP address>
|
||||
- IDRAC_USERNAME=<iDRAC username>
|
||||
- IDRAC_PASSWORD=<iDRAC password>
|
||||
- FAN_SPEED=<decimal or hexadecimal fan speed>
|
||||
- CPU_TEMPERATURE_THRESHOLD=<decimal temperature threshold>
|
||||
- CHECK_INTERVAL=<seconds between each check>
|
||||
- DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=<true or false>
|
||||
- IDRAC_HOST=192.168.1.100
|
||||
- IDRAC_USERNAME=root
|
||||
- IDRAC_PASSWORD=calvin
|
||||
- CPU_TEMPERATURE_THRESHOLD=70
|
||||
- CHECK_INTERVAL=60
|
||||
- CPU_TEMPERATURE_1=30
|
||||
- CPU_TEMPERATURE_2=40
|
||||
- CPU_TEMPERATURE_3=50
|
||||
- CPU_TEMPERATURE_4=60
|
||||
- FAN_SPEED_1=10
|
||||
- FAN_SPEED_2=30
|
||||
- FAN_SPEED_3=60
|
||||
- FAN_SPEED_4=80
|
||||
- DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=false
|
||||
```
|
||||
|
||||
<p align="right">(<a href="#top">back to top</a>)</p>
|
||||
|
||||
<!-- PARAMETERS -->
|
||||
## Parameters
|
||||
## Paramètres
|
||||
|
||||
All parameters are optional as they have default values (including default iDRAC username and password).
|
||||
Tous les paramètres sont optionnels car ils ont des valeurs par défaut.
|
||||
|
||||
- `IDRAC_HOST` parameter can be set to "local" or to your distant iDRAC's IP address. **Default** value is "local".
|
||||
- `IDRAC_USERNAME` parameter is only necessary if you're adressing a distant iDRAC. **Default** value is "root".
|
||||
- `IDRAC_PASSWORD` parameter is only necessary if you're adressing a distant iDRAC. **Default** value is "calvin".
|
||||
- `FAN_SPEED` parameter can be set as a decimal (from 0 to 100%) or hexadecimaladecimal value (from 0x00 to 0x64) you want to set the fans to. **Default** value is 5(%).
|
||||
- `CPU_TEMPERATURE_THRESHOLD` parameter is the T°junction (junction temperature) threshold beyond which the Dell fan mode defined in your BIOS will become active again (to protect the server hardware against overheat). **Default** value is 50(°C).
|
||||
- `CHECK_INTERVAL` parameter is the time (in seconds) between each temperature check and potential profile change. **Default** value is 60(s).
|
||||
- `DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE` parameter is a boolean that allows to disable third-party PCIe card Dell default cooling response. **Default** value is false.
|
||||
**Connexion iDRAC :**
|
||||
- `IDRAC_HOST` : peut être défini sur "local" ou l'adresse IP de votre iDRAC distant. **Défaut** : "local"
|
||||
- `IDRAC_USERNAME` : nécessaire uniquement pour un iDRAC distant. **Défaut** : "root"
|
||||
- `IDRAC_PASSWORD` : nécessaire uniquement pour un iDRAC distant. **Défaut** : "calvin"
|
||||
|
||||
**Contrôle dynamique des ventilateurs :**
|
||||
- `CPU_TEMPERATURE_1` à `CPU_TEMPERATURE_4` : seuils de température en °C. **Défauts** : 30, 40, 50, 60
|
||||
- `FAN_SPEED_1` à `FAN_SPEED_4` : vitesses des ventilateurs (0-100%) correspondant aux seuils. **Défauts** : 10, 30, 60, 80
|
||||
- `CPU_TEMPERATURE_THRESHOLD` : seuil de sécurité au-delà duquel le mode Dell par défaut est activé. **Défaut** : 70°C
|
||||
|
||||
**Autres paramètres :**
|
||||
- `CHECK_INTERVAL` : temps en secondes entre chaque vérification. **Défaut** : 60s
|
||||
- `DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE` : désactive la réponse de refroidissement Dell pour les cartes PCIe tierces. **Défaut** : false
|
||||
|
||||
**Logique de fonctionnement :**
|
||||
- Si la température CPU ≤ `CPU_TEMPERATURE_1` → vitesse `FAN_SPEED_1`
|
||||
- Si `CPU_TEMPERATURE_1` < température ≤ `CPU_TEMPERATURE_2` → vitesse `FAN_SPEED_2`
|
||||
- Si `CPU_TEMPERATURE_2` < température ≤ `CPU_TEMPERATURE_3` → vitesse `FAN_SPEED_3`
|
||||
- Si `CPU_TEMPERATURE_3` < température ≤ `CPU_TEMPERATURE_4` → vitesse `FAN_SPEED_4`
|
||||
- Si température > `CPU_TEMPERATURE_4` → 100%
|
||||
- Si température > `CPU_TEMPERATURE_THRESHOLD` → mode Dell par défaut (sécurité)
|
||||
|
||||
<p align="right">(<a href="#top">back to top</a>)</p>
|
||||
|
||||
<!-- TROUBLESHOOTING -->
|
||||
## Troubleshooting
|
||||
## Dépannage
|
||||
|
||||
If your server frequently switches back to the default Dell fan mode:
|
||||
1. Check `Tcase` (case temperature) of your CPU on Intel Ark website and then set `CPU_TEMPERATURE_THRESHOLD` to a slightly lower value. Example with my CPUs ([Intel Xeon E5-2630L v2](https://www.intel.com/content/www/us/en/products/sku/75791/intel-xeon-processor-e52630l-v2-15m-cache-2-40-ghz/specifications.html)) : Tcase = 63°C, I set `CPU_TEMPERATURE_THRESHOLD` to 60(°C).
|
||||
2. If it's already good, adapt your `FAN_SPEED` value to increase the airflow and thus further decrease the temperature of your CPU(s)
|
||||
3. If neither increasing the fan speed nor increasing the threshold solves your problem, then it may be time to replace your thermal paste
|
||||
Si votre serveur revient fréquemment au mode Dell par défaut :
|
||||
|
||||
1. **Vérifiez la Tcase de votre CPU** : Consultez le site Intel Ark pour connaître la température de boîtier maximum de votre CPU et définissez `CPU_TEMPERATURE_THRESHOLD` à une valeur légèrement inférieure. Exemple : pour un Intel Xeon E5-2630L v2 avec Tcase = 63°C, définir `CPU_TEMPERATURE_THRESHOLD=60`.
|
||||
|
||||
2. **Ajustez les seuils de température** : Modifiez `CPU_TEMPERATURE_1` à `CPU_TEMPERATURE_4` selon votre environnement. Exemple pour un environnement plus chaud :
|
||||
```
|
||||
CPU_TEMPERATURE_1=35
|
||||
CPU_TEMPERATURE_2=45
|
||||
CPU_TEMPERATURE_3=55
|
||||
CPU_TEMPERATURE_4=65
|
||||
```
|
||||
|
||||
3. **Augmentez les vitesses de ventilation** : Adaptez `FAN_SPEED_1` à `FAN_SPEED_4` pour améliorer le refroidissement :
|
||||
```
|
||||
FAN_SPEED_1=15
|
||||
FAN_SPEED_2=35
|
||||
FAN_SPEED_3=70
|
||||
FAN_SPEED_4=90
|
||||
```
|
||||
|
||||
4. **Si les problèmes persistent** : Il peut être nécessaire de remplacer la pâte thermique de votre serveur.
|
||||
|
||||
<p align="right">(<a href="#top">back to top</a>)</p>
|
||||
Reference in New Issue
Block a user