audiohacked / OpenCorsairLink

Linux and Mac OS support for the CorsairLink Devices
GNU General Public License v2.0
705 stars 125 forks source link

Add support for the Corsair One i164 system #220

Open raw-bin opened 4 years ago

raw-bin commented 4 years ago

My impression is that this system is currently unsupported.

However, attempting to use OCL does produce some output. It is not clear to me whether that output is correct and/or complete.

Some relevant details:

High level system specs are here.

Misc hw probe info:

$ lsusb -d 1b1c: -v

Bus 001 Device 003: ID 1b1c:0c14 Corsair Corsair ONE
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x1b1c Corsair
  idProduct          0x0c14
  bcdDevice            1.00
  iManufacturer           1
  iProduct                2
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0022
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0
      bInterfaceProtocol      1 Keyboard
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      27
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               7
$ sudo lshw | grep -v -i 'serial\|uuid'
behemoth
    description: Desktop Computer
    product: CORSAIR ONE i164 (CS-9020007)
    vendor: CORSAIR
    version: V3
    width: 64 bits
    capabilities: smbios-2.8 dmi-2.8 smp vsyscall32
  *-core
       description: Motherboard
       product: Z370I C2018 (MS-7B43)
       vendor: Micro-Star International Co., Ltd.
       physical id: 0
       version: 1.0
       slot: Default string
     *-firmware
          description: BIOS
          vendor: American Megatrends Inc.
          physical id: 0
          version: 2.QJ
          date: 05/22/2019
          size: 64KiB
          capacity: 16MiB
     *-memory
          description: System Memory
          physical id: 39
          slot: System board or motherboard
          size: 32GiB
        *-bank:0
             description: DIMM DDR4 Synchronous Unbuffered (Unregistered) 2667 MHz (0.4 ns)
             product: CM4B16G2L2666A18K2
             vendor: AMI
             physical id: 0
             slot: ChannelA-DIMM0
             size: 16GiB
             width: 64 bits
             clock: 2667MHz (0.4ns)
        *-bank:1
             description: Project-Id-Version: lshwReport-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>PO-Revision-Date: 2012-02-05 00:26+0000Last-Translator: Andi Chandler <Unknown>Language-Team: English (United Kingdom) <en_GB@li.org>MIME-Version: 1.0Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 8bitX-Launchpad-Export-Date: 2019-10-10 15:05+0000X-Generator: Launchpad (build af2eefe214bd95389a09b7c956720881bab16807)Project-Id-Version: lshwReport-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>PO-Revision-Date: 2012-02-05 00:26+0000Last-Translator: Andi Chandler <Unknown>Language-Team: English (United Kingdom) <en_GB@li.org>MIME-Version: 1.0Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 8bitX-Launchpad-Export-Date: 2019-10-10 15:05+0000X-Generator: Launchpad (build af2eefe214bd95389a09b7c956720881bab16807) [empty]
             physical id: 1
             slot: ChannelA-DIMM1
        *-bank:2
             description: DIMM DDR4 Synchronous Unbuffered (Unregistered) 2667 MHz (0.4 ns)
             product: CM4B16G2L2666A18K2
             vendor: AMI
             physical id: 2
             slot: ChannelB-DIMM0
             size: 16GiB
             width: 64 bits
             clock: 2667MHz (0.4ns)
        *-bank:3
             description: Project-Id-Version: lshwReport-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>PO-Revision-Date: 2012-02-05 00:26+0000Last-Translator: Andi Chandler <Unknown>Language-Team: English (United Kingdom) <en_GB@li.org>MIME-Version: 1.0Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 8bitX-Launchpad-Export-Date: 2019-10-10 15:05+0000X-Generator: Launchpad (build af2eefe214bd95389a09b7c956720881bab16807)Project-Id-Version: lshwReport-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>PO-Revision-Date: 2012-02-05 00:26+0000Last-Translator: Andi Chandler <Unknown>Language-Team: English (United Kingdom) <en_GB@li.org>MIME-Version: 1.0Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 8bitX-Launchpad-Export-Date: 2019-10-10 15:05+0000X-Generator: Launchpad (build af2eefe214bd95389a09b7c956720881bab16807) [empty]
             physical id: 3
             slot: ChannelB-DIMM1
     *-cache:0
          description: L1 cache
          physical id: 3f
          slot: L1 Cache
          size: 512KiB
          capacity: 512KiB
          capabilities: synchronous internal write-back unified
          configuration: level=1
     *-cache:1
          description: L2 cache
          physical id: 40
          slot: L2 Cache
          size: 2MiB
          capacity: 2MiB
          capabilities: synchronous internal write-back unified
          configuration: level=2
     *-cache:2
          description: L3 cache
          physical id: 41
          slot: L3 Cache
          size: 16MiB
          capacity: 16MiB
          capabilities: synchronous internal write-back unified
          configuration: level=3
     *-cpu
          description: CPU
          product: Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz
          vendor: Intel Corp.
          physical id: 42
          bus info: cpu@0
          version: Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz
          slot: U3E1
          size: 4660MHz
          capacity: 5GHz
          width: 64 bits
          clock: 100MHz
          capabilities: lm fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp x86-64 constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d arch_capabilities cpufreq
          configuration: cores=8 enabledcores=8 threads=16
     *-pci
          description: Host bridge
          product: 8th Gen Core 8-core Desktop Processor Host Bridge/DRAM Registers [Coffee Lake S]
          vendor: Intel Corporation
          physical id: 100
          bus info: pci@0000:00:00.0
          version: 0d
          width: 32 bits
          clock: 33MHz
          configuration: driver=skl_uncore
          resources: irq:0
        *-pci:0
             description: PCI bridge
             product: Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16)
             vendor: Intel Corporation
             physical id: 1
             bus info: pci@0000:00:01.0
             version: 0d
             width: 32 bits
             clock: 33MHz
             capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
             configuration: driver=pcieport
             resources: irq:120 ioport:e000(size=4096) memory:de000000-df0fffff ioport:c0000000(size=303038464)
           *-display
                description: VGA compatible controller
                product: TU102 [GeForce RTX 2080 Ti Rev. A]
                vendor: NVIDIA Corporation
                physical id: 0
                bus info: pci@0000:01:00.0
                version: a1
                width: 64 bits
                clock: 33MHz
                capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
                configuration: driver=nvidia latency=0
                resources: irq:140 memory:de000000-deffffff memory:c0000000-cfffffff memory:d0000000-d1ffffff ioport:e000(size=128) memory:c0000-dffff
           *-multimedia
                description: Audio device
                product: TU102 High Definition Audio Controller
                vendor: NVIDIA Corporation
                physical id: 0.1
                bus info: pci@0000:01:00.1
                version: a1
                width: 32 bits
                clock: 33MHz
                capabilities: pm msi pciexpress bus_master cap_list
                configuration: driver=snd_hda_intel latency=0
                resources: irq:17 memory:df080000-df083fff
           *-usb
                description: USB controller
                product: TU102 USB 3.1 Controller
                vendor: NVIDIA Corporation
                physical id: 0.2
                bus info: pci@0000:01:00.2
                version: a1
                width: 64 bits
                clock: 33MHz
                capabilities: msi pciexpress pm xhci cap_list
                configuration: driver=xhci_hcd latency=0
                resources: irq:128 memory:d2000000-d203ffff memory:d2040000-d204ffff
              *-usbhost:0
                   product: xHCI Host Controller
                   vendor: Linux 5.3.0-7625-generic xhci-hcd
                   physical id: 0
                   bus info: usb@3
                   logical name: usb3
                   version: 5.03
                   capabilities: usb-2.00
                   configuration: driver=hub slots=2 speed=480Mbit/s
              *-usbhost:1
                   product: xHCI Host Controller
                   vendor: Linux 5.3.0-7625-generic xhci-hcd
                   physical id: 1
                   bus info: usb@4
                   logical name: usb4
                   version: 5.03
                   capabilities: usb-3.10
                   configuration: driver=hub slots=4 speed=10000Mbit/s
                product: TU102 UCSI Controller
                vendor: NVIDIA Corporation
                physical id: 0.3
                bus info: pci@0000:01:00.3
                version: a1
                width: 32 bits
                clock: 33MHz
                capabilities: msi pciexpress pm cap_list
                configuration: latency=0
                resources: memory:df084000-df084fff
        *-generic:0 UNCLAIMED
             description: System peripheral
             product: Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model
             vendor: Intel Corporation
             physical id: 8
             bus info: pci@0000:00:08.0
             version: 00
             width: 64 bits
             clock: 33MHz
             capabilities: msi pm cap_list
             configuration: latency=0
             resources: memory:df44f000-df44ffff
        *-usb
             description: USB controller
             product: 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller
             vendor: Intel Corporation
             physical id: 14
             bus info: pci@0000:00:14.0
             version: 00
             width: 64 bits
             clock: 33MHz
             capabilities: pm msi xhci bus_master cap_list
             configuration: driver=xhci_hcd latency=0
             resources: irq:127 memory:df430000-df43ffff
           *-usbhost:0
                product: xHCI Host Controller
                vendor: Linux 5.3.0-7625-generic xhci-hcd
                physical id: 0
                bus info: usb@1
                logical name: usb1
                version: 5.03
                capabilities: usb-2.00
                configuration: driver=hub slots=16 speed=480Mbit/s
              *-usb:0
                   description: Keyboard
                   product: G513 Carbon Tactile
                   vendor: Logitech
                   physical id: 3
                   bus info: usb@1:3
                   version: 19.00
                   capabilities: usb-2.00
                   configuration: driver=usbhid maxpower=500mA speed=12Mbit/s
              *-usb:1
                   description: Keyboard
                   product: Corsair ONE
                   vendor: Corsair Inc.
                   physical id: 7
                   bus info: usb@1:7
                   version: 1.00
                   capabilities: usb-2.00
                   configuration: driver=usbhid maxpower=100mA speed=12Mbit/s
              *-usb:2
                   description: Bluetooth wireless interface
                   vendor: Intel Corp.
                   physical id: b
                   bus info: usb@1:b
                   version: 0.10
                   capabilities: bluetooth usb-2.00
                   configuration: driver=btusb maxpower=100mA speed=12Mbit/s
           *-usbhost:1
                product: xHCI Host Controller
                vendor: Linux 5.3.0-7625-generic xhci-hcd
                physical id: 1
                bus info: usb@2
                logical name: usb2
                version: 5.03
                capabilities: usb-3.00
                configuration: driver=hub slots=10 speed=5000Mbit/s
        *-generic:1 UNCLAIMED
             description: Signal processing controller
             product: 200 Series PCH Thermal Subsystem
             vendor: Intel Corporation
             physical id: 14.2
             bus info: pci@0000:00:14.2
             version: 00
             width: 64 bits
             clock: 33MHz
             capabilities: pm msi cap_list
             configuration: latency=0
             resources: memory:df44e000-df44efff
        *-communication
             description: Communication controller
             product: 200 Series PCH CSME HECI #1
             vendor: Intel Corporation
             physical id: 16
             bus info: pci@0000:00:16.0
             version: 00
             width: 64 bits
             clock: 33MHz
             capabilities: pm msi bus_master cap_list
             configuration: driver=mei_me latency=0
             resources: irq:157 memory:df44d000-df44dfff
        *-sata
             description: SATA controller
             product: 200 Series PCH SATA controller [AHCI mode]
             vendor: Intel Corporation
             physical id: 17
             bus info: pci@0000:00:17.0
             logical name: scsi0
             version: 00
             width: 32 bits
             clock: 66MHz
             capabilities: sata msi pm ahci_1.0 bus_master cap_list emulated
             configuration: driver=ahci latency=0
             resources: irq:137 memory:df448000-df449fff memory:df44c000-df44c0ff ioport:f050(size=8) ioport:f040(size=4) ioport:f020(size=32) memory:df44b000-df44b7ff
           *-disk
                description: ATA Disk
                product: ST2000LM015-2E81
                physical id: 0.0.0
                bus info: scsi@0:0.0.0
                logical name: /dev/sda
                version: 0001
                size: 1863GiB (2TB)
                capabilities: gpt-1.00 partitioned partitioned:gpt
                configuration: ansiversion=5 guid=8bdae0bd-9c94-480e-a7fc-8347a29b1ca0 logicalsectorsize=512 sectorsize=4096
              *-volume
                   description: Windows NTFS volume
                   vendor: Windows
                   physical id: 1
                   bus info: scsi@0:0.0.0,1
                   logical name: /dev/sda1
                   version: 3.1
                   size: 1863GiB
                   capacity: 1863GiB
                   capabilities: ntfs initialized
                   configuration: clustersize=4096 created=2019-10-04 23:15:31 filesystem=ntfs name=Basic data partition state=clean
        *-pci:1
             description: PCI bridge
             product: 200 Series PCH PCI Express Root Port #17
             vendor: Intel Corporation
             physical id: 1b
             bus info: pci@0000:00:1b.0
             version: f0
             width: 32 bits
             clock: 33MHz
             capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
             configuration: driver=pcieport
             resources: irq:121
        *-pci:2
             description: PCI bridge
             product: 200 Series PCH PCI Express Root Port #21
             vendor: Intel Corporation
             physical id: 1b.4
             bus info: pci@0000:00:1b.4
             version: f0
             width: 32 bits
             clock: 33MHz
             capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
             configuration: driver=pcieport
             resources: irq:122 memory:df300000-df3fffff
           *-storage
                description: Non-Volatile memory controller
                product: NVMe SSD Controller SM981/PM981/PM983
                vendor: Samsung Electronics Co Ltd
                physical id: 0
                bus info: pci@0000:03:00.0
                version: 00
                width: 64 bits
                clock: 33MHz
                capabilities: storage pm msi pciexpress msix nvm_express bus_master cap_list
                configuration: driver=nvme latency=0
                resources: irq:16 memory:df300000-df303fff
        *-pci:3
             description: PCI bridge
             product: 200 Series PCH PCI Express Root Port #1
             vendor: Intel Corporation
             physical id: 1c
             bus info: pci@0000:00:1c.0
             version: f0
             width: 32 bits
             clock: 33MHz
             capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
             configuration: driver=pcieport
             resources: irq:123
        *-pci:4
             description: PCI bridge
             product: 200 Series PCH PCI Express Root Port #7
             vendor: Intel Corporation
             physical id: 1c.6
             bus info: pci@0000:00:1c.6
             version: f0
             width: 32 bits
             clock: 33MHz
             capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
             configuration: driver=pcieport
             resources: irq:124 memory:df200000-df2fffff
           *-usb
                description: USB controller
                product: ASM2142 USB 3.1 Host Controller
                vendor: ASMedia Technology Inc.
                physical id: 0
                bus info: pci@0000:05:00.0
                version: 00
                width: 64 bits
                clock: 33MHz
                capabilities: msi msix pm pciexpress xhci bus_master cap_list
                configuration: driver=xhci_hcd latency=0
                resources: irq:18 memory:df200000-df207fff
              *-usbhost:0
                   product: xHCI Host Controller
                   vendor: Linux 5.3.0-7625-generic xhci-hcd
                   physical id: 0
                   bus info: usb@5
                   logical name: usb5
                   version: 5.03
                   capabilities: usb-2.00
                   configuration: driver=hub slots=2 speed=480Mbit/s
                 *-usb
                      description: Mouse
                      product: Microsoft 5-Button Mouse with IntelliEye(TM)
                      vendor: Microsoft
                      physical id: 2
                      bus info: usb@5:2
                      version: 3.00
                      capabilities: usb-1.10
                      configuration: driver=usbhid maxpower=100mA speed=2Mbit/s
              *-usbhost:1
                   product: xHCI Host Controller
                   vendor: Linux 5.3.0-7625-generic xhci-hcd
                   physical id: 1
                   bus info: usb@6
                   logical name: usb6
                   version: 5.03
                   capabilities: usb-3.10
                   configuration: driver=hub slots=2 speed=10000Mbit/s
        *-pci:5
             description: PCI bridge
             product: 200 Series PCH PCI Express Root Port #9
             vendor: Intel Corporation
             physical id: 1d
             bus info: pci@0000:00:1d.0
             version: f0
             width: 32 bits
             clock: 33MHz
             capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
             configuration: driver=pcieport
             resources: irq:125 ioport:2000(size=4096) memory:90000000-901fffff ioport:90200000(size=2097152)
        *-pci:6
             description: PCI bridge
             product: 200 Series PCH PCI Express Root Port #12
             vendor: Intel Corporation
             physical id: 1d.3
             bus info: pci@0000:00:1d.3
             version: f0
             width: 32 bits
             clock: 33MHz
             capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
             configuration: driver=pcieport
             resources: irq:126 memory:df100000-df1fffff
           *-network
                description: Wireless interface
                product: Wireless 8265 / 8275
                vendor: Intel Corporation
                physical id: 0
                bus info: pci@0000:07:00.0
                logical name: wlp7s0
                version: 78
                width: 64 bits
                clock: 33MHz
                capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
                configuration: broadcast=yes driver=iwlwifi driverversion=5.3.0-7625-generic firmware=36.77d01142.0 ip=192.168.0.31 latency=0 link=yes multicast=yes wireless=IEEE 802.11
                resources: irq:158 memory:df100000-df101fff
        *-isa
             description: ISA bridge
             product: Z370 Chipset LPC/eSPI Controller
             vendor: Intel Corporation
             physical id: 1f
             bus info: pci@0000:00:1f.0
             version: 00
             width: 32 bits
             clock: 33MHz
             capabilities: isa bus_master
             configuration: latency=0
        *-memory UNCLAIMED
             description: Memory controller
             product: 200 Series/Z370 Chipset Family Power Management Controller
             vendor: Intel Corporation
             physical id: 1f.2
             bus info: pci@0000:00:1f.2
             version: 00
             width: 32 bits
             clock: 33MHz (30.3ns)
             configuration: latency=0
             resources: memory:df444000-df447fff
        *-multimedia
             description: Audio device
             product: 200 Series PCH HD Audio
             vendor: Intel Corporation
             physical id: 1f.3
             bus info: pci@0000:00:1f.3
             version: 00
             width: 64 bits
             clock: 33MHz
             capabilities: pm msi bus_master cap_list
             configuration: driver=snd_hda_intel latency=32
             resources: irq:159 memory:df440000-df443fff memory:df420000-df42ffff
             description: SMBus
             product: 200 Series/Z370 Chipset Family SMBus Controller
             vendor: Intel Corporation
             physical id: 1f.4
             bus info: pci@0000:00:1f.4
             version: 00
             width: 64 bits
             clock: 33MHz
             configuration: driver=i801_smbus latency=0
             resources: irq:16 memory:df44a000-df44a0ff ioport:f000(size=32)
        *-network
             description: Ethernet interface
             product: Ethernet Connection (2) I219-V
             vendor: Intel Corporation
             physical id: 1f.6
             bus info: pci@0000:00:1f.6
             logical name: eno1
             version: 00
             capacity: 1Gbit/s
             width: 32 bits
             clock: 33MHz
             capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
             configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k firmware=0.8-4 latency=0 link=no multicast=yes port=twisted pair
             resources: irq:138 memory:df400000-df41ffff
     *-pnp00:00
          product: PnP device PNP0c02
          physical id: 1
          capabilities: pnp
          configuration: driver=system
     *-pnp00:01
          product: PnP device PNP0c02
          physical id: 2
          capabilities: pnp
          configuration: driver=system
     *-pnp00:02
          product: PnP device PNP0c02
          physical id: 3
          capabilities: pnp
          configuration: driver=system
     *-pnp00:03
          product: PnP device PNP0c02
          physical id: 4
          capabilities: pnp
          configuration: driver=system
     *-pnp00:04
          product: PnP device PNP0b00
          physical id: 5
          capabilities: pnp
          configuration: driver=rtc_cmos
     *-pnp00:05
          product: PnP device INT3f0d
          physical id: 6
          capabilities: pnp
          configuration: driver=system
     *-pnp00:06
          product: PnP device PNP0c02
          physical id: 7
          capabilities: pnp
          configuration: driver=system
     *-pnp00:07
          product: PnP device PNP0c02
          physical id: 8
          capabilities: pnp
          configuration: driver=system
     *-pnp00:08
          product: PnP device PNP0c02
          physical id: 9
          capabilities: pnp
          configuration: driver=system
     *-pnp00:09
          product: PnP device PNP0c02
          physical id: a
          capabilities: pnp
          configuration: driver=system
  *-power UNCLAIMED
       description: To Be Filled By O.E.M.
       product: To Be Filled By O.E.M.
       vendor: To Be Filled By O.E.M.
       physical id: 1
       version: To Be Filled By O.E.M.
       capacity: 32768mWh

Here's some output from OCL:

$ sudo ./OpenCorsairLink.elf
Dev=0, CorsairLink Device Found: H110i Pro!

$ ./OpenCorsairLink.elf --debug
Checking USB device 0 (1d6b:0003)...
Checking USB device 1 (045e:0039)...
Checking USB device 2 (1d6b:0002)...
Checking USB device 3 (1d6b:0003)...
Checking USB device 4 (1b1c:0c14)...
Corsair product detected. Checking if device is H110i Pro... Could not open device 6940:3092.Checking USB device 5 (046d:c33c)...
Checking USB device 6 (8087:0a2b)...
Checking USB device 7 (1d6b:0002)...
Checking USB device 8 (1d6b:0003)...
Checking USB device 9 (1d6b:0002)...

DEBUG: scan done, start routines
DEBUG: selected device_number = -1
$ sudo ./OpenCorsairLink.elf --device 0 --debug
Checking USB device 0 (1d6b:0003)...
Checking USB device 1 (045e:0039)...
Checking USB device 2 (1d6b:0002)...
Checking USB device 3 (1d6b:0003)...
Checking USB device 4 (1b1c:0c14)...
Corsair product detected. Checking if device is H110i Pro... Dev=0, CorsairLink Device Found: H110i Pro!
Checking USB device 5 (046d:c33c)...
Checking USB device 6 (8087:0a2b)...
Checking USB device 7 (1d6b:0002)...
Checking USB device 8 (1d6b:0003)...
Checking USB device 9 (1d6b:0002)...

DEBUG: scan done, start routines
DEBUG: selected device_number = 0
DEBUG: shortcuts set
DEBUG: init done
Vendor: Corsair
Product: H110i Pro
00 00 00 00 00 00 00
Firmware: 0.0.0.0
hardware version returned: 00 00 00 00 00 00 00
00 00 00 00 00
Bad Response
Temperature 0:  0.00 C
00
00 00 00 00 00 00
Bad Response
Fan 0:  Mode 0x00
        Current/Max Speed 0/0 RPM
00
00 00 00 00 00 00
Bad Response
Fan 1:  Mode 0x00
        Current/Max Speed 0/0 RPM
function:corsairlink_asetekpro_pump_mode_read file: protocol/asetekpro/pump.c
pump mode response = 00 00 00 00
Bad Response for astekpro pump mode
pump speed response = 00 00 00 00 00
Bad Response for astekpro pump speed
Pump:   Mode 0x00 (AsetekProPumpQuiet)
        Current/Max Speed 0/0 RPM
DEBUG: deinit done
$ sudo ./OpenCorsairLink.elf --device 0 --fan channel=0,pwm=50 --debug
Checking USB device 0 (1d6b:0003)...
Checking USB device 1 (045e:0039)...
Checking USB device 2 (1d6b:0002)...
Checking USB device 3 (1d6b:0003)...
Checking USB device 4 (1b1c:0c14)...
Corsair product detected. Checking if device is H110i Pro... Dev=0, CorsairLink Device Found: H110i Pro!
Checking USB device 5 (046d:c33c)...
Checking USB device 6 (8087:0a2b)...
Checking USB device 7 (1d6b:0002)...
Checking USB device 8 (1d6b:0003)...
Checking USB device 9 (1d6b:0002)...

DEBUG: scan done, start routines
DEBUG: selected device_number = 0
DEBUG: shortcuts set
DEBUG: init done
Vendor: Corsair
Product: H110i Pro
00 00 00 00 00 00 00
Firmware: 0.0.0.0
hardware version returned: 00 00 00 00 00 00 00
00 00 00 00 00
Bad Response
Temperature 0:  0.00 C
00
00 00 00 00 00 00
Bad Response
Fan 0:  Mode 0x00
        Current/Max Speed 0/0 RPM
00
00 00 00 00 00 00
Bad Response
Fan 1:  Mode 0x00
        Current/Max Speed 0/0 RPM
function:corsairlink_asetekpro_pump_mode_read file: protocol/asetekpro/pump.c
pump mode response = 00 00 00 00
Bad Response for astekpro pump mode
pump speed response = 00 00 00 00 00
Bad Response for astekpro pump speed
Pump:   Mode 0x00 (AsetekProPumpQuiet)
        Current/Max Speed 0/0 RPM
Setting fan to mode: 0
42 00 32
DEBUG: deinit done

I get the feeling that this system is a variant of H110i Pro.

My primary need is fan and pump control which I hope to then plumb into upowerd etc.

My knowledge in this space is rudimentary but I am happy to dig as needed given pointers.

Thanks!

raw-bin commented 4 years ago

@audiohacked : By any chance, is there a knowledge repository that could help n00bs like me to investigate issues like this one ? Apologies in advance if there's something obvious that I lazily missed.

I was thinking of the following:

For example - I think I read somewhere that one way of learning more about the CL protocol would be to use Corsair's Windows specific tooling running in a Windows VM on Virtualbox which is set up to enable pass through comms from the Windows VM to the USB controller hardware. Then use Wireshark on the Linux host. I would be very interested in knowing if that's the way to go to learn more.

Maybe such information could be maintained on the OCL project wiki ? I would be happy to help with that if it's the way to go.

Thanks!

Legion2 commented 4 years ago

@raw-bin have a look at https://github.com/Legion2/CorsairLightingProtocol this is an open source implementation of the current protocol on the device side.

audiohacked commented 4 years ago

@raw-bin There isn't any knowledge repository for the corsair hardware. Most of the work has been done by using Wireshark and the Windows programs to sniff the USB.

raw-bin commented 4 years ago

Thanks both! @audiohacked : Do you perchance have any kind of wireshark resources that you've built up like filter scripts etc ? Or other such goodness that can help n00bs get cracking ? If not - for the problem that I'm seeing what would you suggest I look at first ? All fairly woolly questions I admit but I'm hoping that I can learn from experienced folks and contribute back. Thanks!