You are not logged in.
Hi all,
I recently installed Arch on my Laptop (Asus UM425UA) and I can't get my keyboard to work in the tty.
Everything else seems to work fine and I can use an external USB keyboard, but this sadly defeats the purpose of a Laptop.
Here are some things I've tried:
Added module atkbd to MODULES in mkinitcpio.conf, as suggested on the ArchWiki.
Listed out all my input devices with libinput list-devices, see this pastebin, and checked if any of the devices generated output when pressing keys. None did.
The weird part is, if I reboot after booting into the Arch live ISO, my keyboard works fine, until I shutdown.
libinput list-devices shows an extra input device when I do this, as can be seen this pastebin.
This new device (AT Translated Set 2 Keyboard) seems to be my laptop keyboard.
Also, if needed, here is the output of dmesg:
Could you help me out with this problem?
Cheers,
Michiel
Last edited by Mich1501 (2021-04-09 12:55:41)
Offline
Did you install linux-firmware?
macro_rules! yolo { { $($tokens:tt)* } => { unsafe { $($tokens)* } }; }
Offline
I did. Just to be sure I reinstalled it, but to no avail.
Offline
640 [ 0.382499] i8042: PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1
641 [ 0.382501] i8042: PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
642 [ 0.384384] serio: i8042 KBD port at 0x60,0x64 irq 1
640 [ 0.379830] i8042: PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1
641 [ 0.379831] i8042: PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
642 [ 0.455615] nvme nvme0: 16/0/0 default/read/poll queues
643 [ 0.462386] nvme0n1: p1 p2 p3 p4 p5 p6 p7
644 [ 0.904838] i8042: Can't read CTR while initializing i8042
645 [ 0.904846] i8042: probe of i8042 failed with error -5
Online
There doesn't seem to be a USB legacy support, or a similar option in my BIOS.
i8042: Can't read CTR while initializing i8042
I had looked this up before, but most sources said to just ignore it, if you don't have keyboard connected to PS/2. (I wish ignoring my problems would just fix them, but that's sadly not how this world works.)
Now that I have looked it up again, disabling USB emulation or USB legacy support have also been suggested as solution multiple times, but this isn't possible.
Offline
Something about usb handover?
The proximity to a relevant deviation in the log (constant pattern?) and relation to "works after booting from usb" strongly point into that direction.
Online
Did you check the difference of lsmod between the live and installed system?
And the module is called atkbd, not aktbd.
macro_rules! yolo { { $($tokens:tt)* } => { unsafe { $($tokens)* } }; }
Offline
So the differences in lsmod between normal boot (left) and reboot after booting into live (right):
∅ -> serio_raw
∅ -> uas
usbhid -> usb_storage
and between normal boot (left) and live ISO (right):
∅ -> af_alg
∅ -> algif_aead
∅ -> algif_hash
∅ -> algif_skcipher
∅ -> cbc
∅ -> cdrom
∅ -> cmac
∅ -> des_generic
∅ -> ecb
∅ -> isofs
∅ -> libdes
∅ -> loop
∅ -> md4
∅ -> overlay
∅ -> pkcs8_key_parser
∅ -> serio_raw
∅ -> speakup
∅ -> speakup_soft
∅ -> squashfs
∅ -> uas
usbhid -> usb_storage
∅ -> wl
I listed the differences by diffing the files created by:
lsmod | sed '1d' | awk '{print $1}' | sort > some_file
Here are the raw lsmod outputs for normal, live ISO and reboot after live.
I tried adding serio_raw, uas and usb_storage to the modules list in mkinitcpio.conf and regenerating everything. Now the modules show up in lsmod, but nothing else has changed.
Woops, aktbd is a spellings error. I didn't make the same error in my mkinitcpio.conf. I'll edit the original post.
Last edited by Mich1501 (2021-03-25 10:40:51)
Offline
So out of pure desperation I decided to see if my keyboard would work on Ubuntu 20.10. It didn't.
However, I found this post on the Ubuntu forums. Which suggests that the kernel versions after 5.4.18 have the bug I mentioned above. So I downgraded my kernel to 5.3 and, lo and behold, my keyboard worked. This is a stupid outcome. I wanted to install Arch and I stranded on Ubuntu with an outdated kernel (even for that distro).
I don't want to leave it at that and will scour the web for answers to the following questions (after my deadlines):
What bug are they talking about in that forum post?
Why hasn't the bug been fixed in kernel 5.11?/*]
Is there a patch?
And if so, how can I apply it and get back to using Arch?
Please let me know if you have answers to any of these questions.
Thanks
Michiel
Last edited by Mich1501 (2021-03-27 23:56:16)
Offline
I don't think that thread specifically refers to a (known) bug - they just found that 5.4.x works and 5.5.x doesn't and (reasonably) inferred that there must be a bug.
Unfortunately there are MAAAAANY patches between two major kernel releases, so you'd have to bisect the kernel,
https://wiki.archlinux.org/index.php/Bi … s_with_Git
https://wiki.gentoo.org/wiki/Kernel_git-bisect
What if you blacklist asus_wmi, asus_nb_wmi and wmi?
https://wiki.archlinux.org/index.php/Ke … acklisting
Use the bin/true variant and be prepared that you might have to undo this offline (ie. booting a usb key)
This should™ work fine w/ ubuntu as well.
Online
What if you blacklist asus_wmi, asus_nb_wmi and wmi?
I just tried it. At first wmi kept showing up in lsmod, but adding the kernel parameter module_blacklist=wmi fixed it.
It doesn't seem to do anything, everything behaves as before. What was the goal of blacklisting these modules?
For the kernel bisection, I guess I first have to pinpoint between which two version the problem starts occurring.
Will I run into trouble if adapt this ArchWiki article to using the kernel git repo, when trying to figure that out?
Last edited by Mich1501 (2021-03-28 09:55:22)
Offline
To narrow the problem - if it was in the platform modules, that could have simplified things quite some.
Please undo the blacklisting.
I don't know whether you run into trouble, but you can ask when it happens ;-)
· Make sure that you have a spare kernel (eg. the lts one) that you can boot in case the bisection stage doesn't boot.
· You can narrow the problem w/o compilation by fetching kernels from the ALA.
! The kernel is (but for out-of-tree modules like eg. nvidia) mostly self-contained and save to downgrade BUT the mkinitcpio default compression was recently changed to zstd which is not supported by older kernels, https://archlinux.org/news/moving-to-zs … kinitcpio/
· If you opt for ABS be aware that you want to bisect the *kernel* git, not the package git.
https://wiki.archlinux.org/index.php/Ke … ild_System
Online
Update, the last kernel version on ALA that works for me is 5.9.14.arch1-1, the following version, 5.10.3.arch1-1, doesn't work anymore.
When I was downloading the kernel version from the 5 jan 2021, I got redirected through a couple of urls. The download was slow and in the end, the signature was incorrect, so I did not install it.
I have no idea whether this has any significance and/or should be reported, so here is the log.
Offline
I bisected the config file for compiling the kernel, in stead of the kernel itself and found commit 34bfe7d to be the troublesome commit. Sadly it is a big update that takes configuration options from Fedora's default kernel.
I'm stuck now on how I can figure out which options I should change back. It's also not really clear to me what these options mean. What's the difference between not setting an option, setting it to y and setting it to m?
Offline
unset should mean that the option is disabled. "m" means compiled as a module, "y" is inlcuded in the kernel itself.
To find out what an option means you can use for example https://cateee.net/lkddb/web-lkddb/
If you are not sure what to do, you can try to manually bisect those changes. (Using a binary search algorithm and always half the amount of options to test until you are left with the culprit)
Last edited by progandy (2021-04-04 16:31:04)
| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |
Offline
The segment from "CONFIG_KEYBOARD_ATKBD=m" to "CONFIG_SERIAL_8250_RUNTIME_UARTS=32 looks interesting enough.
I'd revert those settings and see whether it "fixes" it, then bisect that (in case)
Online
Thanks for the tips! The segment you pointed at, Seth, was indeed where the problem was. I had to revert the following three settings:
CONFIG_KEYBOARD_ATKBD=y -> m
CONFIG_MOUSE_PS2=y -> m, this one is already reverted back in a later commit
CONFIG_SERIO=y -> m
Now that the problem has been located, should I report this as a bug?
If so, I've got some questions.
I guess I will have to use the Arch Linux Bugtracker.
Would this be low or medium severity?
Would it be enough to mention what machine I have, between which kernel versions the bug starts occurring, maybe the specific commit that introduced the error (although I don't know the name of the repo I got the config files from) and the specific setting changes that fixed it?
Which logs would be useful?
Offline
I guess I will have to use the Arch Linux Bugtracker.
Yup.
Would this be low or medium severity?
Maintainers pick - all bugs are critical to the submitter. That's why they submit it ;-)
Would it be enough to mention what machine I have, between which kernel versions the bug starts occurring, maybe the specific commit that introduced the error (although I don't know the name of the repo I got the config files from) and the specific setting changes that fixed it?
Which logs would be useful?
I'd just say which changes broke your keyboard and point to this thread.
Given that the ps/2 module was already undone and there little benefit in compiling the modules into the kernel this should be a no brainer.
Though it's curious as to why it breaks things. Were those *modules* loaded implicitly in the older kernels at all?
Online
Thanks for all the help. I made the bug report and will update the title to solved.
Were those *modules* loaded implicitly in the older kernels at all?
I don't know for the older kernels, but on my patched kernel, both serio and atkbd get loaded (checked with lsmod).
Last edited by Mich1501 (2021-04-09 12:57:40)
Offline
I'm experiencing the same problem with a Fujitsu Lifebook U7410. @Mich1510 What's the status of your bug report? Do you have a link to it?
Last edited by beedaddy (2021-06-30 14:05:16)
Offline
The bug got resolved. You can find the report here: https://bugs.archlinux.org/task/70384 .
Offline
I see, thanks. So it seems to be a different issue here…
Offline
Fellow UM425UA here. I don't seem to be as well versed in Arch as Mich, but I have installed Arch myself multiple times.
What is the easiest way to get this fix applied to my Arch? (besides waiting for the kernel to update, that bug doesn't seem to have a due date). Is the only option to compile Arch myself? I searched for what atkbd is, but the info is very cryptic.
Offline
uname -a
zgrep -E '(KEYBOARD_ATKBD|MOUSE_PS2|CONFIG_SERIO)' /proc/config.gz
Online
Thanks for helping me look into this.
➜ ~ uname -a
Linux krister-zenbook-2021 5.14.8-arch1-1 #1 SMP PREEMPT Sun, 26 Sep 2021 19:36:15 +0000 x86_64 GNU/Linux
➜ ~ zgrep -E '(KEYBOARD_ATKBD|MOUSE_PS2|CONFIG_SERIO)' /proc/config.gz
CONFIG_KEYBOARD_ATKBD=m
CONFIG_MOUSE_PS2=m
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_BYD=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
CONFIG_MOUSE_PS2_CYPRESS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
CONFIG_MOUSE_PS2_ELANTECH=y
CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y
CONFIG_MOUSE_PS2_SENTELIC=y
CONFIG_MOUSE_PS2_TOUCHKIT=y
CONFIG_MOUSE_PS2_FOCALTECH=y
CONFIG_MOUSE_PS2_VMMOUSE=y
CONFIG_MOUSE_PS2_SMBUS=y
CONFIG_SERIO=m
CONFIG_SERIO_I8042=m
CONFIG_SERIO_SERPORT=m
CONFIG_SERIO_CT82C710=m
CONFIG_SERIO_PARKBD=m
CONFIG_SERIO_PCIPS2=m
CONFIG_SERIO_LIBPS2=m
CONFIG_SERIO_RAW=m
CONFIG_SERIO_ALTERA_PS2=m
CONFIG_SERIO_PS2MULT=m
CONFIG_SERIO_ARC_PS2=m
CONFIG_SERIO_GPIO_PS2=m
Hmm, looks like all the 'y ->m' change have already been made that Mich posted earlier. So is it a different problem? Even though the description is identical, even with the keyboard working sometimes (rarely). I haven't yet figured out in what situation it does work, since it's so rare.
Last edited by kristerv (2021-10-07 08:47:22)
Offline