Disobedient touchpad

Greetings.

Problem:
Have been using an Adesso pck-308ub keyboard with a built-in touchpad. All is fine except that the touchpad frequently needs a priming sliding motion to jog it back into response.
So, after not using it for some seconds or minutes, it won’t respond to a move or click attempt, until sliding finger on it once or twice to jog it back into responsiveness, whereby the second or third finger slide will actually move the pointer on screen.

Background:
The touchpad actually just emulates a mouse, and does not provide true touchpad functionality - just the way Adesso does things.
When going to kde system settings > input devices > touchpad, there are settings there but they don’t seem to have any effect, nor sustain attempted changes.
On the other hand, kde system settings > input devices > mouse, settings are in effect and do sustain changes, although none of them seem pertaining to the issue.

Tried:
Adesso does not provide a linux driver.
Already checked and tried tweaking files like the following with no change in outcome…

/sys/bus/usb/devices/2-2/power/autosuspend_delay_ms
/sys/module/usbhid/parameters/mousepoll

It does not seem to be defective hardware, since already tried another keyboard and the problem is the same - Adesso akb-450ub

The only potentially pertaining log entries found are…

systemd[1788]: Started Touchpad.
systemsettings5[21904]: kf.coreaddons: "Could not load plugin from "
systemsettings5[21904]: kf.coreaddons: "Could not load plugin from "
systemsettings5[21904]: kcm_touchpad: Using X11 backend
systemsettings5[21904]: qrc:/libinput/touchpad.qml:315:13: QML SpinBox: Binding loop detected for property "implicitWidth"
systemsettings5[21904]: qrc:/libinput/touchpad.qml:315:13: QML SpinBox: Binding loop detected for property "implicitWidth"
systemsettings5[21904]: qrc:/libinput/touchpad.qml:315:13: QML SpinBox: Binding loop detected for property "implicitHeight"
systemsettings5[21904]: qrc:/libinput/touchpad.qml:315:13: QML SpinBox: Binding loop detected for property "implicitWidth"
systemsettings5[21904]: qml: Touchpad configuration of device '1 : ETPS/2 Elantech Touchpad' opened
systemsettings5[21904]: file:///usr/lib64/qt5/qml/org/kde/kirigami.2/FormLayout.qml:280:9: QML QQuickItem* (parent or ancestor of QQuickLayoutAttached): Binding loop detected for property "preferredWidth"
systemsettings5[21904]: file:///usr/lib64/qt5/qml/org/kde/kirigami.2/private/RefreshableScrollView.qml:175:13: QML Binding: Binding loop detected for property "value"
systemd[1788]: Started Mouse.
systemsettings5[21921]: kf.coreaddons: "Could not load plugin from "
systemsettings5[21921]: kf.coreaddons: "Could not load plugin from "
systemsettings5[21921]: file:///usr/lib64/qt5/qml/org/kde/kirigami.2/private/RefreshableScrollView.qml:175:13: QML Binding: Binding loop detected for property "value"

Web searching finds nothing. What do you think?

Tumbleweed. VERSION_ID=“20211205”

Try disabling USB autosuspend. It can be be done with a suitable device matching udev rule, but easiest just to disable via kernel boot parameter. Add “usbcore.autosuspend=-1” to GRUB config…

https://wiki.archlinux.org/title/Power_management#USB_autosuspend
https://unix.stackexchange.com/questions/91027/how-to-disable-usb-autosuspend-on-kernel-3-7-10-or-above

Already tried disabling USB autosuspend, though in a more targeted way. Regardless, tried this again as suggested via kernal parameter…

usbcore.autosuspend=-1

…then after booting, confirmed that the value is -1…

cat /sys/module/usbcore/parameters/autosuspend

This did not seem to help, and thus usb autosuspend appears not to be the cause of the problem.

Thank you

Ok, it was worth a shot. Knowing the hardware (chipset) details might be useful to help others advise further.

/usr/sbin/hwinfo --mouse
lsusb

Perhaps a bug report is needed.

Right.


/usr/sbin/hwinfo --mouse

33: USB 00.1: 10503 USB Mouse
  [Created at usb.122]
  Unique ID: 8e8U.zH1F9lDwLw9
  Parent ID: pBe4.2DFUsyrieMD
  SysFS ID: /devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.1
  SysFS BusID: 2-2:1.1
  Hardware Class: mouse
  Model: "Holtek wireless multimedia keyboard with trackball [Trust ADURA 17911]"
  Hotplug: USB
  Vendor: usb 0x04d9 "Holtek Semiconductor, Inc."
  Device: usb 0xa01c "wireless multimedia keyboard with trackball [Trust ADURA 17911]"
  Revision: "4.01"
  Compatible to: int 0x0210 0x0023
  Driver: "usbhid"
  Driver Modules: "usbhid"
  Device File: /dev/input/mice (/dev/input/mouse1)
  Device Files: /dev/input/mice, /dev/input/mouse1, /dev/input/event4, /dev/input/by-path/pci-0000:00:14.0-usb-0:2:1.1-event-mouse, /dev/input/by-id/usb-HOLTEK_USB_Keyboard-if01-event-mouse, /dev/input/by-path/pci-0000:00:14.0-usb-0:2:1.1-mouse, /dev/input/by-id/usb-HOLTEK_USB_Keyboard-if01-mouse
  Device Number: char 13:63 (char 13:33)
  Speed: 1.5 Mbps
  Module Alias: "usb:v04D9pA01Cd0401dc00dsc00dp00ic03isc01ip02in01"
  Driver Info #0:
    Buttons: 3
    Wheels: 2
    XFree86 Protocol: explorerps/2
    GPM Protocol: exps2
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #35 (Hub)

37: PS/2 00.0: 10500 PS/2 Mouse
  [Created at input.249]
  Unique ID: AH6Q.ABvIlSyGYdD
  Hardware Class: mouse
  Model: "ETPS/2 Elantech Touchpad"
  Vendor: 0x0002 
  Device: 0x000e "ETPS/2 Elantech Touchpad"
  Compatible to: int 0x0210 0x0002
  Device File: /dev/input/mice (/dev/input/mouse0)
  Device Files: /dev/input/mice, /dev/input/mouse0, /dev/input/event2, /dev/input/by-path/platform-i8042-serio-1-event-mouse, /dev/input/by-path/platform-i8042-serio-1-mouse
  Device Number: char 13:63 (char 13:32)
  Driver Info #0:
    Buttons: 2
    Wheels: 0
    XFree86 Protocol: explorerps/2
    GPM Protocol: exps2
  Config Status: cfg=new, avail=yes, need=no, active=unknown


lsusb
...
Bus 002 Device 003: ID 04d9:a01c Holtek Semiconductor, Inc. wireless multimedia keyboard with trackball [Trust ADURA 17911]
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Thank you

I’m reluctant to offer any further suggestions (as I’m not at all sure where the root of the problem really lies). However, if it is as a result of some quirk with the libinput Xorg driver, you could try reverting to evdev perhaps (assuming using Xorg server and not Wayland)…

Current Xorg driver handling input devices…

grep -i "Using input" /var/log/Xorg.0.log

Create a minimal /etc/X11/xorg.conf.d/95-custom.conf with something like

Section "InputClass"
        Identifier "evdev pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Once that is saved, and the X-server restarted (CTRL-ALT-Backspace twice) it should take precedence for pointing devices. If desired you could use further matching directives to match for the Holtek device if desired). Anyway, confirm that the evdev driver is now handling the device (as per above command), and check device behavior. YMMV.

As the device is wireless connected, it might be related to that too. Not sure what would be needed to mitigate against the behaviour you described in your opening post.

Created /etc/X11/xorg.conf.d/95-custom.conf as described.
Logged out and restarted X-server.
Logged back in.


grep -i "Using input" /var/log/Xorg.0.log
[181466.864] (II) Using input driver 'libinput' for 'Power Button'
[181466.936] (II) Using input driver 'libinput' for 'Video Bus'
[181466.998] (II) Using input driver 'libinput' for 'Power Button'
[181467.027] (II) Using input driver 'libinput' for 'HOLTEK USB Keyboard'
[181467.051] (II) Using input driver 'evdev' for 'HOLTEK USB Keyboard Mouse'
[181467.053] (II) Using input driver 'libinput' for 'HOLTEK USB Keyboard System Control'
[181467.075] (II) Using input driver 'libinput' for 'HOLTEK USB Keyboard Consumer Control'
[181467.155] (II) Using input driver 'libinput' for 'Laptop_Integrated_Webcam_HD: In'
[181467.195] (II) Using input driver 'libinput' for 'Dell WMI hotkeys'
[181467.234] (II) Using input driver 'libinput' for 'AT Translated Set 2 keyboard'
[181467.259] (II) Using input driver 'evdev' for 'ETPS/2 Elantech Touchpad'

Do further tweaks or does the above output look good?

Device is actually usb, not wireless.

That confirms the evdev driver in use for your Holtek pointing device. Only you will notice if it has helped or not.

Device is actually usb, not wireless.

Ok.

Naturally. Meant to mention that this did not help, but was asking if perhaps modifications to /etc/X11/xorg.conf.d/95-custom.conf might make a difference. If you don’t respond, then will assume that this route has been exhausted.

Thank you for all your efforts.

For the record, the pck-308ub keyboard which worked fine on older versions of opensuse, probably did so because it was an older version of the keyboard which actually had a different touchpad, than the touchpad in more recent versions of the pck-308ub and the akb-450ub. This seems so, because when trying on one of the latter, the touchpad misbehaves as described, even in leap 15.1 live and leap 13.2 live. Accordingly, would guess that the old keyboard touchpad would work fine in current opensuse.

On to the main point. Considering that maybe usb device autosuspend is the issue, tried these without success…


echo -1 > /sys/bus/usb/devices/2-2/power/autosuspend_delay_ms
echo -1 > /sys/bus/usb/devices/2-2/power/autosuspend

…it then occurred that perhaps ‘/sys/bus/usb/devices/2-2’ is not specific enough.

So ran sudo dmesg after unplugging and replugging the keyboard from the usb port and looked at these…


sudo dmesg

...
usb 2-2: USB disconnect, device number 7
usb 2-2: new low-speed USB device number 8 using xhci_hcd
usb 2-2: New USB device found, idVendor=04d9, idProduct=a01c, bcdDevice= 4.01
usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 2-2: Product: USB Keyboard
usb 2-2: Manufacturer: HOLTEK
input: HOLTEK USB Keyboard as /devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0/0003:04D9:A01C.0008/input/input28
hid-generic 0003:04D9:A01C.0008: input,hidraw0: USB HID v1.10 Keyboard [HOLTEK USB Keyboard] on usb-0000:00:14.0-2/input0
input: HOLTEK USB Keyboard Mouse as /devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.1/0003:04D9:A01C.0009/input/input29
input: HOLTEK USB Keyboard System Control as /devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.1/0003:04D9:A01C.0009/input/input30
input: HOLTEK USB Keyboard Consumer Control as /devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.1/0003:04D9:A01C.0009/input/input31
hid-generic 0003:04D9:A01C.0009: input,hidraw1: USB HID v1.10 Mouse [HOLTEK USB Keyboard] on usb-0000:00:14.0-2/input1

It seems the touchpad (‘mouse’) specifically, is at /sys/bus/usb/devices/2-2:1.1/
Maybe the prior resolution attempts by disabling autosuspend, failed because the touchpad must be targeted directly within ‘…2-2:1.1/’ and not within ‘…2-2/’
Though did not even get to attempt resolution by disabling autosuspend as such. When looking thru the tree within /sys/bus/usb/devices/2-2:1.1/ started noticing that directory name and filename auto-complete did not work.
Seemed strange enough, But then, when trying to check file contents, would just get results like…


cat: '/sys/bus/usb/devices/2-2:1.1/ep_82/power/autosuspend_delay_ms': Input/output error
cat: '/sys/bus/usb/devices/2-2:1.1/0003:04D9:A01C.0009/input/input29/power/autosuspend_delay_ms': Input/output error

Any idea what’s happening here?
File a bug report? Any best way to do so for this issue?