You are not logged in.

#1 2024-08-15 16:15:38

tedward
Member
Registered: 2024-08-15
Posts: 3

[Solved] T470 custom KEYMAP file stopped working after update

See my follow-up comment for details of the cause and solution to this issue as well as the still outstanding question

I performed a full system update on my laptop on 2024/08/13. After the updated and rebooted. Keyboard worked in the BIOS and in GRUB but once the system has booted and I'm at the login prompt on tty1, input stops. This includes trying to switch TTYs. I can boot in to a live image and the keyboard works fine. I can also connect over SSH and keyboard input works fine.

Things I have tried that have not worked:

  • Find and re-install all packages that were updated on 8/13:

    $ for i in $(grep 2024-08-13 /var/log/pacman.log | awk '/] installed/ {print $4}); do find /var/cache/pacman/pkg -type f -name \*${i}\*.zst -exec pacman -U --noconfirm {} \;; done
  • Based on some forum posts of similar issues, I attempted to compile a custom kernel using ABS and a modified config to try enabling additional keyboard configs.

  • Boot with "systemd.unit=recovery.target" as well as "systemd.unit=emergency.target", neither of which made any affect

  • I attempted to roll back to older linux and linux-firmware packages found in /var/cache/pacman/pkg. None made any improvement

  • I've compared the list of loaded kernel modules in a live disk vs. my install and while there were differences, none of them seemed like they would be related to keyboard input (atkbd, loaded in both, etc.)

  • Plugged in an external USB keyboard. This registered in dmesg but keyboard input did not work.

  • There are no keyboard or USB related errors in dmesg.

So, at this point I'm stuck and looking for some additional suggestions to try and restore keyboard functionality to my laptop.


[EDIT]

Some additional detail:

It looks like keyboard input is registered:

# libinput debug-events --verbose
libinput version: 1.26.1
event2  - Power Button: is tagged by udev as: Keyboard
event2  - Power Button: device is a keyboard
event5  - Video Bus: is tagged by udev as: Keyboard
event5  - Video Bus: device is a keyboard
event1  - Lid Switch: is tagged by udev as: Switch
event1  - Lid Switch: device is a switch device
event0  - Sleep Button: is tagged by udev as: Keyboard
event0  - Sleep Button: device is a keyboard
event8  - HDA Intel PCH Dock Mic: is tagged by udev as: Switch
event8  - not using input device '/dev/input/event8'
event9  - HDA Intel PCH Dock Headphone: is tagged by udev as: Switch
event9  - not using input device '/dev/input/event9'
event10 - HDA Intel PCH Headphone: is tagged by udev as: Switch
event10 - not using input device '/dev/input/event10'
event11 - HDA Intel PCH HDMI/DP,pcm=3: is tagged by udev as: Switch
event11 - not using input device '/dev/input/event11'
event12 - HDA Intel PCH HDMI/DP,pcm=7: is tagged by udev as: Switch
event12 - not using input device '/dev/input/event12'
event13 - HDA Intel PCH HDMI/DP,pcm=8: is tagged by udev as: Switch
event13 - not using input device '/dev/input/event13'
event7  - HDA Intel PCH Mic: is tagged by udev as: Switch
event7  - not using input device '/dev/input/event7'
event4  - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard
event4  - AT Translated Set 2 keyboard: device is a keyboard
  ... event1  - lid: keyboard paired with Lid Switch<->AT Translated Set 2 keyboard
  ... event14 - tagged as ModelSynapticsSerialTouchpad
event14 - SynPS/2 Synaptics TouchPad: is tagged by udev as: Touchpad
  ... event14 - using pressure-based touch detection (25:30)
  ... event14 - palm: pressure threshold is 130
  ... event14 - thumb: enabled thumb detection (area, pressure)
event14 - SynPS/2 Synaptics TouchPad: device is a touchpad
  ... event14 - lid: activated for SynPS/2 Synaptics TouchPad<->Lid Switch
  ... event14 - palm: dwt activated with SynPS/2 Synaptics TouchPad<->AT Translated Set 2 keyboard
event15 - TPPS/2 IBM TrackPoint: is tagged by udev as: Mouse Pointingstick
event15 - TPPS/2 IBM TrackPoint: trackpoint multiplier is 0.40
event15 - TPPS/2 IBM TrackPoint: device is a pointer
event6  - PC Speaker: not tagged as supported input device
event6  - not using input device '/dev/input/event6'
event3  - ThinkPad Extra Buttons: is tagged by udev as: Keyboard Switch
event3  - ThinkPad Extra Buttons: device is a keyboard
-event2   DEVICE_ADDED            Power Button                      seat0 default group1  cap:k
-event5   DEVICE_ADDED            Video Bus                         seat0 default group2  cap:k
-event1   DEVICE_ADDED            Lid Switch                        seat0 default group3  cap:S
-event0   DEVICE_ADDED            Sleep Button                      seat0 default group4  cap:k
-event4   DEVICE_ADDED            AT Translated Set 2 keyboard      seat0 default group5  cap:k
-event14  DEVICE_ADDED            SynPS/2 Synaptics TouchPad        seat0 default group6  cap:pg  size 98x65mm tap(dl off) left scroll-nat scroll-2fg-edge click-buttonareas-clickfinger dwt-on dwtp-on
-event15  DEVICE_ADDED            TPPS/2 IBM TrackPoint             seat0 default group7  cap:p left scroll-nat scroll-button
-event3   DEVICE_ADDED            ThinkPad Extra Buttons            seat0 default group8  cap:k
-event4   KEYBOARD_KEY            +0.000s       *** (-1) pressed
 event4   KEYBOARD_KEY            +0.063s       *** (-1) released
   4: event14 - palm: keyboard timeout
 event4   KEYBOARD_KEY            +0.310s       *** (-1) pressed
 event4   KEYBOARD_KEY            +0.381s       *** (-1) released
   7: event14 - palm: keyboard timeout
 event4   KEYBOARD_KEY            +0.595s       *** (-1) pressed
 event4   KEYBOARD_KEY            +0.674s       *** (-1) released
  10: event14 - palm: keyboard timeout
 event4   KEYBOARD_KEY            +0.894s       *** (-1) pressed
 event4   KEYBOARD_KEY            +0.957s       *** (-1) released
  13: event14 - palm: keyboard timeout
  • If I start Xorg by running the following command over ssh, as root, I'm able to start a twm session on the laptop screen and laptop keyboard and mouse input work inside the X session.

# DISPLAY=:0.0 startx

Last edited by tedward (2024-08-15 17:29:51)

Offline

#2 2024-08-15 17:28:05

tedward
Member
Registered: 2024-08-15
Posts: 3

Re: [Solved] T470 custom KEYMAP file stopped working after update

I have restored keyboard functionality. But I am still confused why what I discovered started causing problems now.

TL;DR, I have a custom keymap in /usr/share/kbd/keymaps that remaps a couple of modifier keys which was causing an issue.

In this file I only define those custom keys, not a full keymap. Running "loadkeys /usr/share/kbd/keymaps/i386/qwerty/us.map" allowed keyboard input to resume functioning as normal. I've now updated the KEYMAP value in /etc/vconsole.conf to reference this map file and the keyboard works in subsequent reboots. Why would this suddenly become a problem now? Do I now need to make a copy of a map and change specific keys to set them in the console?

Last edited by tedward (2024-08-15 17:30:10)

Offline

#3 2024-10-21 18:53:39

cschep
Member
Registered: 2006-12-02
Posts: 125
Website

Re: [Solved] T470 custom KEYMAP file stopped working after update

I am setting up a new laptop and have found that if I make a custom .map file and only change one thing and use loadkeys to load it -- no other keys work anymore!

I think something is changed because the ArchWiki doesn't seem to reflect reality. Especially if yours used to work.

Offline

Board footer

Powered by FluxBB