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
Linux kernel module chromeos_tbmc broken by firmware? #183
Comments
on what device(s)? |
So far, asus c302c cave and 'Dell Chromebook 11 3189 (2 in 1) braswell' as per this survey I conducted https://www.reddit.com/r/GalliumOS/comments/e67bec/calling_all_2_in_1_owners_please_perform_this_test/ |
well, the whole point of switching to the Intel ACPI handler was that the ChromeOS driver wouldn't need to use used (and wouldn't need to be ported to other OSes which already support the Intel one) |
Is the appropriate module |
I honestly haven't tested much at all under Linux. The switch to VBTN from TBMC was part of getting the Pixelbook fully functional under Windows. If it's problematic then I'll look into how I can handle both use cases -- possible the two can coexist. |
Looking through the github links for firmware release 4.12, I saw this commit (MrChromebox/coreboot@48ab1e4) that seemed to indicate that this issue might've been fixed. I gave the new firmware a quick test, and it didn't change from last time - no events whatsoever when laptop lid was beyond 180 degrees. I'll do more extensive tests with different kernel versions soon. |
@delipunch you linked to the fix but didn't read it. You need to add the kernel param as listed in order for the TBMC part to be used, otherwise it uses VBTN |
I did add the kernel parameter, I just thought reading the commit and implementing the kernel parameters was assumed to of happened. |
this still seems to be a problem on skylake/caroline with 5.13.19, firmware 4.12-MrChromebox, both with and without acpi_osi=Linux as a kernel parameter in grub. |
udevadm info --export-db|grep GOOG0006 shows nothing, so I'm pretty sure that GOOG0006 is not exposed. |
well 4.12 is almost 2 years old, so I'd try again with 4.14 (my 4.15-based release will hopefully be out end of this month) as that will expose both the google and Intel tablet mode devices |
I'm sorry, i made a typo. It is in fact running MrChromebox-4.14 07/25/2021 |
So if i understand correctly, the current firmware I am using, 4.14, should expose the GOOG0006 device. Since I am not seeing it (nor am I seeing the intel flavored INT33D6 device), does that mean caroline does not expose this tablet mode ACPI from the EC and uses some other method under ChromeOS to detect tablet mode? |
https://github.com/MrChromebox/coreboot/blob/2021.07.25/src/mainboard/google/glados/variants/caroline/include/variant/ec.h definitely does not enable this feature, so that's why it's not included. I'm going to try to enable it and build the firmware. |
that's not going to do anything without the accompanying change to the EC firmware, and likely some code to actually make use of the driver |
https://github.com/MrChromebox/chrome-ec/blob/master/board/glados/board.h appears to include CONFIG_LID_ANGLE, so it seems to me that the ec firmware should already support it. I'm not sure how to check what version the ec firmware in my chromebook is at, however. |
as far as code to make use of the driver, I will worry about that when the device is presented to Linux. I believe, however, that if it is presented as an acpi tablet switch then libinput should be able to use it automatically. |
Success! After the challenge of building the firmware, adding the following patch, ACPI events for entering and exiting tablet mode are reported by the OS. The ec firmware for glados must support the feature then :)
|
This should be possible to enable for any glados based chromebook with a tablet mode. i have no idea which ones that would include, but certainly caroline. |
As far as software to use the feature, I can now confirm that KDE Wayland uses libinput, and detects tablet mode correctly, disabling and enabling screen rotation. libinput itself disables and enables the keyboard and trackpad automatically as well. |
I can add this for caroline and cave; the others are not convertible form factor, just regular clamshell |
Hello, |
Hello @MrChromebox , |
done, will be included in upcoming 4.20 release |
Wonderful, thank you very much ! |
@MrChromebox I have a Samsung Chromebook Plus v2 code name nautilus. I'm noticing that there is a "GOOG0006" device exposed with the name "Tablet mode switch" and libinput is correctly tying the keyboard and trackpad to that device. But it doesn't send any actual switch events. Instead the "INT33D6" device is sending all of the tablet switch events and that's labeled as "Intel virtual switches". I tried adding Do you have any idea what might be happening here? Currently the keyboard and trackpad do not get disabled when the device is folded as a tablet. |
@MrChromebox should I open a new issue for this? |
@ShapeShifter499 no - in the upcoming 4.21 release, you'll just want to blacklist the Intel tablet button module under Linux |
Gotcha, thank you for all of the help! |
@MrChromebox any updates on this? Also, do you happen to know the name of the module I would blacklist? |
ran into some issues with getting 4.21 out the door. If you want to try a test build then email or DM me on Discord |
closing this as it should be fixed in 4.21 |
Linux kernel module
chromeos_tbmc
doesn't put out acpi events when lid is opened beyond 180 degrees, possibly because of the firmware changing thegoog0006
device to appear as its Intel counterpart.The text was updated successfully, but these errors were encountered: