linux-surface
linux-surface copied to clipboard
evbug on Surface Go
It seems like the evbug module is required to get the Surface Go's cover keyboard to work reliably, but I don't understand why. Is there any hope that it won't be necessary in the future?
I'm running it on my Go and haven't had any issues with the type cover so far, I'll do some checking and see if evbug is already installed or not. Running Ubuntu 18.04 with 5.0.1-1.signed. Any specific issues I can test for?
Look at the output of dmesg
, it should be filled with evbug messages if you use the keyboard (and lsmod
should show that evbug is loaded)
I'm running 5.0.1 without evbug installed and the type cover works fine. What specifically isn't working without it?
On Tue, Mar 26, 2019, 04:13 Eric [email protected] wrote:
Look at the output of dmesg, it should be filled with evbug messages if you use the keyboard
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/jakeday/linux-surface/issues/408#issuecomment-476338856, or mute the thread https://github.com/notifications/unsubscribe-auth/ARInq4D9SvqoKAqKqI9sSaVmE4yfSeoZks5vaR_ogaJpZM4bXmwl .
Ah, I'm still on 4.19.28. I'll try the latest and see if it's no longer an issue.
No luck. I'm running the kernel deb from the Releases tab here: https://github.com/jakeday/linux-surface/releases/download/5.0.1-1/linux-image-5.0.1-surface-linux-surface_5.0.1-surface-linux-surface-4_amd64.deb
It has the evbug module loaded, but I'm not sure what's causing it to be loaded. And my dmesg output is full of evbug messages ...
I've tried blacklisting the evbug module, but when it's not loaded, keyboard input is unusable -- keystrokes are just not registering for seconds at a time, and it's bad enough that it's impossible to log in (can't tell when my password has been read correctly).
Did you build your own 5.0.1 kernel, and is its config different from the released deb?
Are there multiple revisions of type covers out there? Mine is the cloth-like gray one if it matters.
I had tried that initially too and couldn't boot at all, so I ran the setup from the source and had no issues. It also addressed the UTC clock issue, though I had to reconfigure my wireless firmware to get that working again. There aren't many config differences in the setup.sh, and I don't think any would affect type cover functionality, but feel free to play with them.
I'm running a model 1840 type cover, same color; I think the hardware is identical regardless of skin (assuming no localization differences). OOC, does a normal USB keyboard work fine without evbug?
A USB keyboard works fine without evbug, and so does the type cover when I'm using an X terminal. It seems like it's a combination of user error on my part (my thumbs brushing the touchpad while I type) and something that behaves differently on the console vs. X with respect to locking out the keyboard while using the touchpad. It looks like I don't have the X synaptics driver installed, if that matters. Is there some inverse of the "disable touchpad while typing" setting somewhere in the input system?
OK, some more data. When the input freezes because I brush the touchpad while typing at the console, the Type Cover USB device is disconnecting and reconnecting:
[61575.061380] input: Microsoft Surface Type Cover Mouse as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.3/0003:045E:096F.0096/input/input213
[61575.061684] input: Microsoft Surface Type Cover Touchpad as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.3/0003:045E:096F.0096/input/input214
[61575.061887] hid-multitouch 0003:045E:096F.0096: input,hiddev2,hidraw4: USB HID v1.11 Mouse [Microsoft Surface Type Cover] on usb-0000:00:14.0-7/input3
[62390.126714] usb 1-7: USB disconnect, device number 44
[62391.127712] usb 1-7: new full-speed USB device number 45 using xhci_hcd
[62391.277482] usb 1-7: New USB device found, idVendor=045e, idProduct=096f, bcdDevice= 0.11
[62391.277485] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[62391.277487] usb 1-7: Product: Surface Type Cover
[62391.277489] usb 1-7: Manufacturer: Microsoft
[62391.281139] input: Microsoft Surface Type Cover as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:045E:096F.0097/input/input215
[62391.339926] hid-generic 0003:045E:096F.0097: input,hidraw0: USB HID v1.11 Keyboard [Microsoft Surface Type Cover] on usb-0000:00:14.0-7/input0
[62391.340806] input: Microsoft Surface Type Cover Consumer Control as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.1/0003:045E:096F.0098/input/input216
[62391.399820] input: Microsoft Surface Type Cover as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.1/0003:045E:096F.0098/input/input217
[62391.399964] hid-generic 0003:045E:096F.0098: input,hiddev0,hidraw1: USB HID v1.11 Device [Microsoft Surface Type Cover] on usb-0000:00:14.0-7/input1
[62391.400637] hid-generic 0003:045E:096F.0099: hiddev1,hidraw2: USB HID v1.11 Device [Microsoft Surface Type Cover] on usb-0000:00:14.0-7/input2
[62391.402518] input: Microsoft Surface Type Cover Mouse as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.3/0003:045E:096F.009A/input/input218
[62391.402637] input: Microsoft Surface Type Cover Touchpad as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.3/0003:045E:096F.009A/input/input219
[62391.402764] hid-multitouch 0003:045E:096F.009A: input,hiddev2,hidraw4: USB HID v1.11 Mouse [Microsoft Surface Type Cover] on usb-0000:00:14.0-7/input3
[62393.363326] usb 1-7: USB disconnect, device number 45
[62394.363663] usb 1-7: new full-speed USB device number 46 using xhci_hcd
[62394.513656] usb 1-7: New USB device found, idVendor=045e, idProduct=096f, bcdDevice= 0.11
[62394.513660] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[62394.513662] usb 1-7: Product: Surface Type Cover
[62394.513664] usb 1-7: Manufacturer: Microsoft
[62394.517360] input: Microsoft Surface Type Cover as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:045E:096F.009B/input/input220
[62394.576088] hid-generic 0003:045E:096F.009B: input,hidraw0: USB HID v1.11 Keyboard [Microsoft Surface Type Cover] on usb-0000:00:14.0-7/input0
[62394.576952] input: Microsoft Surface Type Cover Consumer Control as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.1/0003:045E:096F.009C/input/input221
[62394.635835] input: Microsoft Surface Type Cover as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.1/0003:045E:096F.009C/input/input222
[62394.636139] hid-generic 0003:045E:096F.009C: input,hiddev0,hidraw1: USB HID v1.11 Device [Microsoft Surface Type Cover] on usb-0000:00:14.0-7/input1
[62394.636802] hid-generic 0003:045E:096F.009D: hiddev1,hidraw2: USB HID v1.11 Device [Microsoft Surface Type Cover] on usb-0000:00:14.0-7/input2
[62394.638711] input: Microsoft Surface Type Cover Mouse as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.3/0003:045E:096F.009E/input/input223
[62394.638839] input: Microsoft Surface Type Cover Touchpad as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.3/0003:045E:096F.009E/input/input224
[62394.638969] hid-multitouch 0003:045E:096F.009E: input,hiddev2,hidraw4: USB HID v1.11 Mouse [Microsoft Surface Type Cover] on usb-0000:00:14.0-7/input3
A USB keyboard works fine without evbug, and so does the type cover when I'm using an X terminal. It seems like it's a combination of user error on my part (my thumbs brushing the touchpad while I type) and something that behaves differently on the console vs. X with respect to locking out the keyboard while using the touchpad. It looks like I don't have the X synaptics driver installed, if that matters. Is there some inverse of the "disable touchpad while typing" setting somewhere in the input system?
Great catch! I'm using Fedora 29 (kernel 5.0.3) on my Surface Go and I'm encountering the exact same issue. The dmesg output is also similar to yours every time it disconnects. No problems at all when in an X or Wayland session, but the problem happens when I'm in a tty or even when I'm trying to unlock my encrypted partition. Since I'm running the kernel provided by the distro, evbug is not installed.
Here's an excerpt from my dmesg output: https://gist.github.com/kylemsguy/6517feb2bfe2361e482a497c39d2e4da
Try the steps here, see if that helps: https://github.com/jakeday/linux-surface/issues/385 For consoles, mouse input seldom translates into activity (mouseover events etc) so that might explain the disparity there.
I just tried that, but it didn't seem to change anything. I added those lines to /usr/share/libinput/50-local-overrides.quirks and the problem still happens.
The issue doesn't seem to be the same as the referenced issue, since I was able to disable the touchpad while typing just fine.
This issue (type cover USB device detaching and re-attaching when I brush the touchpad while typing) is still present in the 5.0.7-1 release.
This problem is still present in 5.0.10. Can anyone besides @kylemsguy and me reproduce this, or is it possible we have flaky Type Cover hardware? (Seems unlikely given the different behavior in console vs X)
Hi, can confirm having the same issue on both 4.19.48 and 5.1.15. In plain tty mode, as soon as I touch Type Cover trackpad it seems to reset and disconnect/reconnect the USB device.
As soon as I start some GUI (in this case Gnome on Wayland) the trackpad work as expected, as long as I stay in that tty. If i switch to tty2 (cli) and use the touchpad, it disconnects/reconnects. But staying in the tty with the X session it does seem to work fine.
Setup: Brand new Surface Go (8GB) with brand new Type Cover. Arch linux, with somewhat hacky setup (first time fooling around in Arch), with modules installed as per https://github.com/dmhacker/arch-linux-surface installation. Kernel built locally, but with configuration as from that repo.
In general, everything so far seems to work pretty well in Gnome session: touchscreen, sound, screen etc. Will continue to play, but so far happy!
I just tried to run evtest
in a plain tty, and selected the Microsoft Surface Type Cover Touchpad
device.
As long as evtest
was running and consuming events, I can use the touchpad without any disconnects. If I kill it, and touch the touchpad, the keyboard resets within a second or two (LEDs flashing briefly).
Wild guess: some io buffer in the Type Cover is not getting drained if nothing is consuming the events or something, causing a reset? I'm not too familiar with the Linux HID API or USB/HID in general, so might be totally wrong :)
I experience the same issue on my Go. I run Arch with Sway/Wayland, and I have a hotkey that toggles the touchpad on/off via swaymsg
.
If the touchpad is off (ie, Sway is no longer consuming events from the device), and I start typing while also interacting with the (disabled) touchpad, then I see the same behaviour described by others in this ticket -- the keyboard briefly stops responding, and my dmesg -w
output shows USB disconnect/reconnect events for the keyboard and mouse in the Surface Cover.
It seems that something needs to drain the touchpad events or else the kernel puts it in the corner for a brief timeout.