Laptop keyboard not working after boot

Hi all,
I am a new forum user, but quite an old Fedora fellow. I bought an ASUS Expertbook B1 without OS and I was trying to set up a fresh Fedora 38 install through USB boot device. The installation was smooth and the laptop works fine with BIOS settings and boot options, but, after booting the system, the laptop keyboard becomes totally unresponsive, with the CapsLock led lit.

Searching on Google, I found that several people before me experienced internal keyboard problems on new laptops under different Linux distros (Fedora/Ubuntu/Mint etc.) and most of them traced the problem up to the i8042 kernel module. So, I tested the following kernel parameter set:

BOOT_IMAGE=(hd0,gpt2)/vmlinuz-6.2.9-300.fc38.x86_64 root=UUID=c0b68eb2-fdea-4922-aef5-ce4ff77f5e36 ro rootflags=subvol=root quiet i8042.debug=1

I then plugged in an external keyboard and issued a dmesg | grep i8042, obtaining:

[    0.000000] Command line: BOOT_IMAGE=(hd0,gpt2)/vmlinuz-6.2.9-300.fc38.x86_64 root=UUID=c0b68eb2-fdea-4922-aef5-ce4ff77f5e36 ro rootflags=subvol=root quiet i8042.debug=1
[    0.051482] Kernel command line: BOOT_IMAGE=(hd0,gpt2)/vmlinuz-6.2.9-300.fc38.x86_64 root=UUID=c0b68eb2-fdea-4922-aef5-ce4ff77f5e36 ro rootflags=subvol=root quiet i8042.debug=1
[    1.361855] i8042: PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1
[    1.361856] i8042: PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
[    1.361947] i8042: [0] 20 -> i8042 (command)
[    1.362158] i8042: [0] 65 <- i8042 (return)
[    1.362234] i8042: [0] 20 -> i8042 (command)
[    1.362747] i8042: [2] 65 <- i8042 (return)
[    1.364376] i8042: [2] 60 -> i8042 (command)
[    1.364566] i8042: [2] 74 -> i8042 (parameter)
[    1.364670] i8042: [2] 60 -> i8042 (command)
[    1.364785] i8042: [2] 65 -> i8042 (parameter)
[    1.364807] serio: i8042 KBD port at 0x60,0x64 irq 1
[    1.365152] i8042: [3] f2 -> i8042 (kbd-data)
[    1.571920] i8042: [210] ed -> i8042 (kbd-data)
[    1.780032] i8042: [418] 60 -> i8042 (command)
[    1.780269] i8042: [418] 64 -> i8042 (parameter)
[    1.780387] i8042: [418] 60 -> i8042 (command)
[    1.780686] i8042: [418] 65 -> i8042 (parameter)
[    1.780762] i8042: [418] fa <- i8042 (interrupt, 0, 0)
[    1.780891] i8042: [419] Interrupt 1, without any data

Now, the “PNP: PS2” stuff can be solved by further adding a i8042.nopnp=1 kernel argument, but the keyboard remains unresponsive after system boot. Checking the journalctl boot error report (journalctl -b -p err) I got the following:

Sep 03 16:40:54 fedora kernel: ucsi_acpi USBC000:00: PPM init failed (-16)
Sep 03 16:40:58 fedora kernel: ACPI BIOS Error (bug): AE_AML_PACKAGE_LIMIT, Index (0x000000001) is beyond end of object (length 0x0) (20221020/exoparg2-393)
Sep 03 16:40:58 fedora kernel: ACPI Error: Aborting method \_SB.PC00.CNVW.EWRD due to previous error (AE_AML_PACKAGE_LIMIT) (20221020/psparse-529)
Sep 03 16:40:58 fedora bluetoothd[849]: src/plugin.c:plugin_init() Failed to init vcp plugin
Sep 03 16:40:58 fedora bluetoothd[849]: src/plugin.c:plugin_init() Failed to init mcp plugin
Sep 03 16:40:58 fedora bluetoothd[849]: src/plugin.c:plugin_init() Failed to init bap plugin
Sep 03 16:40:58 fedora thermald[866]: Unsupported condition 41 (Screen_state)
Sep 03 16:40:58 fedora thermald[866]: Unsupported condition 9 (Aggregate_power_percentage)
Sep 03 16:40:58 fedora thermald[866]: Unsupported condition 9 (Aggregate_power_percentage)
Sep 03 16:40:58 fedora thermald[866]: Unsupported condition 9 (Aggregate_power_percentage)
Sep 03 16:40:58 fedora thermald[866]: Unsupported conditions are present
Sep 03 16:40:59 fedora kernel: Bluetooth: hci0: Malformed MSFT vendor event: 0x02
Sep 03 16:42:14 fedora abrt-notification[1752]: Process 1717 (main.py) of user 42 encountered an uncaught AttributeError exception
Sep 03 16:42:31 fedora gdm-password][1718]: gkr-pam: unable to locate daemon control file
Sep 03 16:42:33 fedora systemd[1765]: Failed to start app-gnome-at\x2dspi\x2ddbus\x2dbus-2148.scope - Application launched by gnome-session-binary.
Sep 03 16:42:36 fedora gdm-launch-environment][1041]: GLib-GObject: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
Sep 03 16:42:59 fedora abrt-notification[3175]: Process 4344 (main.py) of user 1000 encountered an uncaught AttributeError exception
Sep 03 16:56:08 fedora abrt-notification[4075]: Process 1717 (main.py) of user 42 encountered an uncaught AttributeError exception
Sep 03 16:56:39 fedora gdm-password][4047]: gkr-pam: unable to locate daemon control file
Sep 03 16:56:56 fedora gdm-password][4110]: gkr-pam: unable to locate daemon control file
Sep 03 16:57:00 fedora gdm-launch-environment][3461]: GLib-GObject: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
Sep 03 16:57:16 fedora abrt-notification[5325]: Process 4344 (main.py) of user 1000 encountered an uncaught AttributeError exception

The details of my system were obtained with a call to inxi -Fxxxrz and they are:

System:
  Kernel: 6.2.9-300.fc38.x86_64 arch: x86_64 bits: 64 compiler: gcc
    v: 2.39-9.fc38 clocksource: tsc Desktop: GNOME v: 44.0 tk: GTK v: 3.24.37
    wm: gnome-shell dm: GDM v: 43.0 Distro: Fedora release 38 (Thirty Eight)
Machine:
  Type: Laptop System: ASUSTeK product: ASUS EXPERTBOOK B1502CBA_B1502CBA
    v: 1.0 serial: <superuser required>
  Mobo: ASUSTeK model: B1502CBA v: 1.0 serial: <superuser required>
    UEFI: American Megatrends LLC. v: B1502CBA.300 date: 01/18/2023
Battery:
  ID-1: BAT0 charge: 37.8 Wh (88.5%) condition: 42.7/41.9 Wh (102.0%)
    volts: 12.3 min: 11.8 model: X421-35 type: Li-ion serial: N/A
    status: discharging
CPU:
  Info: 10-core (2-mt/8-st) model: 12th Gen Intel Core i5-1235U bits: 64
    type: MST AMCP smt: enabled arch: Alder Lake rev: 4 cache: L1: 928 KiB
    L2: 6.5 MiB L3: 12 MiB
  Speed (MHz): avg: 2381 high: 2500 min/max: 400/4400:3300 cores: 1: 2500
    2: 2500 3: 2500 4: 2500 5: 2500 6: 1072 7: 2500 8: 2500 9: 2500 10: 2500
    11: 2500 12: 2500 bogomips: 59904
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
  Device-1: Intel Alder Lake-UP3 GT2 [UHD Graphics] vendor: ASUSTeK
    driver: i915 v: kernel arch: Gen-12.2 ports: active: eDP-1 empty: DP-1,
    DP-2, DP-3, DP-4, HDMI-A-1 bus-ID: 00:02.0 chip-ID: 8086:4628
    class-ID: 0300
  Device-2: IMC Networks USB2.0 HD UVC WebCam driver: uvcvideo type: USB
    rev: 2.0 speed: 480 Mb/s lanes: 1 bus-ID: 3-7:2 chip-ID: 13d3:5463
    class-ID: fe01 serial: <filter>
  Display: wayland server: X.org v: 1.20.14 with: Xwayland v: 22.1.9
    compositor: gnome-shell driver: X: loaded: modesetting unloaded: fbdev,vesa
    dri: iris gpu: i915 display-ID: 0
  Monitor-1: eDP-1 model: BOE Display 0x0c02 res: 1920x1080 dpi: 142
    size: 344x194mm (13.54x7.64") diag: 395mm (15.5") modes: 1920x1080
  API: OpenGL v: 4.6 Mesa 23.0.1 renderer: Mesa Intel Graphics (ADL GT2)
    direct-render: Yes
Audio:
  Device-1: Intel Alder Lake PCH-P High Definition Audio vendor: ASUSTeK
    driver: sof-audio-pci-intel-tgl bus-ID: 00:1f.3 chip-ID: 8086:51c8
    class-ID: 0401
  API: ALSA v: k6.2.9-300.fc38.x86_64 status: kernel-api
  Server-1: PipeWire v: 0.3.67 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    4: pw-jack type: plugin
Network:
  Device-1: Intel Alder Lake-P PCH CNVi WiFi driver: iwlwifi v: kernel
    bus-ID: 00:14.3 chip-ID: 8086:51f0 class-ID: 0280
  IF: wlo1 state: down mac: <filter>
  Device-2: Intel Ethernet I219-V driver: e1000e v: kernel port: N/A
    bus-ID: 00:1f.6 chip-ID: 8086:1a1f class-ID: 0200
  IF: eno2 state: down mac: <filter>
Bluetooth:
  Device-1: Intel AX201 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0
    speed: 12 Mb/s lanes: 1 bus-ID: 3-10:3 chip-ID: 8087:0026 class-ID: e001
  Report: btmgmt ID: hci0 rfk-id: 2 state: up address: <filter> bt-v: 5.2
    lmp-v: 11 class-ID: 6c010c
Drives:
  Local Storage: total: 476.94 GiB used: 3.85 GiB (0.8%)
  ID-1: /dev/nvme0n1 vendor: Micron model: 2400 MTFDKBA512QFM
    size: 476.94 GiB speed: 63.2 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: V3MA003 temp: 28.9 C scheme: GPT
Partition:
  ID-1: / size: 475.35 GiB used: 3.66 GiB (0.8%) fs: btrfs dev: /dev/nvme0n1p3
  ID-2: /boot size: 973.4 MiB used: 182 MiB (18.7%) fs: ext4
    dev: /dev/nvme0n1p2
  ID-3: /boot/efi size: 598.8 MiB used: 17.4 MiB (2.9%) fs: vfat
    dev: /dev/nvme0n1p1
  ID-4: /home size: 475.35 GiB used: 3.66 GiB (0.8%) fs: btrfs
    dev: /dev/nvme0n1p3
Swap:
  ID-1: swap-1 type: zram size: 7.37 GiB used: 0 KiB (0.0%) priority: 100
    dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 38.0 C mobo: N/A
  Fan Speeds (rpm): N/A
Repos:
  Packages: pm: rpm pkgs: N/A note: see --rpm
  No active dnf repos in: /etc/dnf/dnf.conf
  Active yum repos in: /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:phracek:PyCharm.repo
    1: copr:copr.fedorainfracloud.org:phracek:PyCharm ~ https://download.copr.fedorainfracloud.org/results/phracek/PyCharm/fedora-$releasever-$basearch/
  Active yum repos in: /etc/yum.repos.d/fedora-cisco-openh264.repo
    1: fedora-cisco-openh264 ~ https://mirrors.fedoraproject.org/metalink?repo=fedora-cisco-openh264-$releasever&arch=$basearch
  Active yum repos in: /etc/yum.repos.d/fedora-modular.repo
    1: fedora-modular ~ https://mirrors.fedoraproject.org/metalink?repo=fedora-modular-$releasever&arch=$basearch
  Active yum repos in: /etc/yum.repos.d/fedora-updates-modular.repo
    1: updates-modular ~ https://mirrors.fedoraproject.org/metalink?repo=updates-released-modular-f$releasever&arch=$basearch
  No active yum repos in: /etc/yum.repos.d/fedora-updates-testing-modular.repo
  No active yum repos in: /etc/yum.repos.d/fedora-updates-testing.repo
  Active yum repos in: /etc/yum.repos.d/fedora-updates.repo
    1: updates ~ https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
  Active yum repos in: /etc/yum.repos.d/fedora.repo
    1: fedora ~ https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
  Active yum repos in: /etc/yum.repos.d/google-chrome.repo
    1: google-chrome ~ https://dl.google.com/linux/chrome/rpm/stable/x86_64
  Active yum repos in: /etc/yum.repos.d/rpmfusion-nonfree-nvidia-driver.repo
    1: rpmfusion-nonfree-nvidia-driver ~ https://mirrors.rpmfusion.org/metalink?repo=nonfree-fedora-nvidia-driver-$releasever&arch=$basearch
  Active yum repos in: /etc/yum.repos.d/rpmfusion-nonfree-steam.repo
    1: rpmfusion-nonfree-steam ~ https://mirrors.rpmfusion.org/metalink?repo=nonfree-fedora-steam-$releasever&arch=$basearch
Info:
  Processes: 303 Uptime: 37m wakeups: 12146 Memory: total: 8 GiB note: est.
  available: 7.37 GiB used: 1.54 GiB (20.9%) Init: systemd v: 253
  target: graphical (5) default: graphical Compilers: N/A Shell: Bash
  v: 5.2.15 running-in: gnome-terminal inxi: 3.3.29

Could anyone help me understand why the laptop keyboard stops responding after boot (in spite of working perfectly in BIOS and GRUB) and hopefully solve the problem?

Thanks in advance!
D

1 Like

I don’t know anything about the i8042 driver. But it appears to have many parameters that you could experiment with (same as you did with debug and nopnp).

$ modinfo i8042
name:           i8042
filename:       (builtin)
license:        GPL
file:           drivers/input/serio/i8042
description:    i8042 keyboard and mouse controller driver
author:         Vojtech Pavlik <vojtech@suse.cz>
parm:           nokbd:Do not probe or use KBD port. (bool)
parm:           noaux:Do not probe or use AUX (mouse) port. (bool)
parm:           nomux:Do not check whether an active multiplexing controller is present. (bool)
parm:           unlock:Ignore keyboard lock. (bool)
parm:           probe_defer:Allow deferred probing. (bool)
parm:           reset:Reset controller on resume, cleanup or both (reset_param)
parm:           direct:Put keyboard port into non-translated mode. (bool)
parm:           dumbkbd:Pretend that controller can only read data from keyboard (bool)
parm:           noloop:Disable the AUX Loopback command while probing for the AUX port (bool)
parm:           notimeout:Ignore timeouts signalled by i8042 (bool)
parm:           kbdreset:Reset device connected to KBD port (bool)
parm:           dritek:Force enable the Dritek keyboard extension (bool)
parm:           nopnp:Do not use PNP to detect controller settings (bool)
parm:           debug:Turn i8042 debugging mode on and off (bool)
parm:           unmask_kbd_data:Unconditional enable (may reveal sensitive data) of normally sanitize-filtered kbd data traffic debug log [pre-condition: i8042.debug=1 enabled] (bool)

Both kbdreset and unlock look interesting to me. (“bool” is short for boolean and means that the setting can be turned on or off by assigning 1 or 0 respectively.)

The keyboard worked when you used the live usb?

Suggest you record the kernel version that the live usb uses.
Can tou downgrade to that kernel? Does that make the keyboard work?

Also you can explore the state of the system when in the live usb and look for differences.

Hi,
thanks to @glb and @barryascott for looking in my post. It looks like the issue was indeed caused by the kernel version, but in the opposite direction (i.e., needed update, not downgrade). Yesterday, I was working with kernel 6.2.9-300.fc38.x86_64 and limited internet connection. Today (with a better internet), I allowed the system to upgrade to kernel version 6.4.13-200.fc38.x86_64, after which, the keyboard is typing happily :partying_face:

Below is what I did (after system update):

  1. edited /etc/default/grub to have the default linux line running as
GRUB_CMDLINE_LINUX_DEFAULT="quiet i8042.debug=1 i8042.noaux=1"
  1. executed sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  2. rebooted and… everything works!

I would then narrow the solution down to using the noaux=1 flag (because there is no PS2 mouse) and upgrading kernel. There is no need to disable the whole PNP.