aarch64-laptops / build

Build an Linux OS based image
234 stars 55 forks source link

Keyboard doesn't work with upstream Linux 5.4.0rc8 on Lenovo Yoga C630 WOS #33

Closed RussianNeuroMancer closed 4 years ago

RussianNeuroMancer commented 4 years ago

Hello!

I found that keyboard doesn't work with Linux 5.4.0rc8 Snapdragon build installed from mainline ppa (unlike 5.3 from eoan repository builds from mainline ppa supposed to be based on upstream code with minimum changes that you can see in patches at the top of the page). I wonder if that config issue or upstream kernel actually missing some code that necessary for keyboard support?

RussianNeuroMancer commented 4 years ago

There is dmesg of Linux 5.4.0rc8 boot.

jallum commented 4 years ago

I'm having the same problem with lack of keyboard while trying to upgrade with other versions of the mainline-snapdragon kernels that I've tried (5.3.0-, 5.3.12-, 5.4.0rc7).

my grub.cfg looks like:

        linux   /boot/vmlinuz-5.4.0-050400rc7-snapdragon root=UUID=f372934b-d8b1-4696-90db-e3f1b0bc73e8 ro quiet splash acpi=force efi=novamap clk_ignore_unused pd_ignore_unused
        initrd  /boot/initrd.img-5.4.0-050400rc7-snapdragon
        devicetree      /boot/dtb

...and I'm using the .dtb pulled from this repo:

md5:c19f0699173b656da04b2b057517e32c  sdm850-lenovo-yoga-c630.dtb
RussianNeuroMancer commented 4 years ago

In case of Linux 5.4.0rc8 Snapdragon build I using dtb shipped with the kernel (i.e. /etc/flash-kernel/dtb is empty).

jallum commented 4 years ago

Ah. Removing the devicetree line allowed me to boot kernel 5.4.0 (release; not rc), though with the same keyboard issues you're seeing. My dmesg is a bit different, though our machines appear to be very similar.

schmidtbag commented 4 years ago

I'm also getting the same problem (using the generic kernel - I think the snapdragon kernel is specific to a different SoC). Even without looking at my dmesg, I saw a lot of errors for I2C during bootup. It's very possible that the keyboard is driven by I2C. I also noticed as my system was booting up, there was an error for systemd-modules-load. The status says it failed to find the module "parport_pc". Though, that's odd it bothered to mention that, since I don't think there are any parallel ports on these laptops.

Also just thought it'd be worth pointing out: USB keyboards work fine. dmesg.log

EDIT: I'm pretty confident I2C is the problem, but, it could also be ACPI. I just booted back into the 5.2 kernel and grepped I2C in dmesg. No errors, and it's creating input devices. 5.2-dmesg-i2c.log The part I find confusing is why the touchpad works in the 5.4 kernel, since that's apparently I2C based too.

RussianNeuroMancer commented 4 years ago

https://lists.linaro.org/pipermail/aarch64-laptops/2020-February/000166.html

For me this workaround allowed to get keyboard working on Linux 5.5.4 and Linux 5.6.0rc2. Reported to Ubuntu bugtracker.