Corsair Commander Pro on Debian 10.x Linux

Learn how I monitor fan speeds, temperatures and PSU voltages using a Corsair Commander Pro on Debian Linux

Corsair do not currently provide software for the Corsair Commander Pro on Linux. This post details how I achieve nearly all of the functionality provided by Corsair Link using a Linux based CLI.

There is discussion about it being available in future kernels (Linux Patches Provide Corsair Commander Pro Support For Thermal / Fan / RGB Controller) but I have not found any information about this yet.


Note: Part of this post is based on an existing article – Installing liquidctl – How much power does my PC use?


Install LiquidCtl

Liquidctl is a cross-platform tool and drivers for liquid coolers and other devices (Corsair Commander-Pro & certain Corsair PSUs) written in Python. Full information about this project can be found here – https://github.com/liquidctl/liquidctl

LiquidCtl will also allow you to control any RGB LEDs that are connected to your Corsair Commander Pro, for me this is in a rack mount server so I do not have any!

To install LiquidCtl on Debian Linux 10.x, first we need to install all of the required Python development tools and required libraries:

apt install -y git build-essential libssl-dev libffi-dev python3-dev python3-pip python3-setuptools python3-pkg-resources python3-docopt python3-hidapi python3-hid python3-usb libusb-1.0

Now we can clone the git repository:

git clone https://github.com/jonasmalacofilho/liquidctl

Now we are ready to build and install:

cd liquidctl/
python3 setup.py install

LiquidCtl is now installed, we can use the following commands to initialize it and monitor the temperature sensors and fan speeds:

liquidctl initialize all
liquidctl status

Here is the sample output from the status command on my server:

Corsair Commander Pro (experimental)
├── 12 volt rail     12.06  V
├── 5 volt rail       4.97  V
├── 3.3 volt rail     3.34  V
├── Temp sensor 1     22.7  °C
├── Temp sensor 2     20.0  °C
├── Temp sensor 3     20.2  °C
├── Temp sensor 4     19.8  °C
├── Fan 1 speed       1325  rpm
├── Fan 2 speed       1246  rpm
├── Fan 3 speed       1290  rpm
├── Fan 4 speed          0  rpm
├── Fan 5 speed          0  rpm
└── Fan 6 speed          0  rpm

WARNING: reading the +12V OCP mode is an experimental feature
Corsair HX1200i
├── Current uptime                  5:18:57  
├── Total uptime            2 days, 6:18:57  
├── Temperature 1                      42.0  °C
├── Temperature 2                      31.8  °C
├── Fan control mode               Hardware  
├── Fan speed                             0  rpm
├── Input voltage                    115.00  V
├── Total power                       90.00  W
├── +12V OCP mode                Multi rail  
├── +12V output voltage               12.02  V
├── +12V output current                6.00  A
├── +12V output power                 74.00  W
├── +5V output voltage                 4.97  V
├── +5V output current                 2.00  A
├── +5V output power                   9.50  W
├── +3.3V output voltage               3.28  V
├── +3.3V output current               1.06  A
└── +3.3V output power                 3.00  W

Finally, we can control fan speeds (if desired) using the following command:

liquidctl --match "Commander Pro" set fan1 speed 100

Installing Sensors

In addition to monitoring your Corsair Commander Pro, you will probably also want to monitor the CPU & GPU temperatures. This can be easily achieved by installing Sensors:

apt install lm-sensors

You can now get a command line output of motherboard & GPU based sensors by using the simple command sensors:

sensors

Here is a sample output from sensors:

coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +27.0°C  (high = +80.0°C, crit = +98.0°C)
Core 0:        +20.0°C  (high = +80.0°C, crit = +98.0°C)
Core 1:        +24.0°C  (high = +80.0°C, crit = +98.0°C)
Core 2:        +23.0°C  (high = +80.0°C, crit = +98.0°C)
Core 3:        +17.0°C  (high = +80.0°C, crit = +98.0°C)
Core 4:        +23.0°C  (high = +80.0°C, crit = +98.0°C)
Core 5:        +21.0°C  (high = +80.0°C, crit = +98.0°C)
Core 6:        +17.0°C  (high = +80.0°C, crit = +98.0°C)
Core 7:        +18.0°C  (high = +80.0°C, crit = +98.0°C)
Core 8:        +20.0°C  (high = +80.0°C, crit = +98.0°C)
Core 9:        +23.0°C  (high = +80.0°C, crit = +98.0°C)
Core 10:       +21.0°C  (high = +80.0°C, crit = +98.0°C)
Core 11:       +19.0°C  (high = +80.0°C, crit = +98.0°C)
Core 12:       +20.0°C  (high = +80.0°C, crit = +98.0°C)
Core 13:       +19.0°C  (high = +80.0°C, crit = +98.0°C)
Core 14:       +20.0°C  (high = +80.0°C, crit = +98.0°C)
Core 15:       +22.0°C  (high = +80.0°C, crit = +98.0°C)

power_meter-acpi-0
Adapter: ACPI interface
power1:        4.29 MW (interval =   1.00 s)

coretemp-isa-0001
Adapter: ISA adapter
Package id 1:  +29.0°C  (high = +80.0°C, crit = +98.0°C)
Core 0:        +20.0°C  (high = +80.0°C, crit = +98.0°C)
Core 1:        +20.0°C  (high = +80.0°C, crit = +98.0°C)
Core 2:        +23.0°C  (high = +80.0°C, crit = +98.0°C)
Core 3:        +22.0°C  (high = +80.0°C, crit = +98.0°C)
Core 4:        +22.0°C  (high = +80.0°C, crit = +98.0°C)
Core 5:        +20.0°C  (high = +80.0°C, crit = +98.0°C)
Core 6:        +19.0°C  (high = +80.0°C, crit = +98.0°C)
Core 7:        +19.0°C  (high = +80.0°C, crit = +98.0°C)
Core 8:        +23.0°C  (high = +80.0°C, crit = +98.0°C)
Core 9:        +20.0°C  (high = +80.0°C, crit = +98.0°C)
Core 10:       +21.0°C  (high = +80.0°C, crit = +98.0°C)
Core 11:       +19.0°C  (high = +80.0°C, crit = +98.0°C)
Core 12:       +20.0°C  (high = +80.0°C, crit = +98.0°C)
Core 13:       +23.0°C  (high = +80.0°C, crit = +98.0°C)
Core 14:       +18.0°C  (high = +80.0°C, crit = +98.0°C)
Core 15:       +22.0°C  (high = +80.0°C, crit = +98.0°C)

nouveau-pci-0300
Adapter: PCI adapter
GPU core:     +1.01 V  (min =  +0.60 V, max =  +1.20 V)
fan1:         960 RPM
temp1:        +34.0°C  (high = +95.0°C, hyst =  +3.0°C)
                       (crit = +105.0°C, hyst =  +5.0°C)
                       (emerg = +135.0°C, hyst =  +5.0°C)

Installing Glances

Glances is a cross-platform curses-based monitoring tool which aims to present a maximum of information in a minimum of space, ideally to fit in a classical 80×24 terminal or higher to have additional information. It can adapt dynamically the displayed information depending on the terminal size. It can also work in client/server mode.  Remote monitoring could be done via terminal or web interface.

To install Glances use the following command (incidentally, if you had installed glances first, it would automatically install sensors 🙂

apt install glances

You can now run glances. Sadly, Glances my does not display the output from LiquidCtl.

glances

As glances is a captive process, you will need to exit when done by typing “Q”. Alternatively, leave it permanently running in a separate terminal process!


Job done.

Leave a Reply