Jump to content

Corsair fan control on Linux

I recently put together my first computer: 

so I decided to add a Linux partition for everything non-gaming related. This computer has 9 fans, all Corsair (6 LL120 and 3 ML120), and everything works great on Windows using the iCue software, I can control the fans speed and lighting, but on Linux the lighting and fan speed is set to the default hardware values. iCue allows me to update the lighting default hardware values (stays after reboot) but not the fan speed, which defaults to something around 800 rpm as far as I can tell. Having 9 fans at 800 rpm makes the computer too noisy if I am not using headphones. I've managed to workaround this by booting Windows first, letting iCue change the values (I use 600 when not gaming), then reboot in Linux, but I'd love to either:

  • Update the default fan speed values, or...
  • Control the fan speed values on Linux.

I'd honestly prefer option 1, so I can have everything on Windows. Has anyone had this problem before? Any known solution to update the default fan speed values on Windows or Linux?

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

I don't think so, for now you can only eventually manage corsair keyboard and mices RGB with some scripts in github people made https://github.com/ckb-next/ckb-next but I suppose in the future you could check again here and see if this feature can be added, you could ask to those guys if there are plans to support fans

Link to comment
Share on other sites

Link to post
Share on other sites

10 hours ago, Ruenzuo said:

I recently put together my first computer: 

so I decided to add a Linux partition for everything non-gaming related. This computer has 9 fans, all Corsair (6 LL120 and 3 ML120), and everything works great on Windows using the iCue software, I can control the fans speed and lighting, but on Linux the lighting and fan speed is set to the default hardware values. iCue allows me to update the lighting default hardware values (stays after reboot) but not the fan speed, which defaults to something around 800 rpm as far as I can tell. Having 9 fans at 800 rpm makes the computer too noisy if I am not using headphones. I've managed to workaround this by booting Windows first, letting iCue change the values (I use 600 when not gaming), then reboot in Linux, but I'd love to either:

  • Update the default fan speed values, or...
  • Control the fan speed values on Linux.

I'd honestly prefer option 1, so I can have everything on Windows. Has anyone had this problem before? Any known solution to update the default fan speed values on Windows or Linux?

 

 

See if you could get WINE to work and try the Icue software in Linux I really dout that would work

Link to comment
Share on other sites

Link to post
Share on other sites

@Ruenzuo: Have you have connected the fans to the MB, or is there a separate FAN controller? I.e., where are the FANs PWM cables - or voltage cables (are these PWM or voltage controlled) connected to? Forget lighting / RGB for the time being - unless the same unit is used to control both?

 

In all likelihood the easiest way would be to just set things in BIOS to a certain curve which suits your needs and forget software FAN control. Software fan control is possible in Linux, but not easy (prepare to run stuff from command line, edit config files etc. - and existing solutions probably only have a linear fan curve possibility, possible with a simple hysteresis control only).

17 hours ago, Ruenzuo said:
  • Update the default fan speed values, or...
  • Control the fan speed values on Linux.

I'd honestly prefer option 1, so I can have everything on Windows. Has anyone had this problem before? Any known solution to update the default fan speed values on Windows or Linux?

I doubt there is anything stored in the FANs themselves, if you set something up in Linux, it should in no way interfere anything set up on Windows (or vice versa) (EDIT: in case of the Corsair Commander Pro, this might not apply since it seems to have some kind of internal memory? I'm not familiar with the device, does it store anything between reboots etc.).

 

(EDIT: The following paragraph does not apply for the USB fan controller OP is using, but leaving it here since someone might stumble on this thread for who this is relevant)

 

Just to point in the right direction: take a look at lm-sensors and sensors-detect command in it (and read the relevant documentation). However, chances are it wont work. ASUS is notorious for having unfriendly attitudes towards FOSS and H/W standards (at least did in the past, that might have changed), and they might do stuff in non-standard-compliant way - and have drivers for certain, proprietary OSes only. As a consequence, at least for older-generation ASUS mainboards you need to set "acpi_enforce_resources=lax" as a command line parameter, since ASUSs ACPI implementation overlaps with the addresses needed to use the HW monitoring chip (which would be usable by some nctXXXX kernel module). Using this kernel command line parameter might be unsafe, as in result in HW damage (unlikely, but possible - so use at your own risk if you go this route!). The official way to use the motherboards fan controlling should be to use the ACPI implementation, but (if I'm not totally mistaken) this is non-standard but a proprietary implementation made by ASUS and there are no drivers for Linux.

 

If you use some USB controller made by corsair to run the fans (you never stated where the fans connect to, and this is the important part), then the above does not apply.

 

6 hours ago, thaymcalol said:

See if you could get WINE to work and try the Icue software in Linux I really dout that would work

WINE is not good for using hardware, since it only implements the libraries to run software; the HW layer of the (windows) OS is essentially missing (you might be able to run some software which uses something like a serial port, but that's about it). So your doubts are right...

 

Instead - If (the possible controller) is a USB device, you might be able to run the software in a VM. But that is going to be quite a kludge, and I'd say most probably not worth all the hassle - unless one decides to have a go just for the sake of trying to get it working and learning to how use and set up VMs!

 

Link to comment
Share on other sites

Link to post
Share on other sites

@Ruenzuo: noticed from the thread you linked you are using Corsair Commander Pro. By searching via google that with linux, comes up with this:

 

https://github.com/audiohacked/OpenCorsairLink/issues/70

 

So you might want to try that "OpenCorsairLink", maybe it has some kind of working implementation to use that controller.

 

Link to comment
Share on other sites

Link to post
Share on other sites

19 hours ago, FRSHPRNCFBLR said:

The easiest thing to do would be to set a custom fan curve in bios, right? 

Sorry, I forgot to mention that 6 fans are controlled by a Corsair Commander Pro, the other 3 are controlled by the pump, so the motherboard doesn't really know about any of them (I had to disable the CPU fan check on the motherboard to have a successful boot). The computer controls all the fans through USB, both for the pump and the Commander Pro.

Link to comment
Share on other sites

Link to post
Share on other sites

9 hours ago, thaymcalol said:

See if you could get WINE to work and try the Icue software in Linux I really dout that would work

Same, I really don't think this is in WINE's project scope, but I could certainly give it a try. Thanks for reminding that!

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, Wild Penquin said:

@Ruenzuo: noticed from the thread you linked you are using Corsair Commander Pro. By searching via google that with linux, comes up with this:

 

https://github.com/audiohacked/OpenCorsairLink/issues/70

 

So you might want to try that "OpenCorsairLink", maybe it has some kind of working implementation to use that controller.

 

Thank you for this, it looks promising. Someone has already reversed engineering the USB protocol, I could spend some time myself implementing a Linux app to control this or contribute to the OpenCorsairLink project if it doesn't have the features yet.

 

As you saw already, the fans are controlled by the Commander Pro and I have no intention to move this to the motherboard, I am super happy with the iCue software on Windows.

 

Honestly Linux is sort of a second class citizen in my computer right now. I mainly build this computer for gaming, I just put there Linux to give it a try, I mostly use my laptop for programming and other stuff that requires the Linux kernel. I have no intention to game on Linux or similar, so for now even the workaround (booting Windows to set the values to the fans and then booting Linux) is kinda okay.

 

I'll report back when I try what you suggested, probably this weekend.

Link to comment
Share on other sites

Link to post
Share on other sites

As of right now there is no support for Linux with our iCUE software.  You may want to try setting the fans to a fixed RPM in Windows, and see if the speed holds once you boot into Linux.  Depending on the pump temps, there are failsafe settings built into the firmware that will kick up the fan speed to protect your system.  I'm assuming you're running an H150i Pro based on the specs, but if you could, go ahead and confirm which Corsair pump you have.  I'll double check some things on my end after.

Looking for more details about a product, or experiencing technical issues?  Visit our support page below, and one of our Technical Support staff can help you out:

https://support.corsair.com/

Link to comment
Share on other sites

Link to post
Share on other sites

18 hours ago, Corsair Nick said:

As of right now there is no support for Linux with our iCUE software.  You may want to try setting the fans to a fixed RPM in Windows, and see if the speed holds once you boot into Linux.  Depending on the pump temps, there are failsafe settings built into the firmware that will kick up the fan speed to protect your system.  I'm assuming you're running an H150i Pro based on the specs, but if you could, go ahead and confirm which Corsair pump you have.  I'll double check some things on my end after.

Thanks for the information Nick. Yes, it's a H150i Pro. Good to know that there's firmware settings to protect the system, although like I mentioned before I won't be using the Linux partition to play video games or any other intensive task.

 

I really don't want to set the fan speed to a fixed RPM in Windows because I am super happy with the setup there, and my current workaround of booting Windows before Linux is sort of working right now.

 

It'll be great to hear from the iCUE software team if Linux support is in the roadmap, doesn't even have to be a GUI, a CLI + service that configure the fan controls through USB would be awesome to have there for users like me that have a Linux partition as second class citizen in the system.

Link to comment
Share on other sites

Link to post
Share on other sites

Ah, that workaround is probably your best option right now.  Can't really speak about products that haven't been released, but the best suggestion would be to rally more Linux users and post on our internal forums with the request.  I'll pass along the info here to our developers, and maybe find a more official and efficient workaround for you guys in the mean time.

Looking for more details about a product, or experiencing technical issues?  Visit our support page below, and one of our Technical Support staff can help you out:

https://support.corsair.com/

Link to comment
Share on other sites

Link to post
Share on other sites

On 4/8/2019 at 6:38 PM, Corsair Nick said:

As of right now there is no support for Linux with our iCUE software.  You may want to try setting the fans to a fixed RPM in Windows, and see if the speed holds once you boot into Linux.  Depending on the pump temps, there are failsafe settings built into the firmware that will kick up the fan speed to protect your system.  I'm assuming you're running an H150i Pro based on the specs, but if you could, go ahead and confirm which Corsair pump you have.  I'll double check some things on my end after. 

Would you be open to provide some documentation for the protocol used so that we could implement it ourselves? Usually you don't really need to support Linux, just providing us with the means to do it ourselves is enough.

Link to comment
Share on other sites

Link to post
Share on other sites

On 4/8/2019 at 3:45 AM, Wild Penquin said:

@Ruenzuo: Have you have connected the fans to the MB, or is there a separate FAN controller? I.e., where are the FANs PWM cables - or voltage cables (are these PWM or voltage controlled) connected to? Forget lighting / RGB for the time being - unless the same unit is used to control both?

 

In all likelihood the easiest way would be to just set things in BIOS to a certain curve which suits your needs and forget software FAN control. Software fan control is possible in Linux, but not easy (prepare to run stuff from command line, edit config files etc. - and existing solutions probably only have a linear fan curve possibility, possible with a simple hysteresis control only).

I doubt there is anything stored in the FANs themselves, if you set something up in Linux, it should in no way interfere anything set up on Windows (or vice versa) (EDIT: in case of the Corsair Commander Pro, this might not apply since it seems to have some kind of internal memory? I'm not familiar with the device, does it store anything between reboots etc.).

 

(EDIT: The following paragraph does not apply for the USB fan controller OP is using, but leaving it here since someone might stumble on this thread for who this is relevant)

 

Just to point in the right direction: take a look at lm-sensors and sensors-detect command in it (and read the relevant documentation). However, chances are it wont work. ASUS is notorious for having unfriendly attitudes towards FOSS and H/W standards (at least did in the past, that might have changed), and they might do stuff in non-standard-compliant way - and have drivers for certain, proprietary OSes only. As a consequence, at least for older-generation ASUS mainboards you need to set "acpi_enforce_resources=lax" as a command line parameter, since ASUSs ACPI implementation overlaps with the addresses needed to use the HW monitoring chip (which would be usable by some nctXXXX kernel module). Using this kernel command line parameter might be unsafe, as in result in HW damage (unlikely, but possible - so use at your own risk if you go this route!). The official way to use the motherboards fan controlling should be to use the ACPI implementation, but (if I'm not totally mistaken) this is non-standard but a proprietary implementation made by ASUS and there are no drivers for Linux.

 

If you use some USB controller made by corsair to run the fans (you never stated where the fans connect to, and this is the important part), then the above does not apply.

 

WINE is not good for using hardware, since it only implements the libraries to run software; the HW layer of the (windows) OS is essentially missing (you might be able to run some software which uses something like a serial port, but that's about it). So your doubts are right...

 

Instead - If (the possible controller) is a USB device, you might be able to run the software in a VM. But that is going to be quite a kludge, and I'd say most probably not worth all the hassle - unless one decides to have a go just for the sake of trying to get it working and learning to how use and set up VMs!

 

On windows how you let a vm take care of a usb what I mean that it can access Usbs beacuse 1 time I sort of wanted to use rufus on Cloudready via a VM. Also yes I've passed that already but it can be some handy info.

Link to comment
Share on other sites

Link to post
Share on other sites

  • 9 months later...
On 4/9/2019 at 6:23 PM, Corsair Nick said:

Ah, that workaround is probably your best option right now.  Can't really speak about products that haven't been released, but the best suggestion would be to rally more Linux users and post on our internal forums with the request.  I'll pass along the info here to our developers, and maybe find a more official and efficient workaround for you guys in the mean time.

@Corsair Nick Hello Nick, just a ping after almost a year. Is there any update about this? I am curious if Corsair stand on Linux has changed or if there are any news. Thanks a lot.

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, Ruenzuo said:

@Corsair Nick Hello Nick, just a ping after almost a year. Is there any update about this? I am curious if Corsair stand on Linux has changed or if there are any news. Thanks a lot.

Hi @Ruenzuo, I wish I had an update more in your favor, but nothing new to report back regarding Linux support.  If anything comes up. we'll let you guys know.

Looking for more details about a product, or experiencing technical issues?  Visit our support page below, and one of our Technical Support staff can help you out:

https://support.corsair.com/

Link to comment
Share on other sites

Link to post
Share on other sites

  • 2 months later...

I am one of the maintainers of libratbag, I have contacted @Corsair Nick to see if they would be able to provide documentation for me to implement drivers for Corsair devices but haven't heard anything back. Adding the drivers is super easy but I don't have hardware, hence the need for the documentation.

Link to comment
Share on other sites

Link to post
Share on other sites

  • 3 months later...

@Ruenzuo I was able to get the commander working using the opencorsairlink project if you are still interested in this issue?

Link to comment
Share on other sites

Link to post
Share on other sites

  • 3 months later...

Did you modify it or use it directly from github?  I have the H115i and would like the control.

Link to comment
Share on other sites

Link to post
Share on other sites

  • 2 months later...

I recommend using liquidctl for fan control in conjunction with OpenRGB for RGB control.

I use both for my Corsair fans and they work great. H115i is also on the list of supported devices for liquidctl.

 

opencorsairlink has been retired in 2020 and is now being continued as liquidctl.

Link to comment
Share on other sites

Link to post
Share on other sites

  • 3 weeks later...
On 1/14/2021 at 10:42 AM, Solarer said:

I recommend using liquidctl for fan control in conjunction with OpenRGB for RGB control.

I use both for my Corsair fans and they work great. H115i is also on the list of supported devices for liquidctl.

 

opencorsairlink has been retired in 2020 and is now being continued as liquidctl.

Am trying to install liquidctl with pip3 and receved this output runing pip3 install liquidctl 
 

Quote

Requirement already satisfied: liquidctl in ./.local/lib/python3.8/site-packages (1.5.0)
Requirement already satisfied: smbus in ./.local/lib/python3.8/site-packages (from liquidctl) (1.1.post2)
Requirement already satisfied: pyusb in ./.local/lib/python3.8/site-packages (from liquidctl) (1.1.1)
Requirement already satisfied: hidapi in ./.local/lib/python3.8/site-packages (from liquidctl) (0.10.1)
Requirement already satisfied: docopt in ./.local/lib/python3.8/site-packages (from liquidctl) (0.6.2)
Requirement already satisfied: setuptools>=19.0 in /usr/lib/python3/dist-packages (from hidapi->liquidctl) (49.3.1)

 

DELL XPS 13 9380POP!_OS 20.04 LTS

Intel i7-8564U, Intel UHD 620, 15GB RAM, 512GB NVMe Micron

 Dual boot POP!_OS 20.04 LTS/Windows 10
Asus PRIME Z270-A, Intel i7 7700K, NZXT Kraken x63, GeForce GTX 980 Ti, Samsung SSD 960 EVO & 850, Corsair 32GB DDR4 3400MHz CL16 Vengeance

HP Z640 | Ubuntu Server 20.04 LTS
Intel 2x4-Core E5-2637 V3, 64GB RAM ECC, 4xWD Gold 8TB 7200rpm 256MB, M.2 SSD 1TB

ProLiant MicroServer Gen8
Ubuntu Server 20.04 LTS
Intel Celeron G1610T, Matrox Electronics Systems Ltd. MGA G200EH, 12GB RAM,  2x6TB WD 7200rpm

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×