3.1 KiB
evga-icx
This program allows you to read temperature sensors off of supported EVGA 30-series iCX3 video cards, as well as control the fans individually.
Prerequisites
A supported EVGA 30-series iCX3 card. I have not done extensive testing but belive this is every model of their:
- RTX 3060 Ti
- RTX 3070
- RTX 3070 Ti
- RTX 3080
- RTX 3080 Ti
- RTX 3090
- RTX 3090 Ti
The number of fans supported depends, of course, on your particular model.
Access to the /dev/i2c
device files, which means either:
- Run as root, or
- Install udev rules to allow user access. If you have the OpenRGB udev rules installed to control the LEDs you already have this set up.
Dependencies
- libi2c-dev
- libnvidia-ml-dev (if building with
USE_NVML=1
)
Building
make
Optional features
NVML support
Add the make flag USE_NVML=1
and the it will also display the main GPU temperature ("GPU1") as reported by the NVIDIA driver. It will also display the performance cap/clock reason. This requires the NVIDIA management library (NVML) to be installed.
Usage
Note that when controlling fans directly through iCX3 they will fall offline from the Nvidia driver and show as 0 RPM until you return them to automatic mode.
Available options:
--gpu N : Control only GPU N instead of all supported cards
--fan SPEED : Set all fans at once to SPEED (see below)
--fanN SPEED : Set fan N (0-3) to SPEED
SPEED may be one of the following:
'auto' to return the fan to its default control mode
N to set the fan to that manual % speed
[+/-]N to set that fan to an RPM offset from the GPU-controlled speed
--reset : Reset all fans to their default mode
--sensors : Print sensor readings even if setting a fan speed
--compact : Print sensor reading in a compact one-line per card format
--watch N : Keep printing output every N seconds
--overwrite : Overwrite previously displayed info with --watch and --compact instead of continuously logging
Examples:
Read sensors:
$ ./evga-icx
#0: EVGA GeForce RTX 3090 FTW3 Ultra v2 (/dev/i2c-3) @ c:00.0
Fan 0: 1122 RPM (37/0%, Auto)
Fan 1: 1177 RPM (39/0%, Auto)
Fan 2: 1189 RPM (39/0%, Offset)
Ext. fan: 0 RPM (0/0%, Offset)
GPU1: +36°C
GPU2: +41.2°C
MEM1: +42.8°C
MEM2: +41.1°C
MEM3: +41.5°C
PWR1: +40.5°C
PWR2: +41.2°C
PWR3: +41.9°C
PWR4: +42.5°C
PWR5: +42.0°C
Clock reasons: GPU idle (0x1)
Compact one-line mode:
$ ./evga-icx --compact
#0 FAN 37 39 39 0% GPU 35 41 MEM 41 41 41 PWR 40 41 42 42 42°C CLK Idle
Set external fan to follow Nvidia driver controlled speed with a -500 RPM offset:
evga-icx --fan3 -500
Set all fans to manual 100%
evga-icx --fan 100
Force all fans on card 0 to off except for fan1:
evga-icx --gpu 0 --fan1 0 --fan2 auto --fan3 0 --fan4 0
Return fans back to Nvidia driver control:
evga-icx --reset
Future capabilities
It appears to also be possible to read power and voltage sensors off of the K|NGP|N cards, and possibly even control the onboard OLED screen. If you have one of these and are willing to help test this please contact me!