Controlling backlit keyboard under Linux (Optimus IX)

foobar

New member
I just got an Optimus IX, which is based on a Clevo N850EK. I'm running Fedora 28. Basically, I didn't want to show up to meetings with my laptop driving the party bus, so I wanted to shut the lights off, but the same ideas can be used to control them in other ways. This took me a while to fix and here was the first place I searched finding nothing, so I thought I'd write down my solution here.

Basically, you need to clone this git repo: https://bitbucket.org/tuxedocomputers/clevo-xsm-wmi/overview

Then you need to modify the source to add support for this specific model (you can find out the ident/name from `sudo dmidecode`, if you have different Clevo baseline)

Add to the table
Code:
dmi_system_id clevo_xsm_dmi_table[] __initdata
:
Code:
    {
        .ident = "Clevo N8xEJEK",
		.matches = {
		    DMI_MATCH(DMI_PRODUCT_NAME, "N8xEJEK"),
		},
		.callback = clevo_xsm_dmi_matched,
		.driver_data = &kb_full_color_with_extra_ops,
    },

Then compile your code and install it in the drivers folder:
Code:
make
sudo cp clevo-xsm-wmi.ko /lib/modules/`uname -r`/kernel/drivers/platform/x86

You then need to actually set it to do it at boot. First make a "clevo.conf" file in /etc/modules-load.d:
Code:
clevo-xsm-wmi

Then set your colours to go to what you want at boot. I did this with a file in
Code:
/etc/modprobe.d
:

Code:
options clevo_xsm_wmi kb_mode=1 kb_brightness=1 kb_color=black,black,black kb_mode=0

Behold, no more light. Change the above settings as you so desire to set the colors and brightness as you like.

(note that I didn't do the installation using dkms because I don't really know how, so I'll likely need to copy the driver over again every time I move to a new kernel).

edit: Worth noting that you have to turn off secure boot to have the custom driver load, or sign it yourself.
 
Last edited:
Top