pwr-Solaar / Solaar

Linux device manager for Logitech devices
https://pwr-solaar.github.io/Solaar
GNU General Public License v2.0
5.44k stars 404 forks source link

K400+ Keyboard/touchpad, touchpad does not work in 1.1.5 and 1.1.8 #2007

Closed pgratz1 closed 1 year ago

pgratz1 commented 1 year ago

Basically the title. Solaar does seem to connect to the keyboard just fine, just no response from the touch pad. Interestingly it used to work fine before I installed Solaar (using a different wireless dongle). When I tried to go back to the original dongle with solaar installed it would not connect anymore so I unpaired and repaired on that one and now it has the same behavoir (no touchpad but keyboard works). Tried this on three different Kubuntu machines and both the shipping 1.1.5 and the newer 1.1.8 that I got from Launchpad. No warnings or errors on the console that I launch solaar from.

Here is a screenshot that shows its connected and that it seems to know that there should be a touchpad: image

Any help greatly appreciated!

Information

``` pgratz@pgratz-OptiPlex-7070:~/Downloads$ solaar show solaar version 1.1.8+dfsg-2 Unifying Receiver Device path : /dev/hidraw0 USB id : 046d:C52B Serial : BD82B409 Firmware : 12.10.B0032 Bootloader : 02.15 Other : AA.AA Has 3 paired device(s) out of a maximum of 6. Notifications: wireless, software present (0x000900) Device activity counters: 1=196, 2=5, 3=62 1: Wireless Mouse M510 Device path : /dev/hidraw1 WPID : 4051 Codename : M510v2 Kind : mouse Protocol : HID++ 4.5 Polling rate : 8 ms (125Hz) Serial number: BD82B409 Model ID: 405100000000 Unit ID: BD82B409 Firmware: RQM 62.00.B0013 The power switch is located on the base. Supports 22 HID++ 2.0 features: 0: ROOT {0000} V0 1: FEATURE SET {0001} V0 2: DEVICE FW VERSION {0003} V1 Firmware: Firmware RQM 62.00.B0013 4051 Unit ID: BD82B409 Model ID: 405100000000 Transport IDs: {'wpid': '4051'} 3: DEVICE NAME {0005} V0 Name: Wireless Mouse M510 Kind: mouse 4: CONFIG CHANGE {0020} V0 5: BATTERY STATUS {1000} V0 Battery: 70%, discharging, next level 5%. 6: DEVICE RESET {1802} V0 internal, hidden 7: unknown:1810 {1810} V0 internal, hidden 8: unknown:1830 {1830} V0 internal, hidden 9: unknown:1862 {1862} V0 internal, hidden 10: unknown:1890 {1890} V0 internal, hidden 11: unknown:18A0 {18A0} V0 internal, hidden 12: unknown:18B1 {18B1} V0 internal, hidden 13: REPROG CONTROLS V4 {1B04} V2 Key/Button Actions (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Scroll Left Button , Right Tilt:Mouse Scroll Right Button} Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Scroll Left Button , Right Tilt:Mouse Scroll Right Button} Key/Button Diversion (saved): {Left Button:Regular, Right Button:Regular, Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Left Tilt:Regular, Right Tilt:Regular} Key/Button Diversion : {Left Button:Regular, Right Button:Regular, Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Left Tilt:Regular, Right Tilt:Regular} 14: WIRELESS DEVICE STATUS {1D4B} V0 15: REMAINING PAIRING {1DF0} V0 hidden Remaining Pairings: 137 16: unknown:1DF3 {1DF3} V0 internal, hidden 17: unknown:1E00 {1E00} V0 hidden 18: unknown:1EB0 {1EB0} V0 internal, hidden 19: unknown:1F03 {1F03} V0 internal, hidden 20: LOWRES WHEEL {2130} V0 Wheel Reports: HID Scroll Wheel Diversion (saved): False Scroll Wheel Diversion : False 21: POINTER SPEED {2205} V0 Pointer Speed: 1.0 Sensitivity (Pointer Speed) (saved): 256 Sensitivity (Pointer Speed) : 256 Has 7 reprogrammable keys: 0: Left Button , default: Left Click => Left Click mse, divertable, pos:0, group:1, group mask:g1 reporting: default 1: Right Button , default: Right Click => Right Click mse, divertable, pos:0, group:1, group mask:g1 reporting: analytics key events reporting 2: Middle Button , default: Mouse Middle Button => Mouse Middle Button mse, reprogrammable, divertable, raw XY, pos:0, group:2, group mask:g1,g2 reporting: unknown:000200 3: Left Tilt , default: Mouse Scroll Left Button => Mouse Scroll Left Button mse, reprogrammable, divertable, raw XY, pos:0, group:2, group mask:g1,g2 reporting: analytics key events reporting, unknown:000200 4: Right Tilt , default: Mouse Scroll Right Button => Mouse Scroll Right Button mse, reprogrammable, divertable, raw XY, pos:0, group:2, group mask:g1,g2 reporting: unknown:000400 5: Back Button , default: Mouse Back Button => Mouse Back Button mse, reprogrammable, divertable, raw XY, pos:0, group:2, group mask:g1,g2 reporting: analytics key events reporting, unknown:000400 6: Forward Button , default: Mouse Forward Button => Mouse Forward Button mse, reprogrammable, divertable, raw XY, pos:0, group:2, group mask:g1,g2 reporting: unknown:000600 Battery: 70%, discharging, next level 5%. 2: Wireless Wave Keyboard K350 Device path : /dev/hidraw2 WPID : 200A Codename : K350 Kind : keyboard Protocol : HID++ 1.0 Polling rate : 20 ms (50Hz) Serial number: EE6AA15D Firmware: 65.00.B0003 Other: 00.01 The power switch is located on the base. Notifications: battery status (0x100000). Features: (none) Battery: full, discharging. 3: Wireless Touch Keyboard K400 Plus Device path : /dev/hidraw5 WPID : 404D Codename : K400 Plus Kind : keyboard Protocol : HID++ 4.1 Polling rate : 8 ms (125Hz) Serial number: D3113608 Model ID: 404D00000000 Unit ID: 9E87F9AF Bootloader: BOT 22.02.B0002 Firmware: RQK 63.02.B0016 Other: The power switch is located on the top edge. Supports 24 HID++ 2.0 features: 0: ROOT {0000} V0 1: FEATURE SET {0001} V0 2: DEVICE FW VERSION {0003} V1 Firmware: Bootloader BOT 22.02.B0002 404D6217AD40 Firmware: Firmware RQK 63.02.B0016 404D6217AD40 Firmware: Other Unit ID: 9E87F9AF Model ID: 404D00000000 Transport IDs: {'wpid': '404D'} 3: DEVICE NAME {0005} V0 Name: Wireless Touch Keyboard K400 Plus Kind: keyboard 4: WIRELESS DEVICE STATUS {1D4B} V0 5: CONFIG CHANGE {0020} V0 6: BATTERY STATUS {1000} V0 Battery: 90%, discharging, next level 50%. 7: REPROG CONTROLS V4 {1B04} V0 Key/Button Diversion (saved): {Volume Up:Regular, Volume Down:Regular, Mute:Regular, Play/Pause:Regular, Next:Regular, Previous:Regular, Application Switcher:Regular, My Home:Regular, Media Player:Regular, Search:Regular, Sleep:Regular, Contextual Menu:Regular, Back:Regular, Show Desktop:Regular, Maximize Window:Regular, Switch Screen:Regular, Fn Left Click:Regular, Second Left Click:Regular} Key/Button Diversion : {Volume Up:Regular, Volume Down:Regular, Mute:Regular, Play/Pause:Regular, Next:Regular, Previous:Regular, Application Switcher:Regular, My Home:Regular, Media Player:Regular, Search:Regular, Sleep:Regular, Contextual Menu:Regular, Back:Regular, Show Desktop:Regular, Maximize Window:Regular, Switch Screen:Regular, Fn Left Click:Regular, Second Left Click:Regular} 8: SWAP BUTTON CANCEL {2005} V0 9: NEW FN INVERSION {40A2} V0 Fn-swap: enabled Fn-swap default: enabled Swap Fx function (saved): True Swap Fx function : True 10: ENCRYPTION {4100} V0 11: KEYBOARD DISABLE KEYS {4521} V0 Disable keys (saved): {Caps Lock:False, Scroll Lock:False, Insert:False, Win:False} Disable keys : {Caps Lock:False, Scroll Lock:False, Insert:False, Win:False} 12: TOUCHPAD RAW XY {6100} V0 13: GESTURE 2 {6501} V0 Gestures (saved): {1: True, 2: True, 10: True, 30: True, 34: False, 42: True, 43: True, 45: False, 64: False, 65: False, 67: False, 84: True} Gestures : {1: True, 2: True, 30: True, 10: True, 45: False, 42: True, 43: True, 64: False, 65: False, 67: False, 84: True, 34: False} Gestures Diversion (saved): {1: False, 2: False, 10: False, 44: False, 64: False, 65: False, 67: False, 84: False, 85: False, 100: False} Gestures Diversion : {1: False, 2: False, 10: False, 44: False, 64: False, 65: False, 67: False, 84: False, 85: False, 100: False} Gesture params (saved): {4: {'scale': 256}} Gesture params : {4: {'scale': 256}} 14: DFUCONTROL UNSIGNED {00C1} V0 15: unknown:1811 {1811} V0 internal, hidden 16: unknown:1830 {1830} V0 internal, hidden 17: unknown:1890 {1890} V0 internal, hidden 18: unknown:1DF3 {1DF3} V0 internal, hidden 19: unknown:1E00 {1E00} V0 hidden 20: unknown:1EB0 {1EB0} V0 internal, hidden 21: unknown:1861 {1861} V0 internal, hidden 22: unknown:18B0 {18B0} V0 internal, hidden 23: unknown:1F11 {1F11} V0 internal, hidden Has 20 reprogrammable keys: 0: Second Left Click , default: Left Click => Left Click mse, divertable, pos:0, group:0, group mask:empty reporting: default 1: Back , default: Mouse Back Button => Mouse Back Button is FN, FN sensitive, reprogrammable, divertable, pos:1, group:0, group mask:empty reporting: default 2: My Home , default: HomePage => HomePage is FN, FN sensitive, reprogrammable, divertable, pos:2, group:0, group mask:empty reporting: default 3: Application Switcher , default: Application Switcher => Application Switcher is FN, FN sensitive, reprogrammable, divertable, pos:3, group:0, group mask:empty reporting: default 4: Contextual Menu , default: Right Click => Right Click is FN, FN sensitive, reprogrammable, divertable, pos:4, group:0, group mask:empty reporting: default 5: Search , default: Search Files => Search Files is FN, FN sensitive, reprogrammable, divertable, pos:5, group:0, group mask:empty reporting: default 6: Show Desktop , default: Show Desktop => Show Desktop is FN, FN sensitive, reprogrammable, divertable, pos:6, group:0, group mask:empty reporting: default 7: Maximize Window , default: Maximize Window => Maximize Window is FN, FN sensitive, reprogrammable, divertable, pos:7, group:0, group mask:empty reporting: default 8: Switch Screen , default: Switch Presentation/Switch Screen => Switch Presentation/Switch Screen is FN, FN sensitive, reprogrammable, divertable, pos:8, group:0, group mask:empty reporting: default 9: Media Player , default: Music => Music is FN, FN sensitive, reprogrammable, divertable, pos:9, group:0, group mask:empty reporting: default 10: Previous , default: Previous => Previous is FN, FN sensitive, divertable, pos:10, group:0, group mask:empty reporting: default 11: Play/Pause , default: Play/Pause => Play/Pause is FN, FN sensitive, divertable, pos:11, group:0, group mask:empty reporting: default 12: Next , default: Next => Next is FN, FN sensitive, divertable, pos:12, group:0, group mask:empty reporting: default 13: Fn Left Click , default: ShowUI => ShowUI divertable, pos:0, group:0, group mask:empty reporting: default 14: Left Button , default: Left Click => Left Click mse, pos:0, group:0, group mask:empty reporting: default 15: Right Button , default: Right Click => Right Click mse, pos:0, group:0, group mask:empty reporting: default 16: Mute , default: Mute => Mute nonstandard, divertable, pos:0, group:0, group mask:empty reporting: default 17: Volume Up , default: Volume Up => Volume Up nonstandard, divertable, pos:0, group:0, group mask:empty reporting: default 18: Volume Down , default: Volume Down => Volume Down nonstandard, divertable, pos:0, group:0, group mask:empty reporting: default 19: Sleep , default: Sleep => Sleep reprogrammable, divertable, pos:0, group:0, group mask:empty reporting: default Has 17 gesture(s), 1 param(s) and 5 spec(s): Track1Finger Enabled(None): None Diverted:(None) None TapGestures Enabled(None): None Diverted:(None) None Tap1Finger Enabled( 0): True Diverted:( 0) False Tap2Finger Enabled( 1): True Diverted:( 1) False TapDrag1Finger Enabled( 2): True Diverted:(None) None DoubleTap1Finger Enabled( 3): True Diverted:( 2) False Scroll2FingerStateless Enabled(None): None Diverted:( 3) False NaturalScrolling Enabled( 4): False Diverted:(None) None Scroll2FingerHoriz Enabled( 5): True Diverted:(None) None Scroll2FingerVert Enabled( 6): True Diverted:(None) None LeftEdgeSwipe1Finger2 Enabled( 7): False Diverted:( 4) False RightEdgeSwipe1Finger2 Enabled( 8): False Diverted:( 5) False TopEdgeSwipe1Finger2 Enabled( 9): False Diverted:( 6) False Zoom2FingerStateless Enabled( 10): True Diverted:( 7) False FnClickGestureSuppression Enabled( 11): False Diverted:(None) None TwoFingersPresent Enabled(None): None Diverted:( 8) False DeviceSpecificRawData Enabled(None): None Diverted:( 9) False ScaleFactor Value ( 0): 256 [Default: 256] period unit Spec ( 3): 2048 DVI field width Spec ( 1): 8 field widths Spec ( 2): 8 multiplier Spec ( 5): None resolution Spec ( 4): 4 Battery: 90%, discharging, next level 50%. ```
``` CONTENTS HERE ```

Describe the bug A clear and concise description of what the bug is.

To Reproduce Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Screenshots If applicable, add screenshots to help explain your problem.

Additional context Add any other context about the problem here.

pfps commented 1 year ago

I've never had any problems with my K400 Plus. I've run it under most of the recent versions of Solaar and just upgraded Solaar there to version 1.1.8.

In any case Solaar should not have any effect on device input that cannot be controlled using HID++ commands and touchpad movements cannot be controlled using HID++ commands on the K400 Plus. (Some touchpad gestures can be controlled, though.)

You can monitor input from your keyboard at several levels in Linux to investigate what might be going on.

You can see the X events (if you are using X - Wayland may be different) using

xinput test M

To find out which M is for your device look at the output of

xinput

there may be several ids for your device if it produces several kinds of inputs. Pick the one that you are interested in.

If things are working OK then you should see output when you move your finger on the touchpad.

You can see the HID events (which are earlier in input processing) using

sudo evtest /dev/input/eventN

You can just try different N to find out which input is for your keyboard. Look for something like Input device name: "Logitech K400 Plus"

If you see touchpad events here then the keyboard is working fine but something in Linux is messing up. If you don't see touchpad events here then something might be going wrong with your keyboard.

pgratz1 commented 1 year ago

Thanks for the quick reply! See my notes below:

On Wed, Mar 1, 2023 at 10:57 AM Peter F. Patel-Schneider < @.***> wrote:

I've never had any problems with my K400 Plus. I've run it under most of the recent versions of Solaar and just upgraded Solaar there to version 1.1.8.

In any case Solaar should not have any effect on device input that cannot be controlled using HID++ commands and touchpad movements cannot be controlled using HID++ commands on the K400 Plus. (Some touchpad gestures can be controlled, though.)

You can monitor input from your keyboard at several levels in Linux to investigate what might be going on.

You can see the X events (if you are using X - Wayland may be different) using

xinput test M

To find out which M is for your device look at the output of

xinput

there may be several ids for your device if it produces several kinds of inputs. Pick the one that you are interested in.

I found the device number for the keyboard and mouse part of the K400+, the keyboard one works fine with xinput but there are no events for the mouse one.

If things are working OK then you should see output when you move your finger on the touchpad.

You can see the HID events (which are earlier in input processing) using

sudo evtest /dev/input/eventN

You can just try different N to find out which input is for your keyboard. Look for something like Input device name: "Logitech K400 Plus"

I found the one for the K400 Plus but again only keyboard output no mouse output when swiping the touchpad and clicking the buttons.

If you see touchpad events here then the keyboard is working fine but something in Linux is messing up. If you don't see touchpad events here then something might be going wrong with your keyboard.

I'm at a loss because this does seem to work in windows so I don't think its hardware, also it did work in linux a few weeks ago but today when I installed Solaar (to consolodate onto one wireless dongle) it stopped working...

Anything else I can try? Paul

Paul

— Reply to this email directly, view it on GitHub https://github.com/pwr-Solaar/Solaar/issues/2007#issuecomment-1450482887, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADGMOOTXGTR3PBEVCQ7ZDS3WZ55WLANCNFSM6AAAAAAVMHJTE4 . You are receiving this because you authored the thread.Message ID: @.***>

--

Paul V. Gratz Professor ECE Dept, Texas A&M University Office: 333M WERC Phone: 979-488-4551 http://cesg.tamu.edu/faculty/paul-gratz/

pfps commented 1 year ago

I would try using the keyboard under Windows and then under Linux without Solaar running. If the touchpad works under Windows but not Linux then there probably is something going on with the Linux input driver. If the touchpad works under Linux then try starting Solaar and see if anything changes.

pfps commented 1 year ago

One other thing to check is whether the Unifying receivers are the same. You can see the model of the receivers in the output of lsusb. The model is the second half of the ID field.

pfps commented 1 year ago

Is there still a problem here?

pgratz1 commented 1 year ago

Sorry for the delay in getting back, I've had a very busy week.

OK so to answer your questions, I had tried it under windows and it works fine there (both keyboard and touch pad). I also tried with two different receivers on linux, no difference.

Now the very strange part, I just turned it on again today and tried it out as I was writing this email and suddenly the touchpad is working fine in linux on the original receiver. I'm at a bit of a loss... My first guess would be flaky hardware but the fact that it worked fine on windows rules that out I think. Not sure if this is worth pursuing further (unless it stops working again). Paul

On Tue, Mar 7, 2023 at 9:20 AM Peter F. Patel-Schneider < @.***> wrote:

Is there still a problem here?

— Reply to this email directly, view it on GitHub https://github.com/pwr-Solaar/Solaar/issues/2007#issuecomment-1458356019, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADGMOOQ3QL2JXR5SVAKH2G3W25G43ANCNFSM6AAAAAAVMHJTE4 . You are receiving this because you authored the thread.Message ID: @.***>

--

Paul V. Gratz Professor ECE Dept, Texas A&M University Office: 333M WERC Phone: 979-488-4551 http://cesg.tamu.edu/faculty/paul-gratz/

pfps commented 1 year ago

Lots of things have to happen for input devices to work correctly in Linux. Obviously something was going wrong that is now going right. What that is is probably going to remain unknown unless the problem resurfaces.

If the problem does resurface feel free to reopen this issue.

pgratz1 commented 1 year ago

Thanks! Paul

On Wed, Mar 8, 2023 at 11:20 AM Peter F. Patel-Schneider < @.***> wrote:

Closed #2007 https://github.com/pwr-Solaar/Solaar/issues/2007 as completed.

— Reply to this email directly, view it on GitHub https://github.com/pwr-Solaar/Solaar/issues/2007#event-8698724055, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADGMOORT4V6UWUB2K3WUX6LW3C5VJANCNFSM6AAAAAAVMHJTE4 . You are receiving this because you authored the thread.Message ID: @.***>

--

Paul V. Gratz Professor ECE Dept, Texas A&M University Office: 333M WERC Phone: 979-488-4551 http://cesg.tamu.edu/faculty/paul-gratz/

cargocultprogramming commented 2 months ago

Sorry for the delay in getting back, I've had a very busy week. OK so to answer your questions, I had tried it under windows and it works fine there (both keyboard and touch pad). I also tried with two different receivers on linux, no difference. Now the very strange part, I just turned it on again today and tried it out as I was writing this email and suddenly the touchpad is working fine in linux on the original receiver. I'm at a bit of a loss... My first guess would be flaky hardware but the fact that it worked fine on windows rules that out I think. Not sure if this is worth pursuing further (unless it stops working again). Paul

Ran into the same issue - taking out the logitech receiver and plugging it in again solved my issue - see also #1510