96 lines
2.8 KiB
Markdown
96 lines
2.8 KiB
Markdown
# 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
|
|
|
|
## 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.
|
|
|
|
## 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.
|
|
|
|
```text
|
|
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
|
|
```
|
|
|
|
### Examples:
|
|
Read sensors:
|
|
```text
|
|
$ ./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:
|
|
```text
|
|
$ ./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!
|