diff --git a/Dockerfile b/Dockerfile index 8db2d07..a0dd958 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,5 +25,5 @@ RUN /usr/bin/crontab /etc/cron.d/fan-control ENV IDRAC_HOST local #ENV IDRAC_USER root #ENV IDRAC_PW calvin -ENV FANSPEED 0x05 +ENV FAN_SPEED 5 CMD /startup.sh && cron && tail -f /var/log/cron.log diff --git a/README.md b/README.md index 332f7d7..c915a32 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ To use, -`docker run -e IDRAC_HOST= -e IDRAC_USER= -e IDRAC_PW= -e FANSPEED= alombardo4/idrac-fan-control:latest` +`docker run -e IDRAC_HOST= -e IDRAC_USER= -e IDRAC_PW= -e FAN_SPEED= alombardo4/idrac-fan-control:latest` -`FANSPEED` should be set as a hex value, e.g. `0x05` +`FAN_SPEED` can be set as a decimal or hexadecimal value (0x00 to 0x64). Default value is 5 (%). `docker-compose.yml` examples: @@ -19,7 +19,7 @@ services: restart: unless-stopped environment: - IDRAC_HOST=local # can be omitted as it is the default value - - FANSPEED=0x05 # set to the hex value you want to set the fans to (from 0 to 100%) + - FAN_SPEED=0x05 # set to the decimal or hexadecimal value you want to set the fans to (from 0 to 100%) devices: - /dev/ipmi0:/dev/ipmi0 ``` @@ -37,5 +37,5 @@ services: - IDRAC_HOST=192.168.1.100 # override to the IP of your IDRAC - IDRAC_USER=root # set to your IPMI username - IDRAC_PW=calvin # set to your IPMI password - - FANSPEED=0x05 # set to the hex value you want to set the fans to (from 0 to 100%) + - FAN_SPEED=0x05 # set to the decimal or hexadecimal value you want to set the fans to (from 0 to 100%) ``` diff --git a/check-temp.sh b/check-temp.sh index 4dde47d..f32d4bf 100755 --- a/check-temp.sh +++ b/check-temp.sh @@ -3,7 +3,8 @@ IPMIHOST=`cat /host.txt` IPMIUSER=`cat /user.txt` IPMIPW=`cat /pw.txt` -FANSPEED=`cat /fanspeed.txt` +DECIMAL_FAN_SPEED=`cat /decimal_fan_speed.txt` +HEXADECIMAL_FAN_SPEED=`cat /hexadecimal_fan_speed.txt` MAXTEMP=32 @@ -24,5 +25,5 @@ then else echo "Temp is OK. Using manual fan control" ipmitool -I $LOGIN_STRING raw 0x30 0x30 0x01 0x00 - ipmitool -I $LOGIN_STRING raw 0x30 0x30 0x02 0xff $FANSPEED + ipmitool -I $LOGIN_STRING raw 0x30 0x30 0x02 0xff $HEXADECIMAL_FAN_SPEED fi diff --git a/startup.sh b/startup.sh index 4a45965..91aebaf 100644 --- a/startup.sh +++ b/startup.sh @@ -3,7 +3,18 @@ echo $IDRAC_HOST >> /host.txt echo $IDRAC_USER >> /user.txt echo $IDRAC_PW >> /pw.txt -echo $FANSPEED >> /fanspeed.txt + +if [[ $FAN_SPEED == 0x* ]] +then + DECIMAL_FAN_SPEED=$(printf '%d' $FAN_SPEED) + HEXADECIMAL_FAN_SPEED=$FAN_SPEED +else + DECIMAL_FAN_SPEED=$FAN_SPEED + HEXADECIMAL_FAN_SPEED=$(printf '0x%02x' $FAN_SPEED) +fi + +echo $DECIMAL_FAN_SPEED >> /decimal_fan_speed.txt +echo $HEXADECIMAL_FAN_SPEED >> /hexadecimal_fan_speed.txt echo "Host: `cat /host.txt`" if [[ $IDRAC_HOST != "local" ]] @@ -11,4 +22,4 @@ then echo "User: `cat /user.txt`" echo "PW: `cat /pw.txt`" fi -echo "Fan speed `cat /fanspeed.txt`" +echo "Fan speed objective: `cat /decimal_fan_speed.txt`%"