Issue with the keyboard not working on touch screen laptop

I am experiencing an issue with my Lenovo Yoga Slim 7 ProX 14IAH7 touch screen running Fedora 37 where the keyboard does not function properly. To temporarily resolve this, I have found that quickly pressing a key on my keyboard during the boot process between the GRUB menu and the login window can sometimes make the keyboard function properly. I usually use the CapsLock key as it has a light indicator which allows me to know when the keyboard is working properly. However, this solution is not consistent and the keyboard stops working after a system suspend.
I believe the issue is related to the order in which the kernel modules are loaded during boot. Specifically, the keyboard module may not be loaded early enough for it to function properly.
I have confirmed this by using the command dmesg | grep -i keyboard and observing that the i8042 keyboard module is not detected when the keyboard is not working.
When the keyboard is working dmesg | grep -i keyboard looks like this:

[ 1.650871] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input8
[ 3.111772] input: CUST0000:00 27C6:0123 Keyboard as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-CUST0000:00/0018:27C6:0123.0002/input/input17
[ 3.112492] hid-multitouch 0018:27C6:0123.0002: input,hidraw1: I2C HID v1.00 Keyboard [CUST0000:00 27C6:0123] on i2c-CUST0000:00
[ 7.552241] ideapad_acpi VPC2004:00: Keyboard backlight control not available

But when it is not working it will not display the i8042.
From my understanding, there are four different “keyboards” in the system:

  • the main built-in typing keyboard
  • the function keys keyboard
  • the touch screen “keyboards”
  • the keyboard backlight

Now, I am seeking help in understanding how can I ensure that the relevant kernel modules are loaded at the earliest opportunity in order to guarantee that all keyboard modules are loaded properly.

Same issue here with same models, just slightly differen config!

Thanks for the pointer to i8042 message!
[ 1.650871] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input8

I looked an foudn an error from the driver about AUX not powered (later more), and triedy many i8042 cmdline options until finally this works:

i8042.dumbkbd=1

Add it at the end of /etc/default/grub, run grub2-mkconfig to a new file, check the diff and install it to /boot/efi/EFI/fedora/grub2.cfg (or so, I’m in a hurry now)

Any idea from the experts? I think we’d have to upstream this as quirk for the kernel I guess?

We should likely open a bug in the kernel bugzilla next.

Please give feedback it it fixes it for you too!

2 Likes

You can also add kernel arguments via grubby.
sudo grubby --args= arg1 arg2 --update-kernel=ALL
sudo grubby --remove-args= arg1 arg2 --update-kernel=ALL

@pixel if the solution posted by @bkaindl does not work can you post journalctl -b -k -g 'hid|i8042|i2c' on a boot when it is not working.

There is a bug already for the AMD version of this machine, 216473 – keyboard failures after suspend/resume AMD Ryzen 9 6900HS Creator Edition

Thanks

1 Like

Thank you @bkaindl and @grumpey , first of all I want to say that I am not an expert and that this is my first time in diving and dealing with this type of problem also English is not my first language. If I make any stupid or big mistakes please let me know and do not assume I know what I am doing :grin: but I will try my best :upside_down_face:.
Now, I’ve tried by adding in my /etc/default/grub at the line GRUB_CMDLINE_LINUX="i8042.dumbkbd=1 ..." and it works 99%. In my case works also if I add a new line before the normal GRUB_CMDLINE_LINUX like this GRUB_CMDLINE_LINUX_DEFAULT="i8042.dumbkbd". And then I generate a new configuration file for GRUB2, the bootloader used by my Fedora on UEFI systems with this comand: sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg.
What I mean by “it works 99%” is that works everything apart for the the LED on my CapsLk so doesn’t provide a feedback if is on or off :cry:. The reason why is not working is that “i8042.dumbkbd Pretend that controller can only read data from keyboard and cannot control its state (Don’t attempt to blink the leds)” link to kernel-parameters.txt.
For the time being I will use it like this but if you have any Idea what I can try just lett me know an i will try it :wink:.

About the Laptop:

Yoga Slim 7 ProX 14IAH7
Processor: Core i7-12700H
Graphics: NVIDIA GeForce RTX™ 3050 Laptop GPU
Ram: 32 GB
Display: Multitouch

Input Device

Keyboard
-6-row, multimedia Fn keys
Keyboard Backlight
-LED backlight
Touchpad
-Buttonless glass surface multi-touch touchpad, supports Precision TouchPad (PTP), 80 x 135 mm (3.15 x 5.31 inches)

If need it other information pleas let me know.
I have tried with journalctl -b -k -g ‘hid|i8042|i2c’ but it didn’t worked so I used dmesg | grep -i 'hid\|i8042\|i2c'. I hope it produce the same resolute.
Not working:

➜  ~ journalctl -b -k -g ‘hid|i8042|i2c’                 
zsh: i8042: command not found...
zsh: i2c’: command not found...
➜  ~ dmesg | grep -i 'hid\|i8042\|i2c'                   
[    0.000000] Command line: BOOT_IMAGE=(hd0,gpt4)/vmlinuz-6.1.6-200.fc37.x86_64 root=UUID=882e865a-d8c4-4062-a012-816d434fca1e ro rootflags=subvol=root i8042.dumbkbd=1 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 initcall_blacklist=simpledrm_platform_driver_init rhgb quiet rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 initcall_blacklist=simpledrm_platform_driver_init intel_iommu=on
[    0.081603] Kernel command line: BOOT_IMAGE=(hd0,gpt4)/vmlinuz-6.1.6-200.fc37.x86_64 root=UUID=882e865a-d8c4-4062-a012-816d434fca1e ro rootflags=subvol=root i8042.dumbkbd=1 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 initcall_blacklist=simpledrm_platform_driver_init rhgb quiet rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 initcall_blacklist=simpledrm_platform_driver_init intel_iommu=on
[    1.510315] i8042: PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1
[    1.510316] i8042: PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
[    1.517590] serio: i8042 KBD port at 0x60,0x64 irq 1
[    1.517891] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input3
[    1.525177] hid: raw HID events driver (C) Jiri Kosina
[    1.525194] usbcore: registered new interface driver usbhid
[    1.525194] usbhid: USB HID core driver
[    2.756150] input: PNP0C50:00 04F3:3202 Mouse as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-PNP0C50:00/0018:04F3:3202.0001/input/input4
[    2.756290] input: PNP0C50:00 04F3:3202 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-PNP0C50:00/0018:04F3:3202.0001/input/input6
[    2.756377] hid-generic 0018:04F3:3202.0001: input,hidraw0: I2C HID v1.00 Mouse [PNP0C50:00 04F3:3202] on i2c-PNP0C50:00
[    2.808052] input: PNP0C50:00 04F3:3202 Mouse as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-PNP0C50:00/0018:04F3:3202.0001/input/input7
[    2.808330] input: PNP0C50:00 04F3:3202 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-PNP0C50:00/0018:04F3:3202.0001/input/input9
[    2.808513] hid-multitouch 0018:04F3:3202.0001: input,hidraw0: I2C HID v1.00 Mouse [PNP0C50:00 04F3:3202] on i2c-PNP0C50:00
[    3.039936] input: CUST0000:00 27C6:0123 as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-CUST0000:00/0018:27C6:0123.0002/input/input10
[    3.040481] input: CUST0000:00 27C6:0123 UNKNOWN as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-CUST0000:00/0018:27C6:0123.0002/input/input11
[    3.040685] input: CUST0000:00 27C6:0123 Keyboard as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-CUST0000:00/0018:27C6:0123.0002/input/input12
[    3.040963] hid-multitouch 0018:27C6:0123.0002: input,hidraw1: I2C HID v1.00 Keyboard [CUST0000:00 27C6:0123] on i2c-CUST0000:00
[    4.815367] ish-hid {33AECD58-B679-4E54-9BD9-A04D34F0C226}: [hid-ish]: enum_devices_done OK, num_hid_devices=2
[    4.827704] hid-generic 001F:8087:0AC2.0003: hidraw2: SENSOR HUB HID v2.00 Device [hid-ishtp 8087:0AC2] on 
[    4.832493] hid-generic 001F:8087:0AC2.0004: hidraw3: SENSOR HUB HID v2.00 Device [hid-ishtp 8087:0AC2] on 
[    7.297050] input: Intel HID events as /devices/platform/INTC1070:00/input/input15
[    7.297218] intel-hid INTC1070:00: platform supports 5 button array
[    7.297240] input: Intel HID 5 button array as /devices/platform/INTC1070:00/input/input16
[    7.710793] i2c i2c-18: 8/8 memory slots populated (from DMI)
[    7.710794] i2c i2c-18: Systems with more than 4 memory slots not supported yet, not instantiating SPD
➜  ~

Working " forced" by pressing the CapsLk between GRUB an Login screen:

➜  ~ dmesg | grep -i 'hid\|i8042\|i2c'                   
[    1.514859] i8042: PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1
[    1.514861] i8042: PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
[    1.516849] serio: i8042 KBD port at 0x60,0x64 irq 1
[    1.525549] hid: raw HID events driver (C) Jiri Kosina
[    1.525566] usbcore: registered new interface driver usbhid
[    1.525566] usbhid: USB HID core driver
[    1.553107] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input8
[    2.679978] input: PNP0C50:00 04F3:3202 Mouse as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-PNP0C50:00/0018:04F3:3202.0001/input/input9
[    2.680081] input: PNP0C50:00 04F3:3202 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-PNP0C50:00/0018:04F3:3202.0001/input/input11
[    2.680155] hid-generic 0018:04F3:3202.0001: input,hidraw0: I2C HID v1.00 Mouse [PNP0C50:00 04F3:3202] on i2c-PNP0C50:00
[    2.739820] input: PNP0C50:00 04F3:3202 Mouse as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-PNP0C50:00/0018:04F3:3202.0001/input/input12
[    2.740016] input: PNP0C50:00 04F3:3202 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-PNP0C50:00/0018:04F3:3202.0001/input/input14
[    2.740131] hid-multitouch 0018:04F3:3202.0001: input,hidraw0: I2C HID v1.00 Mouse [PNP0C50:00 04F3:3202] on i2c-PNP0C50:00
[    2.967542] input: CUST0000:00 27C6:0123 as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-CUST0000:00/0018:27C6:0123.0002/input/input15
[    2.967714] input: CUST0000:00 27C6:0123 UNKNOWN as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-CUST0000:00/0018:27C6:0123.0002/input/input16
[    2.967789] input: CUST0000:00 27C6:0123 Keyboard as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-CUST0000:00/0018:27C6:0123.0002/input/input17
[    2.967925] hid-multitouch 0018:27C6:0123.0002: input,hidraw1: I2C HID v1.00 Keyboard [CUST0000:00 27C6:0123] on i2c-CUST0000:00
[    4.768002] ish-hid {33AECD58-B679-4E54-9BD9-A04D34F0C226}: [hid-ish]: enum_devices_done OK, num_hid_devices=2
[    4.780707] hid-generic 001F:8087:0AC2.0003: hidraw2: SENSOR HUB HID v2.00 Device [hid-ishtp 8087:0AC2] on 
[    4.785736] hid-generic 001F:8087:0AC2.0004: hidraw3: SENSOR HUB HID v2.00 Device [hid-ishtp 8087:0AC2] on 
[    7.427923] input: Intel HID events as /devices/platform/INTC1070:00/input/input20
[    7.428041] intel-hid INTC1070:00: platform supports 5 button array
[    7.428055] input: Intel HID 5 button array as /devices/platform/INTC1070:00/input/input21
[    7.862738] i2c i2c-18: 8/8 memory slots populated (from DMI)
[    7.862739] i2c i2c-18: Systems with more than 4 memory slots not supported yet, not instantiating SPD
➜  ~

Working with i8042.dumpkbd=1:

➜  ~ journalctl -b -k -g ‘hid|i8042|i2c’                 
zsh: i8042: command not found...
zsh: i2c’: command not found...
➜  ~ dmesg | grep -i 'hid\|i8042\|i2c'                   
[    0.000000] Command line: BOOT_IMAGE=(hd0,gpt4)/vmlinuz-6.1.6-200.fc37.x86_64 root=UUID=882e865a-d8c4-4062-a012-816d434fca1e ro rootflags=subvol=root i8042.dumbkbd=1 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 initcall_blacklist=simpledrm_platform_driver_init rhgb quiet rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 initcall_blacklist=simpledrm_platform_driver_init intel_iommu=on
[    0.081603] Kernel command line: BOOT_IMAGE=(hd0,gpt4)/vmlinuz-6.1.6-200.fc37.x86_64 root=UUID=882e865a-d8c4-4062-a012-816d434fca1e ro rootflags=subvol=root i8042.dumbkbd=1 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 initcall_blacklist=simpledrm_platform_driver_init rhgb quiet rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 initcall_blacklist=simpledrm_platform_driver_init intel_iommu=on
[    1.510315] i8042: PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1
[    1.510316] i8042: PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
[    1.517590] serio: i8042 KBD port at 0x60,0x64 irq 1
[    1.517891] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input3
[    1.525177] hid: raw HID events driver (C) Jiri Kosina
[    1.525194] usbcore: registered new interface driver usbhid
[    1.525194] usbhid: USB HID core driver
[    2.756150] input: PNP0C50:00 04F3:3202 Mouse as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-PNP0C50:00/0018:04F3:3202.0001/input/input4
[    2.756290] input: PNP0C50:00 04F3:3202 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-PNP0C50:00/0018:04F3:3202.0001/input/input6
[    2.756377] hid-generic 0018:04F3:3202.0001: input,hidraw0: I2C HID v1.00 Mouse [PNP0C50:00 04F3:3202] on i2c-PNP0C50:00
[    2.808052] input: PNP0C50:00 04F3:3202 Mouse as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-PNP0C50:00/0018:04F3:3202.0001/input/input7
[    2.808330] input: PNP0C50:00 04F3:3202 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-PNP0C50:00/0018:04F3:3202.0001/input/input9
[    2.808513] hid-multitouch 0018:04F3:3202.0001: input,hidraw0: I2C HID v1.00 Mouse [PNP0C50:00 04F3:3202] on i2c-PNP0C50:00
[    3.039936] input: CUST0000:00 27C6:0123 as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-CUST0000:00/0018:27C6:0123.0002/input/input10
[    3.040481] input: CUST0000:00 27C6:0123 UNKNOWN as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-CUST0000:00/0018:27C6:0123.0002/input/input11
[    3.040685] input: CUST0000:00 27C6:0123 Keyboard as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-CUST0000:00/0018:27C6:0123.0002/input/input12
[    3.040963] hid-multitouch 0018:27C6:0123.0002: input,hidraw1: I2C HID v1.00 Keyboard [CUST0000:00 27C6:0123] on i2c-CUST0000:00
[    4.815367] ish-hid {33AECD58-B679-4E54-9BD9-A04D34F0C226}: [hid-ish]: enum_devices_done OK, num_hid_devices=2
[    4.827704] hid-generic 001F:8087:0AC2.0003: hidraw2: SENSOR HUB HID v2.00 Device [hid-ishtp 8087:0AC2] on 
[    4.832493] hid-generic 001F:8087:0AC2.0004: hidraw3: SENSOR HUB HID v2.00 Device [hid-ishtp 8087:0AC2] on 
[    7.297050] input: Intel HID events as /devices/platform/INTC1070:00/input/input15
[    7.297218] intel-hid INTC1070:00: platform supports 5 button array
[    7.297240] input: Intel HID 5 button array as /devices/platform/INTC1070:00/input/input16
[    7.710793] i2c i2c-18: 8/8 memory slots populated (from DMI)
[    7.710794] i2c i2c-18: Systems with more than 4 memory slots not supported yet, not instantiating SPD
➜  ~

If you need I have also:

i8042.debug	[HW] Toggle i8042 debug mode
i8042.unmask_kbd_data
			[HW] Enable printing of interrupt data from the KBD port
			     (disabled by default, and as a pre-condition
			     requires that i8042.debug=1 be enabled)

Also, I would like to apologise for the confusion because I noticed that it said Yoga Slim 7 ProX (that’s what I copied from the pdf file for my laptop) but it is actually Yoga Slim 7i ProX.

That is the wrong command and will only work for the currently installed kernel unless you manually run grub2-mkconfig every time a kernel is updated.

See the docs here.

Since fedora 34 was released the location for the grub.cfg file was moved to /boot/grub2/grub.cfg and now both efi and mbr systems use the same grub.cfg file location.

To repair the damage caused by overwriting the /boot/efi/EFI/fedora/grub.cfg file (which is now only a stub pointer file to redirect grub) there are 2 steps required.

  1. delete /boot/grub2/grub.cfg and /boot/efi/EFI/fedora/grub.cfg
  2. run sudo reinstall grub2-common grub2-efi* which will rebuild both the grub.cfg files properly.

In the future if you need to update the grub.cfg file you should only run
grub2-mkconfig -o /boot/grub2/grub.cfg or use one of the /etc/grub2.cfg or /etc/grub2-efi.cfg links as output.

2 Likes

Thank you for let me know, I relay appreciated!Thanks for letting me know, I appreciate it!

I’m new to fedora and I want to explain this to me be in my situation:
System details:
Fedora 37 BTRFS + EFI System

To repair GRUB damage:
Delete

  • sudo rm /boot/grub2/grub.cfg
  • sudo rm /boot/efi/EFI/fedora/grub.cfg

Run
Observation: recommended to use bash shell as I had issue wit zsh running rub2-efi*

  • sudo dnf reinstall grub2-common grub2-efi*
  • sudo grub2-mkconfig -o /boot/grub2/grub.cfg

If for any reason you get stuck in the GRUB2 boot prompt, refer to this guide link.
As an example, in my case, using the data I provided above, I did it this way:

Pre-boot setup for BTRFS on UEFI systems

1 → my root is in (hd0,gpt5)
grub> set root=(hd0,gpt5)

2 → Instead of using the path (in my case: /dev/nvme0n1p5) I used UUID (universally unique identifier) because I had it just here

grub> linux (hd0,gpt4)/vmlinuz-6.1.6-200.fc37.x86_64 root=UUID=882e865a-d8c4-4062-a012-816d434fca1e ro rootflags=subvol=root i8042.dumbkbd=1
I used i8042.dumbkbd=1 because I wanted to make sure my keyboard worked just to fix my mess :sweat_smile: but in general you don’t need it, unless you have the same machine and the same issue as me.
If the machine is running, the UUID can be found using the command: sudo blkid | grep UUID=. I am not sure, but I think I could also use: LABEL=fedora_localhost-live (the lable of my logical volume corresponds to the /root directory:)

3 → last step:
grub> boot

@computersavvy if I have made any mistakes in my explanation, please correct me :innocent:.

The only thing needed was what I posted above.

It handles all the additional config necessary and much of what you posted is not needed.

The only thing you had messed up was overwriting the grub.cfg file under /boot/efi and the reinstall after removing those 2 files will properly rebuild both those 2 files by

  1. rebuilding the grub.cfg file under /boot/efi to make the proper pointer
    and
  2. running the grub2-mkconfig step to rebuild the /boot/grub2/grub.cfg file.

The document I pointed out tells you what should be done in most cases but does not tell how to recover from overwriting the stub pointer grub.cfg file.

Everything you did from the grub command line is done automatically with the reinstall of the noted packages.

If you needed to add that option to the grub kernel command line you could have done so by using grubby as noted above, or by doing so when editing /etc/default/grub and adding it into the kernel command line there before running the grub2-mkconfig command.

Adding anything into the grub command line as you did is a one time thing and does not remain for the next boot. Using grubby or adding it into the kernel command line in /etc/default/grub is the only sure way to make those options persist across boots.

It looks like the no working post above also contains.

i8042.dumbkbd=1 

If you boot up with the issue does the keyboard work after running:
sudo rmmod i8042
sudo modprobe i8042 reset=1

Thanks

Sorry you are right, I copied the wrong one. This is the one that doesn’t work:

➜  ~ journalctl -b -k -g ‘hid|i8042|i2c’                 
zsh: i8042: command not found...
zsh: i2c’: command not found...
➜  ~ dmesg | grep -i 'hid\|i8042\|i2c'          
[    1.515620] i8042: PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1
[    1.515622] i8042: PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
[    1.517301] serio: i8042 KBD port at 0x60,0x64 irq 1
[    1.525829] hid: raw HID events driver (C) Jiri Kosina
[    1.525851] usbcore: registered new interface driver usbhid
[    1.525851] usbhid: USB HID core driver
[    2.817073] input: PNP0C50:00 04F3:3202 Mouse as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-PNP0C50:00/0018:04F3:3202.0001/input/input4
[    2.817215] input: PNP0C50:00 04F3:3202 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-PNP0C50:00/0018:04F3:3202.0001/input/input6
[    2.817293] hid-generic 0018:04F3:3202.0001: input,hidraw0: I2C HID v1.00 Mouse [PNP0C50:00 04F3:3202] on i2c-PNP0C50:00
[    2.874109] input: PNP0C50:00 04F3:3202 Mouse as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-PNP0C50:00/0018:04F3:3202.0001/input/input7
[    2.874480] input: PNP0C50:00 04F3:3202 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-PNP0C50:00/0018:04F3:3202.0001/input/input9
[    2.874598] hid-multitouch 0018:04F3:3202.0001: input,hidraw0: I2C HID v1.00 Mouse [PNP0C50:00 04F3:3202] on i2c-PNP0C50:00
[    3.099316] input: CUST0000:00 27C6:0123 as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-CUST0000:00/0018:27C6:0123.0002/input/input10
[    3.099718] input: CUST0000:00 27C6:0123 UNKNOWN as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-CUST0000:00/0018:27C6:0123.0002/input/input11
[    3.099880] input: CUST0000:00 27C6:0123 Keyboard as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-CUST0000:00/0018:27C6:0123.0002/input/input12
[    3.100125] hid-multitouch 0018:27C6:0123.0002: input,hidraw1: I2C HID v1.00 Keyboard [CUST0000:00 27C6:0123] on i2c-CUST0000:00
[    4.908472] ish-hid {33AECD58-B679-4E54-9BD9-A04D34F0C226}: [hid-ish]: enum_devices_done OK, num_hid_devices=2
[    4.921766] hid-generic 001F:8087:0AC2.0003: hidraw2: SENSOR HUB HID v2.00 Device [hid-ishtp 8087:0AC2] on 
[    4.926868] hid-generic 001F:8087:0AC2.0004: hidraw3: SENSOR HUB HID v2.00 Device [hid-ishtp 8087:0AC2] on 
[    7.443138] input: Intel HID events as /devices/platform/INTC1070:00/input/input15
[    7.443220] intel-hid INTC1070:00: platform supports 5 button array
[    7.443233] input: Intel HID 5 button array as /devices/platform/INTC1070:00/input/input16
[    7.932396] i2c i2c-18: 8/8 memory slots populated (from DMI)
[    7.932398] i2c i2c-18: Systems with more than 4 memory slots not supported yet, not instantiating SPD
➜  ~

I executed the commands, the keyboard is not working and this is the output:

➜  ~ sudo rmmod 
[sudo] password for pixel: 
rmmod: ERROR: Module i8042 is builtin.
➜  ~ sudo modprobe i8042 reset=1 
➜  ~ 

I believe I read somewhere that the module i8042 is built into the kernel, is that what the output says?

Thanks

Yes it is.

These appear to be the two most common options added to work around the issue.

i8042.direct i8042.dumbkbd

You could also try using:

i8042.reset=1 i8042.nomux atkbd.reset
to see if it makes any difference.

My recommendation at this point would be to file a kernel bug.
https://www.kernel.org/doc/html/v4.15/admin-guide/reporting-bugs.html

The information needed will be similar to 195471 – Keyboard not working after resume with kernel 4.10.5 or 216473 – keyboard failures after suspend/resume AMD Ryzen 9 6900HS Creator Edition

I have tried everything and the only solution that makes a difference so far is i8042.dumbkbd.
I will follow your recommendation an I will file a kernel bug.
For the time being I will use i8042.dumbkbd in combination with the GNOME Extension Lock Keys.
Thank you for assisting me @bkaindl @grumpey @computersavvy, you are stars :star2: :star2: :star2: ! :pray: :star_struck:

@pixel Have you been able to file a kernel bug?

Not yet, I have to understand how it works first because I have never done it before.

(post deleted by author)

(post deleted by author)

https://bugzilla.kernel.org/show_bug.cgi?id=216994

1 Like

Thanks to Joe for linking the kernel bug report. I might be on to something:

https://bbs.archlinux.org/viewtopic.php?id=261108&p=2
https://patchwork.kernel.org/project/linux-input/patch/20210201160336.16008-1-anton@cpp.in/
https://wiki.archlinux.org/title/HP_Spectre_x360_(2020)#Keyboard

For more info on the i8042 hardware and it’s history, this is a great find:
https://wiki.osdev.org/“8042”_PS/2_Controller

The patch got no reaction on the linux-input list and still applies clean on Linux 6.1.
In case the external i8042-spectre module from the GitHub repo does not conflict with the built-in module, it could be compiled against the f37 kernel and tested without having to patch the f37 kernel.

PS: Only some of the Fn keys worked, the hints here could help to make them work:
https://wiki.archlinux.org/title/HP_Spectre_x360_(2020)#Keyboard

The combination of i8042.nomux=1 i8042.reset which solved Fujitsu Lifebook E5510 | keyboard not detected - #18 by grumpey might be worth a try too.