Kallepm/tuxedo-control-center

Yes, I can confirm the problem. Seems to be an upstream issue.

On fedora 39 fan control part is either blurred or not showing at all. I tried reinstalling tuxedo-drivers and tuxedo-control-center but it did not worked. kernel-devel and dkms is both installed. My current kernel is 6.7.4-200.fc39.x86_64 and i am using Acer Nitro 5 laptop. Can anyone help me with this problem? Thanks.

Are there plans to provide packages for Fedora 40? Or will the development continue here: lieuwex/tuxedo-control-center Copr

I forked it for 40 until a new official version is provided. Feel free to switch.

https://copr.fedorainfracloud.org/coprs/oberfreak/tuxedo-drivers/

https://copr.fedorainfracloud.org/coprs/oberfreak/tuxedo-control-center/

I got it working once more, as of 10 August 2024, after Fedora Linux fedora38 6.10.3-100.fc39.x86_64 update. here are the details. Very small files are culprits. My main concern in almost all issues, was always that either the fans control is unavailable, and that the sensors are not providing temperature
 as well as the absence of the light for keyboard. This is while the application is working otherwise. This is solved now. For me GPU is never showing since ‘CPU power’ became available in the past.
There were always an issue, specifically regarding the XMG components (clevo components not specified as Tuxedo hardware). Mostly the main issue was always related to the Tuxedo-keyboard small files. Many times I managed to keep the TCC running by adjusting such tuxedo-keyboard package. For almost 6 months without a problem, another occured again: this time , complaining about few calls int he clevo_acpi.c, as follows:





/home/user/tuxedo/tuxedo-keyboard/./src/tuxedo_keyboard_common.h:64:6: warning: no previous prototype for ‘sparse_keymap_report_known_event’ [-Wmissing-prototypes]
   64 | bool sparse_keymap_report_known_event(struct input_dev *dev, unsigned int code,
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  CC [M]  /home/user/tuxedo/tuxedo-keyboard/./src/clevo_wmi.o
/home/user/tuxedo/tuxedo-keyboard/./src/clevo_wmi.c:58:5: warning: no previous prototype for ‘clevo_wmi_interface_method_call’ [-Wmissing-prototypes]
   58 | int clevo_wmi_interface_method_call(u8 cmd, u32 arg, union acpi_object **result_value)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  CC [M]  /home/user/tuxedo/tuxedo-keyboard/./src/clevo_acpi.o
/home/user/tuxedo/tuxedo-keyboard/./src/clevo_acpi.c:82:5: warning: no previous prototype for ‘clevo_acpi_interface_method_call’ [-Wmissing-prototypes]
   82 | int clevo_acpi_interface_method_call(u8 cmd, u32 arg, union acpi_object **result_value)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/user/tuxedo/tuxedo-keyboard/./src/clevo_acpi.c:140:6: warning: no previous prototype for ‘clevo_acpi_notify’ [-Wmissing-prototypes]
  140 | void clevo_acpi_notify(struct acpi_device *device, u32 event)
      |      ^~~~~~~~~~~~~~~~~
/home/user/tuxedo/tuxedo-keyboard/./src/clevo_acpi.c:189:10: error: ‘struct acpi_driver’ has no member named ‘owner’
  189 |         .owner = THIS_MODULE,
      |          ^~~~~
In file included from ./include/linux/printk.h:6,
                 from ./include/linux/kernel.h:31,
                 from /home/user/tuxedo/tuxedo-keyboard/./src/clevo_acpi.c:20:
./include/linux/init.h:180:21: error: initialization of ‘const struct acpi_device_id *’ from incompatible pointer type ‘struct module *’ [-Werror=incompatible-pointer-types]
  180 | #define THIS_MODULE (&__this_module)
      |                     ^
/home/user/tuxedo/tuxedo-keyboard/./src/clevo_acpi.c:189:18: note: in expansion of macro ‘THIS_MODULE’
  189 |         .owner = THIS_MODULE,
      |                  ^~~~~~~~~~~
./include/linux/init.h:180:21: note: (near initialization for ‘clevo_acpi_driver.ids’)
  180 | #define THIS_MODULE (&__this_module)
      |                     ^
/home/user/tuxedo/tuxedo-keyboard/./src/clevo_acpi.c:189:18: note: in expansion of macro ‘THIS_MODULE’
  189 |         .owner = THIS_MODULE,
      |                  ^~~~~~~~~~~
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:244: /home/user/tuxedo/tuxedo-keyboard/./src/clevo_acpi.o] Error 1
make[2]: *** [/usr/src/kernels/6.10.3-100.fc39.x86_64/Makefile:1946: /home/user/tuxedo/tuxedo-keyboard] Error 2
make[1]: *** [Makefile:252: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/kernels/6.10.3-100.fc39.x86_64'
make: *** [Makefile:29: all] Error 2

The solution:
in tuxedo-keyboard/src/clevo_acpi.c, comment out:
“.owner = THIS_MODULE”
Add these prototypes to the beginning, after last “#include”:

int clevo_acpi_interface_method_call(u8 cmd, u32 arg,
				     union acpi_object **result_value);
void clevo_acpi_notify(struct acpi_device *device, u32 event);

In the Makefile in tuxedo-keyboard/src, change this:

all:
	# Flags added.
	make -C $(KDIR) M=$(PWD)  modules

to this:

all:
	# Flags added.
	make -C $(KDIR) M=$(PWD)  EXTRA_CFLAGS=-Wno-error modules

Then, ‘make clean’, then ‘make’.
You might get few warnings, and some complaints about BTF complaints, which are not critical at all. It could be an issue though if you have Secure Boot enabled.
When you see .ko files, you are good to go as far as functionality is the concern.
Now do the following:

sudo make install
sudo modprobe tuxedo_keyboard
sudo modprobe clevo_wmi
sudo modprobe clevo_acpi
sudo modprobe tuxedo_io

Check that his produce something: ‘lsmod | grep tuxedo’.
In some case, having secure boot enabled, will prevent those from loading in restart. you can check that from ‘bootctl status’.

Now at this stage, just remove any tuxedo product from Kallepm. Then install Tuxedo-Control-Center from same repo, Kallepm. This will do it.

I just updated most of my packages.
Sorry for the late reply, life has been quite busy lately.

1 Like

Thanks a lot for updating the packages, @kallepm! :rocket: It came just in time when I struggled with the otherwise great repositories from @oberfreak (keyboard backlights and cpu temp stopped working for me).

Switching back to your packages fixed my issues!