Bug 1508741

Summary: keybard stops working after upgrading libinput
Product: [Fedora] Fedora Reporter: Siarhei Volkau <lis8215>
Component: libinputAssignee: Peter Hutterer <peter.hutterer>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 26CC: bberg, dchen, lis8215, peter.hutterer
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-11-09 00:01:09 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1468804    
Attachments:
Description Flags
output of libevent debug-events --verbose
none
abrt-ccpp collected data (crashdump, stacktrace, etc) for libevent debug-events
none
journalctl -b log for faulty libevent
none
evemu record for HP WMI hotkeys none

Description Siarhei Volkau 2017-11-02 06:43:04 UTC
Description of problem:

Keybard stops working after upgrading libinput on
notebook HP Pavilion Power 15.
Downgrade libinput solves the problem.

Version-Release number of selected component (if applicable):
Working libinput version: 1.7.3-1.fc26
Not working version: 1.9.0-1.fc26
Not checked version: 1.8.3-1.fc26

How reproducible:
Always

Steps to Reproduce:
1. upgrade libinput (sudo dnf update libinput)
2. reboot

Actual results:
keyboard stops working

Expected results:
Keyboard should work

Comment 1 Peter Hutterer 2017-11-02 22:31:11 UTC
weird. Please attach an evemu-describe of your keyboard device, that should make it possible to reproduce here.

Comment 2 Siarhei Volkau 2017-11-03 18:45:30 UTC
sudo evemu-describe
Available devices:
/dev/input/event0:	Lid Switch
/dev/input/event1:	Power Button
/dev/input/event2:	Power Button
/dev/input/event3:	AT Translated Set 2 keyboard
/dev/input/event4:	ETPS/2 Elantech Touchpad
/dev/input/event5:	Video Bus
/dev/input/event6:	Video Bus
/dev/input/event7:	HP Wireless hotkeys
/dev/input/event8:	ST LIS3LV02DL Accelerometer
/dev/input/event9:	HP WMI hotkeys
/dev/input/event10:	HP Wide Vision FHD Camera
/dev/input/event11:	HP Wide Vision FHD Camera
/dev/input/event12:	HDA Intel PCH Mic
/dev/input/event13:	HDA Intel PCH Headphone
/dev/input/event14:	HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event15:	HDA Intel PCH HDMI/DP,pcm=7
/dev/input/event16:	HDA Intel PCH HDMI/DP,pcm=8
/dev/input/event17:	HDA Intel PCH HDMI/DP,pcm=9
/dev/input/event18:	HDA Intel PCH HDMI/DP,pcm=10
Select the device event number [0-18]: 3
# EVEMU 1.3
# Kernel: 4.11.8-300.fc26.x86_64
# DMI: dmi:bvnInsyde:bvrF.10:bd07/28/2017:svnHP:pnHPPavilionPowerLaptop15-cb0xx:pvrType1ProductConfigId:rvnHP:rn836B:rvr46.21:cvnHP:ct10:cvrChassisVersion:
# Input device name: "AT Translated Set 2 keyboard"
# Input device ID: bus 0x11 vendor 0x01 product 0x01 version 0xab83
# Supported events:
#   Event type 0 (EV_SYN)
#     Event code 0 (SYN_REPORT)
#     Event code 1 (SYN_CONFIG)
#     Event code 2 (SYN_MT_REPORT)
#     Event code 3 (SYN_DROPPED)
#     Event code 4 ((null))
#     Event code 5 ((null))
#     Event code 6 ((null))
#     Event code 7 ((null))
#     Event code 8 ((null))
#     Event code 9 ((null))
#     Event code 10 ((null))
#     Event code 11 ((null))
#     Event code 12 ((null))
#     Event code 13 ((null))
#     Event code 14 ((null))
#     Event code 15 (SYN_MAX)
#   Event type 1 (EV_KEY)
#     Event code 1 (KEY_ESC)
#     Event code 2 (KEY_1)
#     Event code 3 (KEY_2)
#     Event code 4 (KEY_3)
#     Event code 5 (KEY_4)
#     Event code 6 (KEY_5)
#     Event code 7 (KEY_6)
#     Event code 8 (KEY_7)
#     Event code 9 (KEY_8)
#     Event code 10 (KEY_9)
#     Event code 11 (KEY_0)
#     Event code 12 (KEY_MINUS)
#     Event code 13 (KEY_EQUAL)
#     Event code 14 (KEY_BACKSPACE)
#     Event code 15 (KEY_TAB)
#     Event code 16 (KEY_Q)
#     Event code 17 (KEY_W)
#     Event code 18 (KEY_E)
#     Event code 19 (KEY_R)
#     Event code 20 (KEY_T)
#     Event code 21 (KEY_Y)
#     Event code 22 (KEY_U)
#     Event code 23 (KEY_I)
#     Event code 24 (KEY_O)
#     Event code 25 (KEY_P)
#     Event code 26 (KEY_LEFTBRACE)
#     Event code 27 (KEY_RIGHTBRACE)
#     Event code 28 (KEY_ENTER)
#     Event code 29 (KEY_LEFTCTRL)
#     Event code 30 (KEY_A)
#     Event code 31 (KEY_S)
#     Event code 32 (KEY_D)
#     Event code 33 (KEY_F)
#     Event code 34 (KEY_G)
#     Event code 35 (KEY_H)
#     Event code 36 (KEY_J)
#     Event code 37 (KEY_K)
#     Event code 38 (KEY_L)
#     Event code 39 (KEY_SEMICOLON)
#     Event code 40 (KEY_APOSTROPHE)
#     Event code 41 (KEY_GRAVE)
#     Event code 42 (KEY_LEFTSHIFT)
#     Event code 43 (KEY_BACKSLASH)
#     Event code 44 (KEY_Z)
#     Event code 45 (KEY_X)
#     Event code 46 (KEY_C)
#     Event code 47 (KEY_V)
#     Event code 48 (KEY_B)
#     Event code 49 (KEY_N)
#     Event code 50 (KEY_M)
#     Event code 51 (KEY_COMMA)
#     Event code 52 (KEY_DOT)
#     Event code 53 (KEY_SLASH)
#     Event code 54 (KEY_RIGHTSHIFT)
#     Event code 55 (KEY_KPASTERISK)
#     Event code 56 (KEY_LEFTALT)
#     Event code 57 (KEY_SPACE)
#     Event code 58 (KEY_CAPSLOCK)
#     Event code 59 (KEY_F1)
#     Event code 60 (KEY_F2)
#     Event code 61 (KEY_F3)
#     Event code 62 (KEY_F4)
#     Event code 63 (KEY_F5)
#     Event code 64 (KEY_F6)
#     Event code 65 (KEY_F7)
#     Event code 66 (KEY_F8)
#     Event code 67 (KEY_F9)
#     Event code 68 (KEY_F10)
#     Event code 69 (KEY_NUMLOCK)
#     Event code 70 (KEY_SCROLLLOCK)
#     Event code 71 (KEY_KP7)
#     Event code 72 (KEY_KP8)
#     Event code 73 (KEY_KP9)
#     Event code 74 (KEY_KPMINUS)
#     Event code 75 (KEY_KP4)
#     Event code 76 (KEY_KP5)
#     Event code 77 (KEY_KP6)
#     Event code 78 (KEY_KPPLUS)
#     Event code 79 (KEY_KP1)
#     Event code 80 (KEY_KP2)
#     Event code 81 (KEY_KP3)
#     Event code 82 (KEY_KP0)
#     Event code 83 (KEY_KPDOT)
#     Event code 85 (KEY_ZENKAKUHANKAKU)
#     Event code 86 (KEY_102ND)
#     Event code 87 (KEY_F11)
#     Event code 88 (KEY_F12)
#     Event code 89 (KEY_RO)
#     Event code 90 (KEY_KATAKANA)
#     Event code 91 (KEY_HIRAGANA)
#     Event code 92 (KEY_HENKAN)
#     Event code 93 (KEY_KATAKANAHIRAGANA)
#     Event code 94 (KEY_MUHENKAN)
#     Event code 95 (KEY_KPJPCOMMA)
#     Event code 96 (KEY_KPENTER)
#     Event code 97 (KEY_RIGHTCTRL)
#     Event code 98 (KEY_KPSLASH)
#     Event code 99 (KEY_SYSRQ)
#     Event code 100 (KEY_RIGHTALT)
#     Event code 102 (KEY_HOME)
#     Event code 103 (KEY_UP)
#     Event code 104 (KEY_PAGEUP)
#     Event code 105 (KEY_LEFT)
#     Event code 106 (KEY_RIGHT)
#     Event code 107 (KEY_END)
#     Event code 108 (KEY_DOWN)
#     Event code 109 (KEY_PAGEDOWN)
#     Event code 110 (KEY_INSERT)
#     Event code 111 (KEY_DELETE)
#     Event code 112 (KEY_MACRO)
#     Event code 113 (KEY_MUTE)
#     Event code 114 (KEY_VOLUMEDOWN)
#     Event code 115 (KEY_VOLUMEUP)
#     Event code 116 (KEY_POWER)
#     Event code 117 (KEY_KPEQUAL)
#     Event code 118 (KEY_KPPLUSMINUS)
#     Event code 119 (KEY_PAUSE)
#     Event code 121 (KEY_KPCOMMA)
#     Event code 122 (KEY_HANGEUL)
#     Event code 123 (KEY_HANJA)
#     Event code 124 (KEY_YEN)
#     Event code 125 (KEY_LEFTMETA)
#     Event code 126 (KEY_RIGHTMETA)
#     Event code 127 (KEY_COMPOSE)
#     Event code 128 (KEY_STOP)
#     Event code 138 (KEY_HELP)
#     Event code 140 (KEY_CALC)
#     Event code 142 (KEY_SLEEP)
#     Event code 143 (KEY_WAKEUP)
#     Event code 152 (KEY_COFFEE)
#     Event code 155 (KEY_MAIL)
#     Event code 156 (KEY_BOOKMARKS)
#     Event code 157 (KEY_COMPUTER)
#     Event code 158 (KEY_BACK)
#     Event code 159 (KEY_FORWARD)
#     Event code 163 (KEY_NEXTSONG)
#     Event code 164 (KEY_PLAYPAUSE)
#     Event code 165 (KEY_PREVIOUSSONG)
#     Event code 166 (KEY_STOPCD)
#     Event code 172 (KEY_HOMEPAGE)
#     Event code 173 (KEY_REFRESH)
#     Event code 183 (KEY_F13)
#     Event code 184 (KEY_F14)
#     Event code 185 (KEY_F15)
#     Event code 212 (KEY_CAMERA)
#     Event code 217 (KEY_SEARCH)
#     Event code 224 (KEY_BRIGHTNESSDOWN)
#     Event code 225 (KEY_BRIGHTNESSUP)
#     Event code 226 (KEY_MEDIA)
#     Event code 227 (KEY_SWITCHVIDEOMODE)
#     Event code 236 (KEY_BATTERY)
#     Event code 238 (KEY_WLAN)
#     Event code 240 (KEY_UNKNOWN)
#     Event code 389 (KEY_DVD)
#     Event code 465 (KEY_FN_ESC)
#   Event type 4 (EV_MSC)
#     Event code 4 (MSC_SCAN)
#   Event type 17 (EV_LED)
#     Event code 0 (LED_NUML)
#        State 0
#     Event code 1 (LED_CAPSL)
#        State 0
#     Event code 2 (LED_SCROLLL)
#        State 0
#   Event type 20 (EV_REP)
#     Event code 0 (REP_DELAY)
#     Event code 1 (REP_MAX)
# Properties:
N: AT Translated Set 2 keyboard
I: 0011 0001 0001 ab83
P: 00 00 00 00 00 00 00 00
B: 00 0b 00 00 00 00 00 00 00
B: 01 fe ff ff ff ff ff ff ff
B: 01 ff ff ef ff df ff ff fe
B: 01 01 d4 00 f9 78 30 80 03
B: 01 00 00 10 02 0f 50 01 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 20 00 00 00 00 00 00 00
B: 01 00 00 02 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 02 00 00 00 00 00 00 00 00
B: 03 00 00 00 00 00 00 00 00
B: 04 10 00 00 00 00 00 00 00
B: 05 00 00 00 00 00 00 00 00
B: 11 07 00 00 00 00 00 00 00
B: 12 00 00 00 00 00 00 00 00
B: 14 03 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00

Comment 3 Peter Hutterer 2017-11-05 22:56:57 UTC
for next time: please *attach* long recordings, anything over 10, 15 lines. This makes it possible to a) read the comments quickly and b) re-use the attachments without excessive copy/pasting. 

This is a bog-standard keyboard, I'm not sure why a libinput update would've caused any changes there and it works just fine replaying it here.

Two things I need you to do please:
a) dnf install libinput (1.9.x) but do not restart or log out. run 'sudo libinput debug-events --verbose' and type on your keyboard. Do you see key press/release events? If so, libinput appears to be working. If not, *attach* the output here. You can then dnf downgrade to the working 1.8 version.

b) *attach* your journal from a full boot with the non-working libinput version installed. the -b flag for journalctl will come in handy here

Comment 4 Peter Hutterer 2017-11-06 05:20:42 UTC
This seems to affect HP models only judging by the upstream bug:
https://bugs.freedesktop.org/show_bug.cgi?id=103561

Still no idea what's going on though

Comment 5 Siarhei Volkau 2017-11-06 07:52:20 UTC
Created attachment 1348436 [details]
output of libevent debug-events --verbose

Comment 6 Siarhei Volkau 2017-11-06 07:54:54 UTC
Created attachment 1348449 [details]
abrt-ccpp collected data (crashdump, stacktrace, etc) for libevent debug-events

Comment 7 Siarhei Volkau 2017-11-06 07:58:10 UTC
Command
sudo libevent debug-events --verbose
was ended with SIGABRT immediately.
I'm not press any keys.

See attached output logs and collected crashdump data.

Comment 8 Siarhei Volkau 2017-11-06 08:34:00 UTC
Created attachment 1348466 [details]
journalctl -b  log for faulty libevent

Comment 9 Peter Hutterer 2017-11-07 21:16:04 UTC
As I said in the upstream bug, I need an evemu-record of the WMI hotkeys device, that seems to be the issue. Thanks.

Comment 10 Peter Hutterer 2017-11-08 11:36:19 UTC
See the upstream bug, updating the kernel to anything 4.12 or newer should give you the 298747b7579f5bbbced793d99 commit that may fix the issue.

Comment 11 Siarhei Volkau 2017-11-08 19:53:02 UTC
Created attachment 1349565 [details]
evemu record for HP WMI hotkeys

Does not find any key combination for this input device, so log not contain events. My laptop not have extra keys, only standard, catched on libevent 1.7.x.

Comment 12 Siarhei Volkau 2017-11-08 19:55:07 UTC
Can't check newer kernels because have another issues on new kernels (nouveau + 1050GTX) not found solution yet.

Comment 13 Peter Hutterer 2017-11-09 00:01:09 UTC
From attachment 1349565 [details]

#   Event type 5 (EV_SW)
#     Event code 1 (SW_TABLET_MODE)
#        State 1
#     Event code 5 (SW_DOCK)
#        State 1

So both switches are enabled and your device thinks it's in tablet mode. libinput disables the touchpad and keyboard when in tablet mode because on most devices those two are either inaccessible or interfere with proper use of the laptop. So this indeed looks like the kernel issue in comment 10 and the upstream bug. Updating to 4.12+ should help, or building a kernel with that one fix in it. I have 4.12 and 4.13 kernels available on my f26 box, so I'm closing this with CURRENTRELEASE.

As another workaround, you could rmmod hp_wmi which makes the device disappear and thus un-tablet-mode the device.

Thanks for the evemu btw, I'll add this to libinput's test suite.