pobrn/ite8291r3-ctl

Use with tuxedo_keyboard module?

Opened this issue · 3 comments

Hi there, first of all, thank you very much for your work on controlling the backlight for this laptop!

In my case, I need to turn off the backlight by default with ite8291r3-ctl and then occasionally turn it on with the Fn+F7/F6 keys. I also install and load the tuxedo_keyboard to turn off the lightbar. But with this loaded, it shows an OSD for the keyboard backlight change, but the backlight level doesn't actually change. Is there any way to use both concurrently?

Thanks again.

pobrn commented

I think the problem is that the tuxedo-wmi kernel module switches the embedded controller (or parts of the firmware) to some kind of manual mode. In this manual mode, the keyboard hotkeys do not change the backlight, only emit an event, which may be processed by a kernel module. The tuxedo-wmi then converts these events to appropriate Linux events, which then get processed by your desktop environment, which then changes the backlight via upower, which controls the LED class devices created by the tuxedo_keyboard driver. However, running ite8291r3-ctl detaches any kernel drivers from the device, and thus the LED class devices goes away, and upower is no longer able to set the brightness.

At the moment, there is no convenient way to use this program and any kernel-space solution at the same time.

For the moment, you might want to check if the qc71_laptop kernel module can control the lightbar. That, and this program can be used concurrently - because the qc71_laptop does not switch the embedded controller to this "manual mode", so the keyboard hotkeys remain functional, as they are handled by the firmware. Of course, then the tuxedo control center won't work... and you will not be able to manually control the fan.

Thanks a lot for the helpful response. That makes sense, I'll keep an eye on the qc71_laptop module, it's currently not packaged for openSUSE and I hate dealing with compiling modules and DKMS and all that. The Tuxedo Control Center wouldn't be a huge loss, it feels kind of bloated and brings along tons of dependencies. And in case this helps anyone, regarding fan control I just discovered a very nice and easy solution for my needs, described here:
https://linux.org/threads/how-to-use-tlp-profile-in-battery-mode-but-with-1-exception.36636

An update:
I managed to compile qc71_laptop with the openSUSE OBS. It seems to work well. I use a Systemd service to run ite8291r3-ctl off at boot, and another one to run echo 0 > /sys/class/leds/qc71_laptop::lightbar/brightness . With this, it boots and resumes from suspend with the backlight and lightbar turned off, which is how I want it. It won't let me use the Fn keys to adjust the brightness after running ite8291r3-ctl off, but after turning using the GUI to turn on mono white mode, then the keys will also work to increase/decrease brightness or to turn it off. It's a decent solution.