Two in one Hinge support

I have a Dell Chromebook 11 (3189). So far basically everything works on arch (using LTS kernel, and latest MrChromebox Bios update as of this post.)

But all the methods I have tried to look into just straight up dont work for two in one conversion on the hinge, it detects when closed, or open, but not if its flipped over.

I want to disable the keyboard input when its flipped over, rotate screen 90 degrees, and show an onscreen keyboard below the task bar (currently on KDE plasma, wayland, can go to x11)

It works on my Jinlon, so it should work on your Chromebook as well. Are you using keyd? Sometimes keyd can cause issues with tablet mode. Also, I doubt X11 would with better than Wayland for this.

I am infact using keyd, have a custom accessibility map for the chromebook that gives me chromeos control keys while still being able to access linux stuff such as tty.

But issue was noted before I used keyd, it would act as if the lid had two states, not three, open, and closed

What does evtest show? This is what it shows for Jinlon:

[nix-shell:~]$ sudo evtest
[sudo] password for rajas: 
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:      AT Translated Set 2 keyboard
/dev/input/event1:      Lid Switch
/dev/input/event10:     keyd virtual keyboard
/dev/input/event11:     keyd virtual pointer
/dev/input/event12:     Video Bus
/dev/input/event13:     sof-rt5682 Headset Jack
/dev/input/event14:     sof-rt5682 HDMI/DP,pcm=2
/dev/input/event15:     sof-rt5682 HDMI/DP,pcm=3
/dev/input/event16:     sof-rt5682 HDMI/DP,pcm=4
/dev/input/event17:     Intel Virtual Switches
/dev/input/event2:      Power Button
/dev/input/event3:      Intel Virtual Buttons
/dev/input/event4:      Tablet Mode Switch
/dev/input/event5:      Elan Touchpad
/dev/input/event6:      GDIX0000:00 27C6:0E0C
/dev/input/event7:      GDIX0000:00 27C6:0E0C Stylus
/dev/input/event8:      GDIX0000:00 27C6:0E0C Stylus
/dev/input/event9:      GDIX0000:00 27C6:0E0C UNKNOWN
Select the device event number [0-17]: 4
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x0 product 0x0 version 0x1
Input device name: "Tablet Mode Switch"
Supported events:
  Event type 0 (EV_SYN)
  Event type 5 (EV_SW)
    Event code 1 (SW_TABLET_MODE) state 0
Properties:
Testing ... (interrupt to exit)
Event: time 1717815855.685351, type 5 (EV_SW), code 1 (SW_TABLET_MODE), value 1
Event: time 1717815855.685351, -------------- SYN_REPORT ------------
Event: time 1717815859.413376, type 5 (EV_SW), code 1 (SW_TABLET_MODE), value 0
Event: time 1717815859.413376, -------------- SYN_REPORT ------------

“Tablet Mode Switch” correctly reports events.

[user@chromebook ~]$ sudo evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:      Lid Switch
/dev/input/event1:      Power Button
/dev/input/event10:     HDA Intel PCH HDMI/DP,pcm=8
/dev/input/event11:     keyd virtual pointer
/dev/input/event12:     chtrt5650 Headset
/dev/input/event2:      AT Translated Set 2 keyboard
/dev/input/event3:      Elan Touchpad
/dev/input/event4:      Elan Touchscreen
/dev/input/event5:      PC Speaker
/dev/input/event6:      Video Bus
/dev/input/event7:      keyd virtual keyboard
/dev/input/event8:      HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event9:      HDA Intel PCH HDMI/DP,pcm=7
Select the device event number [0-12]: 

I dont have a tablet mode?

1 Like

can you at least get the lid angle by running

cat /sys/bus/iio/devices/iio:device*/in_angl_raw

?

Ran into the same issue/output on my Eldrid device:

$ sudo evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:      AT Translated Set 2 keyboard
/dev/input/event1:      Lid Switch
/dev/input/event10:     Elan Touchpad
/dev/input/event11:     HP Wide Vision HD Camera: HP Wi
/dev/input/event12:     sof-rt5682 Headset Jack
/dev/input/event13:     sof-rt5682 HDMI/DP,pcm=2
/dev/input/event14:     sof-rt5682 HDMI/DP,pcm=3
/dev/input/event15:     sof-rt5682 HDMI/DP,pcm=4
/dev/input/event16:     sof-rt5682 HDMI/DP,pcm=5
/dev/input/event17:     keyd virtual keyboard
/dev/input/event18:     keyd virtual pointer
/dev/input/event19:     Intel Virtual Switches
/dev/input/event2:      Power Button
/dev/input/event3:      Intel Virtual Buttons
/dev/input/event4:      PC Speaker
/dev/input/event5:      GDIX0000:00 27C6:0E87
/dev/input/event6:      Video Bus
/dev/input/event7:      GDIX0000:00 27C6:0E87 Stylus
/dev/input/event8:      GDIX0000:00 27C6:0E87 UNKNOWN
/dev/input/event9:      GDIX0000:00 27C6:0E87 UNKNOWN
Select the device event number [0-19]: ^C

As per the latest instructions:

$ cat /sys/bus/iio/devices/iio:device*/in_angl_raw
[bat error]: '/sys/bus/iio/devices/iio:device*/in_angl_raw': No such file or directory (os error 2)

I did try to troubleshoot it w/ Claude (AI) before I jumped onto the forums, and part of the area it was directing me towards might be related?

$ sudo systemctl status iio-sensor-proxy
â—‹ iio-sensor-proxy.service - IIO Sensor Proxy service
     Loaded: loaded (/lib/systemd/system/iio-sensor-proxy.service; static)
     Active: inactive (dead)
$ sudo journalctl -u iio-sensor-proxy
Jun 21 18:31:54 chrultrabook systemd[1]: Starting iio-sensor-proxy.service - IIO Sensor Proxy service...
Jun 21 18:31:54 chrultrabook systemd[1]: Started iio-sensor-proxy.service - IIO Sensor Proxy service.
Jun 21 18:31:54 chrultrabook systemd[1]: iio-sensor-proxy.service: Deactivated successfully.
Jun 21 18:32:04 chrultrabook systemd[1]: Starting iio-sensor-proxy.service - IIO Sensor Proxy service...
Jun 21 18:32:04 chrultrabook systemd[1]: Started iio-sensor-proxy.service - IIO Sensor Proxy service.
Jun 21 18:32:04 chrultrabook systemd[1]: iio-sensor-proxy.service: Deactivated successfully.

Does this mean that the sensor’s .service file is erroring out, and that’s why the tablet mode switch functionality never is an option?

I don’t think so, since the tablet mode and lid angle is working on Jinlon without that service even existing.

[rajas@jinlon:~]$ cat /sys/bus/iio/devices/iio:device*/in_angl_raw
125

[rajas@jinlon:~]$ systemctl status iio-sensor-proxy
Unit iio-sensor-proxy.service could not be found.
1 Like
[merith@merith-kefka ~]$ cat /sys/bus/iio/devices/iio:device*/in_angl_raw
cat: '/sys/bus/iio/devices/iio:device*/in_angl_raw': No such file or directory
[merith@merith-kefka ~]$ sudo evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:	Lid Switch
/dev/input/event1:	Power Button
/dev/input/event10:	chtrt5650 Headset
/dev/input/event11:	keyd virtual keyboard
/dev/input/event12:	keyd virtual pointer
/dev/input/event2:	AT Translated Set 2 keyboard
/dev/input/event3:	Elan Touchpad
/dev/input/event4:	Elan Touchscreen
/dev/input/event5:	PC Speaker
/dev/input/event6:	Video Bus
/dev/input/event7:	HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event8:	HDA Intel PCH HDMI/DP,pcm=7
/dev/input/event9:	HDA Intel PCH HDMI/DP,pcm=8

I got nothin, I reinstalled with endeavor due to bloat build up and wanted to clean up things

AFAIK it should be done using TBMC.
My eldrid has broken screen so I can’t fully test it, but KOHAKU (CML) switches to tablet mode successfully - running Fedora/KDE/Wayland.

1 Like

Hey elly, I’m using Debian/KDE/Wayland so that’s promising.

What’s TBMC? I couldn’t find anything through the main repos. I stumbled across this on Github but it looks like it might be for something else:

Edit: Found it mentioned 1-2x on the Discord:

:point_up:t6: Shared the snippet w/ Claude (AI) and it redirected me to look to see if it was configured via grep CHROMEOS_TBMC /boot/config-$(uname -r).

This returned: # CONFIG_CHROMEOS_TBMC is not set

Which is promising because it insinuates that it’s in the current kernel and just deactivated. It gave me some advice, but before I go into the weeds, I just wanted a gut check that I’m not about to break something lol. Here is the AI response to finding that the config wasn’t set:

This is actually good news because it means:

  1. Your kernel recognizes the CHROMEOS_TBMC driver option.
  2. The driver is available but just not currently enabled.
  3. You likely won’t need to add any new code to your kernel source; you just need to enable this existing option.

Next steps:

  1. Enable the driver: You can enable this driver without fully recompiling the kernel. You’ll need to:
    a) Use make menuconfig or make xconfig to access the kernel configuration.
    b) Find the CHROMEOS_TBMC option (likely under Device Drivers > Input Device Support).
    c) Enable it (change from to [*] or [M] for module).
    d) Save the configuration and compile only the new module.
  2. Load the module: After compiling, you can load the new module with sudo modprobe chromeos_tbmc.
  3. Make it permanent: Add chromeos_tbmc to /etc/modules to load it at boot.

I think this board is known to not have tablet mode switch working on full rom, for whatever reason.

My ELDRID successfully switches to tablet mode if I flip it, but of course no touchscreen for me. I think it’s working, @ninelore can verify as his ELDRID is in working condition

Yes, Debian is missing a lot of necessary modules - so does Ubuntu, that’s why we generally don’t recommend those distributions as you need to build your own kernel.

If you decide to go this route, you can use Fedora’s kconfig as reference since I can verify that it’s working: https://f.sakamoto.pl/elly/config-6.8.11-300.fc40.x86_64

1 Like

tablet mode works on my eldrid just fine

1 Like

I thought this post was about a kefka

1 Like

Since I am having the same issue, I kinda hijacked it when OP disappeared for a few weeks :sweat_smile:

Well it’s two completely different devices. So your issue will most likely be completely different than their issue.