Skip to content
This repository has been archived by the owner on Dec 16, 2019. It is now read-only.

Latest commit

 

History

History
53 lines (41 loc) · 2.76 KB

CONTRIBUTING.md

File metadata and controls

53 lines (41 loc) · 2.76 KB

New devices

Testing compatibility

Test all the capabilities of the driver and see if they work. Check if the official software has additional features compared to this driver.

Capturing the communication

Adding support for new devices requires capturing the USB traffic generated by the official Windows software for the cooler.

Warning: USB captures might contain sensitive data, such as keyboard input. Make sure you are aware of the devices connected to the monitored bus.

Using a Windows VM on Linux and Wireshark

  • Use a virtualization with USB support and redirect your cooler to the Windows VM
  • Make sure you can control and monitor the device from the Windows VM
  • Install Wireshark on the Linux host
  • Load the usbmon kernel module
  • Make sure Wireshark can access usbmon: Either
  • Have the least possible USB devices plugged in, with the cooler being on a separate bus if possible (Use lsusb to find out which device is on which bus)
  • Use lsusb to find which bus the cooler is connected to
  • Start your Windows VM, and make sure the application for the cooler is not running
  • Start monitoring on usbmonN, where N is the USB bus the device is connected to
  • Start the application
  • Make sure you can see the USB traffic generated by the application

Troubleshooting

The application for the cooler doesn't start on the VM

I had this issue with libvirt (KVM/QEMU). Setting the CPU to a Haswell (without TSX) with 1 CPU, 2 cores and 2 threads solved it.

Using Windows

I haven't tried this, but the Wireshark wiki has some information.

What to capture

Capture as little at one time as possible. Use descriptive names for the captures, such as color_from_112233_to_aabbcc.pcap. It makes reverse engineering much easier.

Initialization

Close the application, start capturing, and start the application. Stop capturing as soon as the application successfully loads.

Include the status of the cooler (fan RPM, pump RPM, liquid temperature, speed, mode, color, etc). Screenshots are fine.

Idle communication

Open the application, let it run for a few seconds, then capture for 10-20 seconds.

Include the status of the cooler (screenshots are fine).

Changing settings

Prepare your changes in the software, start capturing, quickly apply the changes, wait for them to actually take effect, and stop capturing.

Create an issue

Include

  • the exact model of your cooler (including its VID and PID)
  • the currently working/not working capabilities
  • your captures with the relevant information