You are not logged in.
Hi fellow archers!
So, I have some issues with the latest kernel available on [testing].
When booting, I can type my BIOS password with my built-in laptop keyboard. However, after that, sddm shows up but I can't login or even switch tty. Also, my mouse works but only if I plug it in after boot (perhaps my keyboard would work if I could do the same? Sadly, I don't have a USB keyboard to test ).
One thing I can do in that state is use the sysrq key to talk directly to the kernel and restart the system (https://en.wikipedia.org/wiki/Magic_SysRq_key#Uses)
If I downgrade the kernel to the previous version from recovery mode (the keyboard works there), everything comes back to normal.
Also, when updating the initcpios, i get a WARNING: Possibly missing firmware for module: xhci_pci that wasn't there with the previous kernel version; could that be it?
Relevant information from lsmod:
Module Size Used by
xhci_pci 20480 0
xhci_hcd 286720 1 xhci_pci
Relevant information from lspci -k:
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
Subsystem: ASUSTeK Computer Inc. Device 201f
Kernel driver in use: xhci_hcd
Any thoughts? Let me know if you need more information!
Last edited by IslandC0der (2020-08-26 21:37:37)
Offline
Please post the kernel messages from a 5.8.Y boot and a 5.7.Y boot for comparison.
If SDDM uses X also an Xorg.log from both under both kernels.
Offline
Please post the kernel messages from a 5.8.Y boot and a 5.7.Y boot for comparison.
If SDDM uses X also an Xorg.log from both under both kernels.
Regarding the kernel messages, which should I post: journalctl or dmesg?
Last edited by IslandC0der (2020-08-05 22:36:37)
Offline
The full journal for the boot is probably better as it will contain more, so `journalctl -b #` where # is the boot index.
Last edited by loqs (2020-08-05 22:49:19)
Offline
The full journal for the boot is probably better as it will contain more, so `journalctl -b #` where # is the boot index.
Alright, here you go (I've removed everything after sddm starts):
Offline
Aug 05 18:36:26 Atoll kernel: input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input4
....
Aug 05 18:36:27 Atoll kernel: i801_smbus 0000:00:1f.4: SPD Write Disable is set
Aug 05 18:36:27 Atoll kernel: i801_smbus 0000:00:1f.4: SMBus using PCI interrupt
Looks to be the keyboard.
Edit:
Can you ssh into the system?
There was only one change to that module in 5.8 https://git.kernel.org/pub/scm/linux/ke … 9d255c681f
Last edited by loqs (2020-08-06 00:34:20)
Offline
Aug 05 18:36:26 Atoll kernel: input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input4 .... Aug 05 18:36:27 Atoll kernel: i801_smbus 0000:00:1f.4: SPD Write Disable is set Aug 05 18:36:27 Atoll kernel: i801_smbus 0000:00:1f.4: SMBus using PCI interrupt
Looks to be the keyboard.
Edit:
Can you ssh into the system?
There was only one change to that module in 5.8 https://git.kernel.org/pub/scm/linux/ke … 9d255c681f
So it's not related to xhci_pci then?
Yup, I can indeed ssh.
Offline
I do not have a quick solution unfortunately. You could try reverting 01590f361e94a01e9b9868fa81d4079d255c681f or bisecting between 5.7 and 5.8 to try and find the cause.
Offline
I do not have a quick solution unfortunately. You could try reverting 01590f361e94a01e9b9868fa81d4079d255c681f or bisecting between 5.7 and 5.8 to try and find the cause.
Alright, I'll see what I can do.
Thanks a lot for your help!
Offline
Okay, so I've tried reverting the commit, and I've also tried compiling the kernel with ABS using the arch 5.7.12 config file, just in case it was some configuration change downstream... But alas, nothing works
Compiling takes way too long, so I'm not that keen on bisecting it (is there a way for it to not compile from scratch every time, perhaps? Then it might be feasible). Also, I tried compiling the kernel when the repo was at that commit, but it failed (am I missing something?).
Any ideas?
Offline
Alright, here's an update:
I disabled sddm.service, and the system boots and I can log in just fine from the tty. So I thought maybe it was actually an sddm issue, so I installed xorg-xinit so I could start plasma manually (startx plasmashell). However, still didn't work, which made me think it was an Xorg problem.
After that, I installed Wayland, but the problem persisted. At that point, I thought it was a plasma problem, so I installed i3. Still no luck. I even tried just running xterm and xclock with startx, but nothing works. The moment a display server is started (Wayland or X), the keyboard and touchpad freeze, and also my usb mouse if it was already plugged in (if it wasn't, I can then plug it in and it works).
There is, however, a caveat: some key combinations work. I already talked about the sysrq key, but also fn+f1 (suspend), fn+f2 (airplane mode), fn+f7 (lock screen), fn+f9 (toggle touchpad) and the brightness control keys (fn+f5/f6). The sound control keys (fn+f10/f11/f12) do not work.
My guess is that these are low-level controls so they somehow bypass the problem.
This was clearly caused by a change in the kernel (yes, I've also tried 5.8.1, same thing), but it only manifests itself when a display server is running.
I'm completely puzzled by this, and I have no idea what to do next
Last edited by IslandC0der (2020-08-26 21:49:36)
Offline
Okay, so I've just figured out what's causing the problem!
After diffing the Xorg logs from both boots, something immediately stands out:
diff -u 5.8.1 5.7.12
@@ -416,14 +416,16 @@
(**) Asus WMI hotkeys: always reports core events
(**) Option "Device" "/dev/input/event9"
(**) Option "_source" "server/udev"
-(II) event9 - Asus WMI hotkeys: is tagged by udev as: Keyboard
+(II) event9 - Asus WMI hotkeys: is tagged by udev as: Keyboard Switch
(II) event9 - Asus WMI hotkeys: device is a keyboard
+(II) event9 - Asus WMI hotkeys: device is a switch device
(II) event9 - Asus WMI hotkeys: device removed
(**) Option "config_info" "udev:/sys/devices/platform/asus-nb-wmi/input/input9/event9"
(II) XINPUT: Adding extended input device "Asus WMI hotkeys" (type: KEYBOARD, id 14)
(**) Option "xkb_layout" "pt"
-(II) event9 - Asus WMI hotkeys: is tagged by udev as: Keyboard
+(II) event9 - Asus WMI hotkeys: is tagged by udev as: Keyboard Switch
(II) event9 - Asus WMI hotkeys: device is a keyboard
+(II) event9 - Asus WMI hotkeys: device is a switch device
(II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event6)
(**) AT Translated Set 2 keyboard: Applying InputClass "libinput keyboard catchall"
(**) AT Translated Set 2 keyboard: Applying InputClass "system-keyboard"
So, for some reason, X thinks the Asus hotkeys (i.e. the fn keys) are the keyboard itself, instead of a keyboard switch. This explains everything.
Now the question is: is it a kernel bug, or was it caused by an intended change in the kernel, and now Xorg needs to catch up with it? So who do I report this to?
Also, any ideas for temporary fixes/workarounds? I really don't know much about how the X server works
Last edited by IslandC0der (2020-08-14 15:58:59)
Offline
I'm facing the same exact issue. Both touchpad and keyboard stopped working, however external USB mouse and keyboards work.
If it helps, I am using an Asus laptop too, and I can confirm that function key shortcuts work for me too.
For now, I've rolled back to 5.7.12 and everything's working perfectly.
I haven't had any issues from updates for a few years now, until today. Would be great if I am able to maintain my bleeding-edge somehow.
Offline
So I faced the same issue, and found workaround for now.
Before updating kernel:
Edit file /etc/X11/xorg.conf.d/00-keyboard.conf
Add next lines:
Section "InputClass"
Identifier "Asus WMI hotkeys"
MatchProduct "Asus WMI hotkeys"
Option "Ignore" "on"
EndSection
If you use nvidia-xrun, don't forget to add same lines to /etc/X11/nvidia-xorg.conf.d/00-keyboard.conf
Offline
So I faced the same issue, and found workaround for now.
Before updating kernel:
Edit file /etc/X11/xorg.conf.d/00-keyboard.conf
Add next lines:Section "InputClass" Identifier "Asus WMI hotkeys" MatchProduct "Asus WMI hotkeys" Option "Ignore" "on" EndSection
If you use nvidia-xrun, don't forget to add same lines to /etc/X11/nvidia-xorg.conf.d/00-keyboard.conf
Thanks for your contribution! Is there a way to use your method (with xorg config files) to tell the the server that the Asus hotkeys are a "keyboard switch" instead of a keyboard?
Because according to #12, that was the previous (functional) behavior. Or maybe make it so that they're loaded after the keyboard, so that it doesn't override it?
Here I'm assuming that ignoring them means that they wouldn't work, right?
Offline
Here I'm assuming that ignoring them means that they wouldn't work, right?
I don't know how or why, but they still work.
Offline
Okay so I've just tested it, and indeed everything works like a charm, even the touchpad and usb mouse, which I think is pretty remarkable. Once again, thank you so much!
By looking at the logs, I thought the hotkeys were being incorrectly identified as a keyboard, which was why the keyboard itself wasn't working (or maybe the other way around: the keyboard wasn't being recognized in the first place, which caused the system to fall back to the hotkeys as a keyboard), and that there was a common root cause that created this hotkeys conflict with the keyboard AND also made it so any device plugged in at boot wouldn't work (i.e. touchpad and usb mouse).
But no, apparently the hotkeys themselves are the ones wreaking all of this havoc?? How does that work?
Last edited by IslandC0der (2020-08-26 21:32:54)
Offline
Update: hmm, apparently fn+f7 (lock screen) and fn+f9 (toggle touchpad) don't work, but all of the other ones do. This isn't really a big deal to me, but it is nonetheless quite weird. Can anyone else confirm this oddity?
Offline
Update: hmm, apparently fn+f7 (lock screen) and fn+f9 (toggle touchpad) don't work, but all of the other ones do. This isn't really a big deal to me, but it is nonetheless quite weird. Can anyone else confirm this oddity?
The same for me I don't know how to fix this problem
Offline
So I faced the same issue, and found workaround for now.
Before updating kernel:
Edit file /etc/X11/xorg.conf.d/00-keyboard.conf
Add next lines:Section "InputClass" Identifier "Asus WMI hotkeys" MatchProduct "Asus WMI hotkeys" Option "Ignore" "on" EndSection
If you use nvidia-xrun, don't forget to add same lines to /etc/X11/nvidia-xorg.conf.d/00-keyboard.conf
Thanks, this worked! However, in my case I had to do one additional fix to make GDM run using Xorg instead of Wayland which seems to be the default. Because otherwise, it would not honor this change in xorg conf and my keyboard doesn't work as long as I'm on login screen.
Additionally, it seems fn+f7/f9 doesn't work for me either. But then again I never really use them.
Offline
I'm pondering if this is a kernel, a Xorg or a systemd (udev) bug..!
Has a bug been filed anywhere?
The Xorg logs lead me to believe that udev is causing this since it is tagging the "Asus WMI hotkeys" as both "Keyboard" and "Switch" instead of just "Keyboard". Consequently, Xorg is misconfigured.
Am I thinking correctly? And if I am, where does udev get this additional "Switch" tag from? Does this brings us back to the kernel..?
Would a custom udev rule that removes the "Switch" tag work as a hotfix?
I'll post the relevant Xorg logs from my ASUS ZenBook UX310UAK below.
Basically, this is ok:
Asus WMI hotkeys: is tagged by udev as: Keyboard
and this isn't:
Asus WMI hotkeys: is tagged by udev as: Keyboard Switch
Logs:
1) xorg-server-1.20.9, linux-lts-5.4.62, no workarounds needed, keyboard and touchpad work
[ 9847.139] (II) config/udev: Adding input device Asus WMI hotkeys (/dev/input/event5)
[ 9847.139] (**) Asus WMI hotkeys: Applying InputClass "libinput keyboard catchall"
[ 9847.139] (II) Using input driver 'libinput' for 'Asus WMI hotkeys'
[ 9847.140] (II) systemd-logind: got fd for /dev/input/event5 13:69 fd 27 paused 0
[ 9847.140] (**) Asus WMI hotkeys: always reports core events
[ 9847.140] (**) Option "Device" "/dev/input/event5"
[ 9847.140] (**) Option "_source" "server/udev"
[ 9847.140] (II) event5 - Asus WMI hotkeys: is tagged by udev as: Keyboard
[ 9847.140] (II) event5 - Asus WMI hotkeys: device is a keyboard
[ 9847.140] (II) event5 - Asus WMI hotkeys: device removed
[ 9847.140] (**) Option "config_info" "udev:/sys/devices/platform/asus-nb-wmi/input/input20/event5"
[ 9847.140] (II) XINPUT: Adding extended input device "Asus WMI hotkeys" (type: KEYBOARD, id 15)
[ 9847.141] (II) event5 - Asus WMI hotkeys: is tagged by udev as: Keyboard
[ 9847.141] (II) event5 - Asus WMI hotkeys: device is a keyboard
[ 9847.141] (II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event4)
[ 9847.141] (**) AT Translated Set 2 keyboard: Applying InputClass "libinput keyboard catchall"
[ 9847.141] (II) Using input driver 'libinput' for 'AT Translated Set 2 keyboard'
[ 9847.142] (II) systemd-logind: got fd for /dev/input/event4 13:68 fd 28 paused 0
[ 9847.142] (**) AT Translated Set 2 keyboard: always reports core events
[ 9847.142] (**) Option "Device" "/dev/input/event4"
[ 9847.142] (**) Option "_source" "server/udev"
[ 9847.143] (II) event4 - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard
[ 9847.143] (II) event4 - AT Translated Set 2 keyboard: device is a keyboard
[ 9847.143] (II) event4 - AT Translated Set 2 keyboard: device removed
[ 9847.143] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio0/input/input4/event4"
[ 9847.143] (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD, id 16)
[ 9847.144] (II) event4 - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard
[ 9847.144] (II) event4 - AT Translated Set 2 keyboard: device is a keyboard
2) xorg-server-1.20.9, linux-5.8.6, keyboard and touchpad not working
[ 13532.172] (II) config/udev: Adding input device Asus WMI hotkeys (/dev/input/event9)
[ 13532.172] (**) Asus WMI hotkeys: Applying InputClass "libinput keyboard catchall"
[ 13532.172] (II) Using input driver 'libinput' for 'Asus WMI hotkeys'
[ 13532.173] (II) systemd-logind: got fd for /dev/input/event9 13:73 fd 27 paused 0
[ 13532.173] (**) Asus WMI hotkeys: always reports core events
[ 13532.173] (**) Option "Device" "/dev/input/event9"
[ 13532.173] (**) Option "_source" "server/udev"
[ 13532.173] (II) event9 - Asus WMI hotkeys: is tagged by udev as: Keyboard Switch
[ 13532.174] (II) event9 - Asus WMI hotkeys: device is a keyboard
[ 13532.174] (II) event9 - Asus WMI hotkeys: device is a switch device
[ 13532.174] (II) event9 - Asus WMI hotkeys: device removed
[ 13532.174] (**) Option "config_info" "udev:/sys/devices/platform/asus-nb-wmi/input/input8/event9"
[ 13532.174] (II) XINPUT: Adding extended input device "Asus WMI hotkeys" (type: KEYBOARD, id 15)
[ 13532.175] (II) event9 - Asus WMI hotkeys: is tagged by udev as: Keyboard Switch
[ 13532.175] (II) event9 - Asus WMI hotkeys: device is a keyboard
[ 13532.175] (II) event9 - Asus WMI hotkeys: device is a switch device
[ 13532.175] (II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event4)
[ 13532.175] (**) AT Translated Set 2 keyboard: Applying InputClass "libinput keyboard catchall"
[ 13532.175] (II) Using input driver 'libinput' for 'AT Translated Set 2 keyboard'
[ 13532.176] (II) systemd-logind: got fd for /dev/input/event4 13:68 fd 28 paused 0
[ 13532.176] (**) AT Translated Set 2 keyboard: always reports core events
[ 13532.176] (**) Option "Device" "/dev/input/event4"
[ 13532.176] (**) Option "_source" "server/udev"
[ 13532.176] (II) event4 - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard
[ 13532.176] (II) event4 - AT Translated Set 2 keyboard: device is a keyboard
[ 13532.177] (II) event4 - AT Translated Set 2 keyboard: device removed
[ 13532.177] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio0/input/input4/event4"
[ 13532.177] (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD, id 16)
[ 13532.178] (II) event4 - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard
[ 13532.178] (II) event4 - AT Translated Set 2 keyboard: device is a keyboard
3) xorg-server-1.20.9, linux-5.8.6, Xorg workaround ignoring the "Asus WMI hotkeys", keyboard and touchpad work
[ 36.661] (II) config/udev: Adding input device Asus WMI hotkeys (/dev/input/event9)
[ 36.661] (**) Asus WMI hotkeys: Ignoring device from InputClass "Asus WMI hotkeys"
[ 36.661] (II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event4)
[ 36.661] (**) AT Translated Set 2 keyboard: Applying InputClass "libinput keyboard catchall"
[ 36.661] (II) Using input driver 'libinput' for 'AT Translated Set 2 keyboard'
[ 36.662] (II) systemd-logind: got fd for /dev/input/event4 13:68 fd 27 paused 0
[ 36.662] (**) AT Translated Set 2 keyboard: always reports core events
[ 36.662] (**) Option "Device" "/dev/input/event4"
[ 36.662] (**) Option "_source" "server/udev"
[ 36.662] (II) event4 - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard
[ 36.663] (II) event4 - AT Translated Set 2 keyboard: device is a keyboard
[ 36.663] (II) event4 - AT Translated Set 2 keyboard: device removed
[ 36.663] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio0/input/input4/event4"
[ 36.663] (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD, id 15)
[ 36.664] (II) event4 - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard
[ 36.664] (II) event4 - AT Translated Set 2 keyboard: device is a keyboard
Offline
Basically, this is ok:
Asus WMI hotkeys: is tagged by udev as: Keyboard
and this isn't:
Asus WMI hotkeys: is tagged by udev as: Keyboard Switch
Yeah, you're right; apparently I got my diff messed up. I thought the "switch tag" behavior was the normal one.
So actually it should be easier to create a full workaround: by using a udev rule that simply disables that tag, like you said.
It's still gonna be just a temporary hack, but at least that way we should get all the fn keys to work.
Appreciate your contribution!
Offline
I experience the same issue on a Acer Aspire E5-511, internal keyboard and touch pad is working on console, but as soon as you start any graphical system (using libinput) neither of the two input devices are working. The problem is present on the 5.8.7 and the 5.7.12 kernel. In my case the problematic input device seems to be the "Intel Virtual Button driver" (at least on the 5.8.7 kernel), which is marked both as a keyboard and a switch:
# libinput list-devices
...
Device: Intel Virtual Button driver
...
Capabilities: keyboard switch
...
After creating a udev rule which adds a libinput device configuration to ignore this device both the keyboard and the touch pad are working perfectly fine in GDM, Gnome (Wayland based session) and also in a bare Xorg server. The FN hotkeys are working too. Here is the udev rule I use as a reference, maybe it can be adapted to other machines as well:
/etc/udev/rules.d/99-acer-libinput.rules
ACTION=="add|change", KERNEL=="event[0-9]*", ATTRS{name}=="Intel Virtual Button driver", ENV{LIBINPUT_IGNORE_DEVICE}="1"
Still a work around though, not addressing the underlying problem, but it does the trick for me...
Last edited by stecky_ms (2020-09-09 21:18:55)
Offline
ACTION=="add|change", KERNEL=="event[0-9]*", ATTRS{name}=="Intel Virtual Button driver", ENV{LIBINPUT_IGNORE_DEVICE}="1"
I've just tried that by replacing "Intel Virtual Button driver" with "Asus WMI hotkeys". It does work, though I still have the same problem as described in #18.
But thank you anyways, I think we're on the right track to pinpoint this issue.
Last edited by IslandC0der (2020-09-11 13:01:24)
Offline
The above udev rule causes the device to be ignored by libinput, which basically accomplishes the same as the Xorg configuration workaround. The added benefit is that this should work under both Xorg and Wayland. BTW, it works for me.
In the mean time, I have unsuccessfully tried using:
ACTION=="add|change", SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{name}=="Asus WMI hotkeys", TAG-="Switch"
and also
ACTION=="add|change", SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{name}=="Asus WMI hotkeys", TAG-="Keyboard Switch"
ACTION=="add|change", SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{name}=="Asus WMI hotkeys", TAG+="Keyboard"
(in /etc/udev/rules.d/99-asus_wmi_hotkeys.rules)
But no luck, Xorg log still reports "Asus WMI hotkeys: is tagged by udev as: Keyboard Switch" as if these custom udev rule(s) had no effect. And the keyboard remains dead...
Perhaps the udev rule order trumps these? Or I made some rule error somewhere?
ATM I don't have time to hack into this more...
Offline