Giter Club home page Giter Club logo

Comments (14)

greenseeker avatar greenseeker commented on May 24, 2024 2

kone_aimo_remastered.pcapng.gz
Let me know if I've done this incorrectly or if you need anything else.

from eruption.

TheMysteriousOH avatar TheMysteriousOH commented on May 24, 2024 1

Here is a ROCCAT Swarm Capture for the ROCCAT VULCAN Pro
ROCCAT_SWARM_Capture.pcapng.zip

from eruption.

mixolydianmel avatar mixolydianmel commented on May 24, 2024 1

I'm having the same issue, but I'm using the ROCCAT Kone Pure Ultra, which is listed in the supported devices for eruption. This might be because I'm on Artix, and therefore no systemd, but usually I can just add the executable to the default run level using rc-upate if I copy it to /etc/init.d/, so I actually don't think a lack of systemd is the issue here.

from eruption.

X3n0m0rph59 avatar X3n0m0rph59 commented on May 24, 2024

Hi @greenseeker, thank you for submitting this bug report!

It seems that Eruption is unable to find any supported devices. Starting up with no devices at all seems to trigger this bug.
Could you please tell me what devices you have connected to your system?

 $ sudo lsusb

from eruption.

greenseeker avatar greenseeker commented on May 24, 2024

Hi @X3n0m0rph59,

It's the Kone AIMO Remastered:
Bus 003 Device 002: ID 1e7d:2e2c ROCCAT ROCCAT Kone Aimo 16K

If not supported, please let me know if I can provide anything helpful. I am not a developer but I am a Linux engineer.

from eruption.

X3n0m0rph59 avatar X3n0m0rph59 commented on May 24, 2024

@greenseeker The ROCCAT Kone Aimo 16K is currently not supported by Eruption. To add support for it, I would need a trace of the packets sent over the USB bus to the device, during the device initialization sequence done by ROCCAT Swarm.

This can be achieved using the usbmon Linux kernel module as well as Wireshark, capturing the USB traffic originating on a Windows 10 VM that is running ROCCAT Swarm.

I wrote a short article in the Eruption Wiki on how to do this.

It would be really nice if you could find the time!

from eruption.

TheMysteriousOH avatar TheMysteriousOH commented on May 24, 2024

Hi @X3n0m0rph59,
I have the same Issue with the Roccat Vulcan Pro.
My System is Arch Linux.
Attached you find the journal log.
eruption.log

from eruption.

X3n0m0rph59 avatar X3n0m0rph59 commented on May 24, 2024

@cadenhenrich I set up an Artix virtual machine using the OpenRC init system and investigated the issue, but was so far unable to reproduce. It seems that Eruption is able to build and run on non-systemd distros.

It seems that Eruption is unable to find any supported devices. Starting up with no devices at all seems to trigger this bug.

Maybe the Eruption daemon is somehow failing to enumerate the devices on your system. To further investigate this issue, could you please provide some logs of Eruption starting up?

 $ sudo RUST_LOG=debug eruption 

or, if you built from source

 $ sudo RUST_LOG=debug target/debug/eruption -c support/config/eruption-dev.conf

from eruption.

X3n0m0rph59 avatar X3n0m0rph59 commented on May 24, 2024

@cadenhenrich I can reproduce it now! Starting Eruption with only a supported mouse device connected, and no keyboard, will trigger this bug. I am working on a fix for this now...

from eruption.

X3n0m0rph59 avatar X3n0m0rph59 commented on May 24, 2024

@cadenhenrich Thanks for bringing this to my attention. I believe that this problem is fixed now in the master branch!

The Eruption GUI version 0.0.7 (tech preview) will not work, as it currently depends on a connected keyboard.

from eruption.

mixolydianmel avatar mixolydianmel commented on May 24, 2024

Seems to be fixed, although the LED keeps going from solid blue to breathing rainbow and back again. Now to figure out how to turn on the zero-debounce option!

EDIT: Turns out the LED doing that is the afk mode. Took a closer look at the profiles, didn't see it on first glance.

from eruption.

X3n0m0rph59 avatar X3n0m0rph59 commented on May 24, 2024

@cadenhenrich, great!

I have looked into the zero-debounce configuration and done some Wireshark captures. I got it working on a ROCCAT Kone Pure Ultra!

On a ROCCAT Kone Pure Ultra mouse, this is how to enable zero-debounce:

  • Find mouse device index like this:
 $ sudo eruption-debug-tool list

 Please stop the Eruption daemon prior to running this tool:
 $ sudo systemctl mask eruption.service && sudo systemctl stop eruption.service

 You can re-enable Eruption with this command afterwards:
 $ sudo systemctl unmask eruption.service && sudo systemctl start eruption.service
 

Please find the device you want to debug below and use its respective
index number (column 1) as the device index for the other sub-commands of this tool

Index: 00: ID: 46d:c051 Logitech/USB-PS/2 Optical Mouse Subdev: 0
Index: 01: ID: 1e7d:2dd2 ROCCAT/ROCCAT Kone Pure Ultra Subdev: 0
Index: 02: ID: 1e7d:2dd2 ROCCAT/ROCCAT Kone Pure Ultra Subdev: 1
Index: 03: ID: 1e7d:2dd2 ROCCAT/ROCCAT Kone Pure Ultra Subdev: 2
Index: 04: ID: 1e7d:2dd2 ROCCAT/ROCCAT Kone Pure Ultra Subdev: 3
Index: 05: ID: 1e7d:311a ROCCAT/ROCCAT Vulcan Pro TKL Subdev: 0
Index: 06: ID: 1e7d:311a ROCCAT/ROCCAT Vulcan Pro TKL Subdev: 1
Index: 07: ID: 1e7d:311a ROCCAT/ROCCAT Vulcan Pro TKL Subdev: 2
Index: 08: ID: 1e7d:311a ROCCAT/ROCCAT Vulcan Pro TKL Subdev: 3

Enumeration completed

So the device index on my system would be 1.

  • We need to write to the device with index 1, as determined previously
  • Byte 3 of the data structure represents the zero-debounce configuration option (on a ROCCAT Kone Pure Ultra)

So, to turn on zero-debounce, I would need to run this command:

 $ sudo eruption-debug-tool write 1 '[0x11, 0x0e, 0x01, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x4c, 0x00, 0x05, 0x05, 0x00, 0x08, 0x00, 0x10, 0x00, 0x18, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x03, 0x09, 0x06, 0xff, 0x0f, 0x00, 0x00, 0x14, 0xff, 0xff, 0x00, 0x00, 0x14, 0xff, 0x00, 0x48, 0xff, 0x14, 0xff, 0x00, 0x48, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00]'

And to turn off the zero-debounce option, I run this command:

 $ sudo eruption-debug-tool write 1 '[0x11, 0x0e, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x4c, 0x00, 0x05, 0x05, 0x00, 0x08, 0x00, 0x10, 0x00, 0x18, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x03, 0x09, 0x06, 0xff, 0x0f, 0x00, 0x00, 0x14, 0xff, 0xff, 0x00, 0x00, 0x14, 0xff, 0x00, 0x48, 0xff, 0x14, 0xff, 0x00, 0x48, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00]'

To read out the state from the device:

 $ sudo eruption-debug-tool read 1 0x11 78

In case your mouse device needs a different byte sequence

  • Save a state snapshot of your mouse using:
 $ sudo eruption-debug-tool state-diff 1
  • Fire up ROCCAT Swarm (e.g. in a VM), change a single setting (zero-debounce)
  • Again, save a state snapshot of your mouse using:
 $ sudo eruption-debug-tool state-diff 1

On the second invocation of state-diff you will get a diff view of the changed bytes.

 $ sudo eruption-debug-tool state-diff 1

 Please stop the Eruption daemon prior to running this tool:
 $ sudo systemctl mask eruption.service && sudo systemctl stop eruption.service

 You can re-enable Eruption with this command afterwards:
 $ sudo systemctl unmask eruption.service && sudo systemctl start eruption.service
 
Index: 01: ID: 1e7d:2dd2 ROCCAT/ROCCAT Kone Pure Ultra Subdev: 0
Reading data from device...
The following USB HID report IDs have changed bytes:

Changed bytes: [116]
0x05: [0x05, 0x80, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xef, 0xe7, 0x01, 0x00, 0x00, 0x00, 0x90, 0x93, 0x00, 0x00, 0x94, 0x93, 0x00, 0x00, 0xa4, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x22, 0x40, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00=>0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, ]

Changed bytes: [116]
0x04: [0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xef, 0xe7, 0x01, 0x00, 0x00, 0x00, 0x90, 0x93, 0x00, 0x00, 0x94, 0x93, 0x00, 0x00, 0xa4, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x22, 0x40, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00=>0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, ]

Changed bytes: [2, 12]
0x11: [0x11, 0x0e, 0x00=>0x01, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x4c=>0x4d, 0x00, 0x00, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ]

Saving state data...
Done

from eruption.

mixolydianmel avatar mixolydianmel commented on May 24, 2024

Oh wow, thanks for all the help! I was just goingto figure it out on my own, so thanks for saving me a lot of work!

from eruption.

X3n0m0rph59 avatar X3n0m0rph59 commented on May 24, 2024

I believe this issue is fixed now. Please re-open this or another issue if you still encounter problems.

from eruption.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.