Test all the capabilities of the driver and see if they work. Check if the official software has additional features compared to this driver.
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.
- 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- Start Wireshark as root, or
- Make sure your user has read access to
/dev/usbmon*
, and Wireshark is set up so you can use it as a regular user
- 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
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.
I haven't tried this, but the Wireshark wiki has some information.
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.
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.
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).
Prepare your changes in the software, start capturing, quickly apply the changes, wait for them to actually take effect, and stop capturing.
Include
- the exact model of your cooler (including its VID and PID)
- the currently working/not working capabilities
- your captures with the relevant information