New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lenovo x230t : BackSpace keycode (c:160) is mapped to XF86ScreenSaver, not BackSpace #3306
Comments
Doesn't resolve the issue after reboot. Any hint? |
I guess |
Does it work correctly on plain Fedora 25 (or newer)? |
Overwriting /etc/X11/Xmodmap with the following file makes the change persistent over 4.0 rc3, effective from dom0 and launched qubes. Didn't verify for 3.2. |
My x230t is dead. Cannot test this but for anyone else with the same kind of problem: forums.puri.sm/t/keyboard-layout-unable-to-recognize-pipe/2022 Anyone with a x230t that could give the content of |
X230t resuscitated. modalias content: |
This issue is being closed because:
If anyone believes that this issue should be reopened, please let us know in a comment here. |
I can confirm I am having this issue on the following setup: Thinkpad X230T Both the 'Backspace' and I have tried the following fix detailed in these two links:
Here are the steps for this fix:
Afterwards both keys are working, but occasionally during daily usage I'll find that the issue pops up again. I'm still trying to replicate the conditions where the fix regresses. EDIT 11/16/23: I doubt the above fix actually worked, it may have just been because I was warm booting and it appeared to resolve. |
I've figured out why this bug sometimes appears for me, and sometimes doesn't. Bug appears when:
Bug doesn't appear when:
This is talked about in this Heads issue: linuxboot/heads#1525 (comment) The issue seems to be related to i8042.c in the linux kernel per linuxboot/heads#958 (comment) |
Same on Qubes 4.2 and x230 from xytech (keyboard from x220). Qubes 4.2.0-rc4 |
Somebody reported that using q4.2 changed the behavior. Went extensively
with the user and this happens only on cold boot, where reboot detect the
keyboard correctly.
Curated the logs and opened a PR under heads at
linuxboot/heads#1525 which contains his logs.
The bug is that on cold boot, i8042 probes the keyboard and detects it as
Raw translated 2, where on reboot it's detected correctly as AT translated
2. Unfortunately I do not understand what is happening there. But the logs
have i8042 in debug mode with kernel option to not timeout which is the
best I could come up to gather logs from the user.
No clue what is happening there and cannot replicate on my x230. This is
not a x230t here. Keyboard sku still unknown.
…On Thu, Nov 16, 2023, 3:28 PM toothlesslizard ***@***.***> wrote:
Same on Qubes 4.2 and x230 from xytech (keyboard from x220).
backspace, /, | this keys work intermittently
I have Ubuntu on second disk drive and there is no troubles.
Qubes 4.2
FW_VER - Heads-v0.2.0-1796-g35f3b22-dirty
Kernel: Linux 5.10.5 - heads
X230-maximized-eDP
—
Reply to this email directly, view it on GitHub
<#3306 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAGKBMURLFFFERSHWQB5IBDYEZZQRAVCNFSM4EDQQP4KU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOBRGUZDMNBWGE3Q>
.
You are receiving this because you modified the open/close state.Message
ID: ***@***.***>
|
@tlaurion do you need dmesg +sku? this bug not only 230t related. |
This comment has been minimized.
This comment has been minimized.
I'm ignorant as to a lot of this, but I'm going to take a wild guess--what about kernel option "i8042.probe_defer" in kernels >=6.7? It's related to integrated PS/2 keyboards not being ready at cold boot because they're busy performing a self-test. torvalds/linux@9222ba6 |
Analysis of debug logs at linuxboot/heads#1525 (comment) |
EDIT nevermind, past comment misleading. |
I think this would happen too late. My reasoning to push for a detection fix or hardcoding on coreboot side is that Linux should do the right thing if coreboot result was good where Heads Linux just uses the keyboard as detected without udev fixes. If detection was stable there, workarounds would not be needed later on. At least that's my reasoning which could be faulty. After that, os apply or not their udev fix, as seen in this thread. If os applies udev fix whatever raw/at then behavior might still be unexpected unless i8042 initiates a reset on controller. |
I think I fixed it with ugly workaround, disabling exits on pc80 code of coreboot. Needs testing to raise attention from coreboot developers. Should work for x220t/x230t/x230. See linuxboot/heads#1525 (comment) Edit: it "worked". But coreboot says that pc80 driver for ps2 is not used and that it adds delay and that the payload should handle with ps2 init and keyboard proper init. Meaning we have to find the proper i8042 kernel parameters to fixate At translated 2 when coreboot boots Heads first kernel. That means disabling ps2 support from coreboot and having coreboot config pass to the kernel the right i8042 drivers parameters to permanently fix the issue. Someone having misbehaving hardware can play around and propose a PR based on the commits of testing PR? |
Looking at i8042 source, it seems that passing from coreboot config to heads kernel : (or force this in grub config for easier qubesos testing ). Anyone can test and report back? |
strange, problem persists.
Qubes grub no effect too. |
Well. That doesn't seem enough. |
@toothlesslizard also if you could deactivate CONFIG_DRIVERS_PS2_KEYBOARD from coreboot config that would make a consistent test without coreboot ps2 init being in the way whatsoever. behavior should be different between cold boot (power off, holding power 10 seconds) and warm boot (reset, reboot) as for everybody else. |
@tlaurion I'm getting different outputs from the shell recovery (on/off laptop) :
or this
rebuilding the rom from scratch for now again.
|
full output from Qubes OS. cant filtering cause keys not working. new rom from scratch
cbmem | grep keyb or Keyboa - no outut now. If anyone interesting i have different sku keyboards. But swapping not help. Boot from second drive and output from Ubuntu (keys works good)
|
I'm sorry @toothlesslizard i didn't get that part. Are you saying that on stock bios (x330 referenced) you are getting the same coldboot=raw, reboot/warm reset=at? |
No, I just added details about the firmware build, nothing more. |
The Raw Translated 2 being dealt with Ubuntu is nice (systemd workarounds?) but is what differenciate quebesos from others here (where some could apply fixes to qubesos, but those won't stick if behavior is different between coldboot and warm boot and is not fixated across them) Raw Translated 2 should not happen. We want AT Translated 2, otherwise we have different behaviors across OSes because of workarounds applied differently across OSes. If AT translated 2: no problem across all OSes. The question is how to arrive to that. With hacks on coreboot disabling exit 0 on patch referred above, we arrive to that state but that is really ugly. So this is where we are here. No real progress knowing which kernel parameters need to be set so that if firmware doesn't get in the way, we get to AT translated 2, otherwise OSes have to apply quirks of their own. Which won't work if ps2 protocol switches between AT translated 2 to Raw Translated 2 depending if we are cold booting or warm booting. I hope we are now clear on what the problem is if we haven't found proper solution... Yet. |
Opened issue https://ticket.coreboot.org/issues/515 |
Qubes OS version:
R3.2, R4.0rc1, R4.0rc2
Affected TemplateVMs:
dom0 fedora-23, dom0 fedora-25
Steps to reproduce the behavior:
Install Qubes 3.2. At login prompt, backspace doesn't do its backspace function anymore.
Expected behavior:
Under x230t (not true for x230!?) doing
sudo xev
key shows that it's mapped to BackSpaceActual behavior:
sudo xev
and typing the backspace key shows that it's linked to XF86ScreenSaver, not BackSpaceGeneral notes:
Corrective action is to add the following line in the file
/etc/X11/Xmodmap
:keycode 160 = BackSpace NoSymbol BackSpace
Related issues:
The text was updated successfully, but these errors were encountered: