WootingKb / wootility-issues

A place to report issues with the Wootility and help with feedback on existing issues
21 stars 3 forks source link

The 4.3.11 AppImage Does not detect the keyboard #160

Open mmahmoudian opened 2 years ago

mmahmoudian commented 2 years ago

Describe the bug I downloaded the newest Wootility 4.3.11 from official website and realized that it does not detect the keyboard.

Fortunately I had 4.3.5 AppImage on my computer, so I started taht one and it easily detected the Wooting 2 HE I have. I went to setting and pressed the updated button and it got updated, then it again failed to detect the keyboard!

the terminal output (warning: IT IS LONG) ```console ❯ ./wootility-lekker-beta-4.3.5-beta.AppImage 19:51:16.394 › 4.3.5-beta 19:51:16.399 › Checking for update 19:51:16.399 › null Cannot set default protocol 19:51:18.605 › Found version 4.3.11-beta (url: wootility-lekker-beta-4.3.11-beta.AppImage) 19:51:18.606 › Downloading update from wootility-lekker-beta-4.3.11-beta.AppImage 19:51:18.607 › updater cache dir: /home/mehrad/.cache/wootility-lekker-beta-updater 19:51:18.673 › Cached update sha512 checksum doesn't match the latest available update. New update must be downloaded. Cached: OIp95bk0jvJkea9IdMp++lrF3lQsBp+Ve20rzFzvglVjb6/unJYqx9VPCUr9YlRyRZ0evrUaCmA7vqb929j9bQ==, expected: ArRFZKV7Oe0UUXGOWQ/2nO1SaUvkte+3xgtM0882KY9HFUrLshX8efd7mWqSZpH492EZRpE72cJnVFbYpFCJCg==. Directory for cached update will be cleaned 19:51:19.061 › File has 5868 changed blocks 19:51:19.061 › [ { "kind": 0, "start": 0, "end": 159006 }, { "kind": 1, "start": 159006, "end": 4454312 }, { "kind": 0, "start": 4427505, "end": 4463204 }, { "kind": 1, "start": 4490011, "end": 59924594 }, { "kind": 0, "start": 37303796, "end": 37381874 }, { "kind": 1, "start": 60002672, "end": 63496720 }, { "kind": 0, "start": 40771192, "end": 40853257 }, { "kind": 1, "start": 63578785, "end": 122515432 } ] 19:51:19.181 › Full: 119,770.95 KB, To download: 119,297.45 KB (100%) 19:51:19.183 › Differential download: https://wooting-update.s3.amazonaws.com/wootility-lekker-linux-beta/wootility-lekker-beta-4.3.11-beta.AppImage 19:51:19.185 › download range: bytes=159006-4454311 19:51:19.783 › download range: bytes=4490011-59924593 19:51:20.095 › [RenderApp] loaded: false 19:51:20.102 › [RenderApp] Complete 19:51:20.106 › Initing store after persist 19:51:20.111 › Rendering interface 19:51:20.282 › ready-to-show [ '/tmp/.mount_wootil06dGws/wootility-lekker-beta' ] 19:51:20.323 › [RenderApp] loaded: true 19:51:20.833 › ready-to-show [ '/tmp/.mount_wootil06dGws/wootility-lekker-beta' ] 19:51:20.833 › [RenderApp] loaded: true 19:51:22.339 › Searching for devices 19:51:22.365 › Failed to create device { vendorId: 12771, productId: 4640, path: '/dev/hidraw3', serialNumber: 'WOOT_001_A02B2130W041H00206', manufacturer: 'Wooting', product: 'WootingTwoHE', release: 256, interface: 2, usagePage: 4919, usage: 1 } TypeError: cannot open device with path /dev/hidraw3 at new HID (/tmp/.mount_wootil06dGws/resources/app.asar/node_modules/node-hid/nodehid.js:49:17) at Function.findConfigDevices (/tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:283613) at Wi.searchForDevices (/tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:289362) at /tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:289664 19:51:24.339 › Searching for devices 19:51:24.344 › Failed to create device { vendorId: 12771, productId: 4640, path: '/dev/hidraw3', serialNumber: 'WOOT_001_A02B2130W041H00206', manufacturer: 'Wooting', product: 'WootingTwoHE', release: 256, interface: 2, usagePage: 4919, usage: 1 } TypeError: cannot open device with path /dev/hidraw3 at new HID (/tmp/.mount_wootil06dGws/resources/app.asar/node_modules/node-hid/nodehid.js:49:17) at Function.findConfigDevices (/tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:283613) at Wi.searchForDevices (/tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:289362) at /tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:289664 19:51:25.727 › Rendering interface 19:51:26.040 › Warning: componentWillReceiveProps has been renamed, and is not recommended for use. See https://fb.me/react-unsafe-component-lifecycles for details. * Move data fetching code or side effects to componentDidUpdate. * If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state * Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder. Please update the following components: ColorPicker, EditableInput, Nd, Portal 19:51:26.339 › Searching for devices 19:51:26.342 › Failed to create device { vendorId: 12771, productId: 4640, path: '/dev/hidraw3', serialNumber: 'WOOT_001_A02B2130W041H00206', manufacturer: 'Wooting', product: 'WootingTwoHE', release: 256, interface: 2, usagePage: 4919, usage: 1 } TypeError: cannot open device with path /dev/hidraw3 at new HID (/tmp/.mount_wootil06dGws/resources/app.asar/node_modules/node-hid/nodehid.js:49:17) at Function.findConfigDevices (/tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:283613) at Wi.searchForDevices (/tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:289362) at /tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:289664 19:51:26.561 › download range: bytes=60002672-63496719 19:51:27.256 › download range: bytes=63578785-122515431 19:51:28.339 › Searching for devices 19:51:28.342 › Failed to create device { vendorId: 12771, productId: 4640, path: '/dev/hidraw3', serialNumber: 'WOOT_001_A02B2130W041H00206', manufacturer: 'Wooting', product: 'WootingTwoHE', release: 256, interface: 2, usagePage: 4919, usage: 1 } TypeError: cannot open device with path /dev/hidraw3 at new HID (/tmp/.mount_wootil06dGws/resources/app.asar/node_modules/node-hid/nodehid.js:49:17) at Function.findConfigDevices (/tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:283613) at Wi.searchForDevices (/tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:289362) at /tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:289664 19:51:30.339 › Searching for devices 19:51:30.343 › Failed to create device { vendorId: 12771, productId: 4640, path: '/dev/hidraw3', serialNumber: 'WOOT_001_A02B2130W041H00206', manufacturer: 'Wooting', product: 'WootingTwoHE', release: 256, interface: 2, usagePage: 4919, usage: 1 } TypeError: cannot open device with path /dev/hidraw3 at new HID (/tmp/.mount_wootil06dGws/resources/app.asar/node_modules/node-hid/nodehid.js:49:17) at Function.findConfigDevices (/tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:283613) at Wi.searchForDevices (/tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:289362) at /tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:289664 19:51:32.339 › Searching for devices 19:51:32.343 › Failed to create device { vendorId: 12771, productId: 4640, path: '/dev/hidraw3', serialNumber: 'WOOT_001_A02B2130W041H00206', manufacturer: 'Wooting', product: 'WootingTwoHE', release: 256, interface: 2, usagePage: 4919, usage: 1 } TypeError: cannot open device with path /dev/hidraw3 at new HID (/tmp/.mount_wootil06dGws/resources/app.asar/node_modules/node-hid/nodehid.js:49:17) at Function.findConfigDevices (/tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:283613) at Wi.searchForDevices (/tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:289362) at /tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:289664 19:51:34.339 › Searching for devices 19:51:34.345 › Failed to create device { vendorId: 12771, productId: 4640, path: '/dev/hidraw3', serialNumber: 'WOOT_001_A02B2130W041H00206', manufacturer: 'Wooting', product: 'WootingTwoHE', release: 256, interface: 2, usagePage: 4919, usage: 1 } TypeError: cannot open device with path /dev/hidraw3 at new HID (/tmp/.mount_wootil06dGws/resources/app.asar/node_modules/node-hid/nodehid.js:49:17) at Function.findConfigDevices (/tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:283613) at Wi.searchForDevices (/tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:289362) at /tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:289664 19:51:35.925 › New version 4.3.11-beta has been downloaded to /home/mehrad/.cache/wootility-lekker-beta-updater/pending/wootility-lekker-beta-4.3.11-beta.AppImage 19:51:36.339 › Searching for devices 19:51:36.343 › Failed to create device { vendorId: 12771, productId: 4640, path: '/dev/hidraw3', serialNumber: 'WOOT_001_A02B2130W041H00206', manufacturer: 'Wooting', product: 'WootingTwoHE', release: 256, interface: 2, usagePage: 4919, usage: 1 } TypeError: cannot open device with path /dev/hidraw3 at new HID (/tmp/.mount_wootil06dGws/resources/app.asar/node_modules/node-hid/nodehid.js:49:17) at Function.findConfigDevices (/tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:283613) at Wi.searchForDevices (/tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:289362) at /tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:289664 19:51:38.340 › Searching for devices 19:51:38.345 › Failed to create device { vendorId: 12771, productId: 4640, path: '/dev/hidraw3', serialNumber: 'WOOT_001_A02B2130W041H00206', manufacturer: 'Wooting', product: 'WootingTwoHE', release: 256, interface: 2, usagePage: 4919, usage: 1 } TypeError: cannot open device with path /dev/hidraw3 at new HID (/tmp/.mount_wootil06dGws/resources/app.asar/node_modules/node-hid/nodehid.js:49:17) at Function.findConfigDevices (/tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:283613) at Wi.searchForDevices (/tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:289362) at /tmp/.mount_wootil06dGws/resources/app.asar/js/app-bundle.js:1:289664 19:51:39.978 › Install on explicit quitAndInstall 19:51:39.979 › Install: isSilent: false, isForceRunAfter: true, installPathRequiresElevation: false 19:51:40.029 › Update installer has already been triggered. Quitting application. ```

To Reproduce Steps to reproduce the behavior:

  1. connect a Wooting2 HE 100%
  2. run ./wootility-lekker-beta-4.3.5-beta.AppImage
  3. observe that it correctly and easily detects the keyboard
  4. Go to settings
  5. observe that there is a red icon near the update button on the left sidebar
  6. click on the designated button to update the AppImage
  7. observe wootility failing to recognize the keyboard

Screenshots / Video image

Desktop (please complete the following information):

❯  inxi --usb --system --width 80
System:
  Host: Chrstphr Kernel: 5.15.41-1-MANJARO arch: x86_64 bits: 64
    Desktop: KDE Plasma v: 5.24.5 Distro: Manjaro Linux
USB:
  Hub-1: 1-0:1 info: Full speed or root hub ports: 2 rev: 2.0
  Hub-2: 1-1:2 info: Intel Integrated Rate Matching Hub ports: 6 rev: 2.0
  Hub-3: 2-0:1 info: Full speed or root hub ports: 2 rev: 2.0
  Hub-4: 2-1:2 info: Intel Integrated Rate Matching Hub ports: 8 rev: 2.0
  Hub-5: 3-0:1 info: Hi-speed hub with single TT ports: 14 rev: 2.0
  Device-1: 3-7:2 info: Corsair Sabre RGB [CH-9303011-XX] type: Mouse,HID
    rev: 2.0
  Device-2: 3-8:3 info: Wooting WootingTwoHE type: Keyboard,HID rev: 2.0
  Device-3: 3-10:4 info: HP ENVY 4520 series type: Printer rev: 2.0
  Hub-6: 4-0:1 info: Super-speed hub ports: 6 rev: 3.0

Let me know of you need more details.

Wootility and Firmware version Well, I wish I knew the firmware version. I cannot use wootility to connect to my keyboard! You not giving us access to older AppImages and you deleting the 4.3.5 from my system without my consent (!!!!!!!) have already put me in a very badly helpless situation and consequently mood here!!! I understand you don't want to make the Wootility FLOSS, but:

  1. respect people's privacy and don't delete software from their computer without getting consent!!!
  2. let users download older versions!!

Keyboard Type Wooting 2 HE

mmahmoudian commented 2 years ago

Additionally, your Github Action failed:

https://github.com/WootingKb/wootility-issues/actions/runs/2449297118

simon-wh commented 2 years ago

Hi, really sorry to hear that you had this experience, I understand the frustration of it updating and you're suddenly not able to use it properly.

Re: "deleting v4.5.3 from your system", Unfortunately, this is a properly of how the updating system we use (electron builder) works, we didn't deliberately choose that behaviour. I understand how it's frustrating for it to remove the existing version but it's somewhat necessary for this kind of system, as otherwise, you could easily end up with lots of dead older versions building up every time you update.

We also don't prevent users from downloading older versions. The links are pretty flexible and you can use it to choose which version to download, e.g. https://api.wooting.io/public/wootility/download?os=linux&branch=lekker&channel=beta&version=4.3.5 Looks like there's a bug in our server causing it to not produce the correct link right now. Alternatively, you can use direct download links and tweak the version number, https://s3.eu-west-2.amazonaws.com/wooting-update/wootility-lekker-linux-beta/wootility-lekker-beta-4.3.8-beta.AppImage

I'd recommend trying v4.3.8 as it includes support for the --disable-updates flag which disables all the built-in auto updating. It is also a version before one of the big changes which I think could be the cause for the device connection breaking in the latest version of Wootility for you.

Could you also give me a copy of the udev rules you have installed in your system? Just want to double-check the contents of it to ensure that's not related

mmahmoudian commented 2 years ago

@simon-wh thank you for quick and detailed reply.

as otherwise, you could easily end up with lots of dead older versions building up every time you update.

That's literally the reason that AppImage is superior: being able to have different versions side by side. The exact reason Singularity is better than Docker and etc.

Looks like there's a bug in our server causing it to not produce the correct link right now. Alternatively, you can use direct download links and tweak the version number, https://s3.eu-west-2.amazonaws.com/wooting-update/wootility-lekker-linux-beta/wootility-lekker-beta-4.3.8-beta.AppImage

Thanks for clarification. Would be nice to have this on wooting.io download page as well

I'd recommend trying v4.3.8 as it includes support for the --disable-updates flag which disables all the built-in auto updating. It is also a version before one of the big changes which I think could be the cause for the device connection breaking in the latest version of Wootility for you.

Awesome. I'll give it a try and will report back

mmahmoudian commented 2 years ago

Could you also give me a copy of the udev rules you have installed in your system? Just want to double-check the contents of it to ensure that's not related

I'm not familiar with udev. Reading Arch Wiki got me to this command:

udevadm monitor --environment --udev

So I took the following steps:

  1. disconnected the keyboard from computer
  2. run this command using onscreen keyboard
  3. connected the keyboard's USB back to the computer
  4. waited for ~10 seconds
  5. pressed Ctrlc on the Wooting 2HE keyboard

The output can be found in this PrivateBin link:

https://bin.snopyta.org/?59cfc7110a4f8acc#EvwBMNpfqBxbrYgWxDKLmnfTUCcp29aA9qoV4kqPuUK8

Please let me know if there is anything more I can do/test/provide to make your debugging easier.

simon-wh commented 2 years ago

Could you also give me a copy of the udev rules you have installed in your system? Just want to double-check the contents of it to ensure that's not related

I'm not familiar with udev. reading Arch Wiki got me to this command:

udevadm monitor --environment --udev

Oh, when I was asking about udev rules I was referring to the file you would've created following this guide which is part of the general required set-up for running Wootility on Linux. If you don't have this set-up I'm surprised you were able to have Wootility v4.3.4 working unless you were running as root.

The output can be found in this PrivateBin link:

https://bin.snopyta.org/?59cfc7110a4f8acc#EvwBMNpfqBxbrYgWxDKLmnfTUCcp29aA9qoV4kqPuUK8

Please let me know if there is anything more I can do/test/provide to make your debugging easier.

Thanks

That's literally the reason that AppImage is superior: being able to have different versions side by side. The exact reason Singularity is better than Docker and etc.

That is true, just not sure what the best way to have the AppImage + Updating set-up working well for all users while still leaving that benefit available

Thanks for clarification. Would be nice to have this on wooting.io download page as well

Yeah, that would be ideal, there's a number of improvements I'd like to make, like that and a better changelog system, but I haven't had to time to develop that yet 😄

mmahmoudian commented 2 years ago

If you don't have this set-up I'm surprised you were able to have Wootility v4.3.4 working unless you were running as root.

I recently did a fresh install of Manjaro, but I have my /home as a separate partition, so the /* is new, but the /home/ is not. On the previous OS I had the udev based on the instructions on wooting.io, but of course I don't know how old was. I received my Wooting 2HE on Nov 2021, and whatever instruction was on your website back in the day, I have had used those.

Anyways, today the 4.3.5 opened and detected my keyboard for sure, but I didn't change any settings before attempting to update the AppImage, therefore I'm not sure it had the full functionality or not. Is it possible that some of the settings is stored in /home/?

I'll now do the udev rules based on the link you shared and will report back with 4.3.11

mmahmoudian commented 2 years ago

This is weird. I did created the udev rule file as explained and rebooted (just to be on the safe side) and ran 4.3.11 and now it detected the keyboard and managed to updated the firmware!! Now I can confirm the firmware version: v2.4.14

image

Clearly it would be good to have a feature to detect that the udev file is "missing" (considering the rw-r--r-- permission of /etc/udev/rules.d/) and inform the user about the actions they should take, but this is strange as the 4.3.5 detected my keyboard! 🤯 Is it possible that the 4.3.5 falsely notify the user that the keyboard is detected?

Is there anything else I can provide to make your life easier for this issue?

mmahmoudian commented 2 years ago

That is true, just not sure what the best way to have the AppImage + Updating set-up working well for all users while still leaving that benefit available

Perhaps renaming the old AppImage and append the .old extension would do. This way they will have the option to keep one last working version locally at the cost of ~125MB storage, and they can use it simply by removing the file's extension.

danir-de commented 1 year ago

Pleeease link the guide (https://help.wooting.io/en/article/wootility-configuring-device-access-for-wootility-under-linux-udev-rules-r6lb2o/) inside the App on linux, if failed to detect/connect to the keyboard.