Skip to content
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

Add tuxedo-keyboard #30

Open
ruzko opened this issue Jul 8, 2023 · 18 comments
Open

Add tuxedo-keyboard #30

ruzko opened this issue Jul 8, 2023 · 18 comments
Labels
help wanted Extra attention is needed

Comments

@ruzko
Copy link

ruzko commented Jul 8, 2023

Describe the package

Tuxedo-keyboard adds drivers for keyboard backlight, fan control and other hardware enablements on Tuxedo Computers and other laptops using Clevo chassis.

Only available as dkms at the moment, although I have opened an issue about kmod availability

Image

All Images

@Raltay
Copy link

Raltay commented Feb 12, 2024

UPDATE: tuxedo-keyboard has been deprecated in favor of tuxedo-drivers.

What is the current status of this ticket? From what I see, there's been no update for over half a year. Is there any chance for tuxedo-drivers to be included in akmods?

@castrojo
Copy link
Member

Status is we need to just find someone with the time to implement this.

@david
Copy link

david commented Aug 3, 2024

@castrojo I'd be happy to help with this, but other than copying and changing the build script, I'm not quite sure what kind environment I need to build and test my changes. Could you point me to some documentation that will help me set up things? I apologize for my noobness if there is something I missed. 😞

@HikariKnight
Copy link
Member

i ported looking-glass official dkms to akmods with the guidance of kyle, i can help too if youre in the EU timezone (however i am very busy from august 12th to the 22th)

you can look at what i did here to make the spec file :)
https://github.com/HikariKnight/looking-glass-kvmfr-akmod

@salim-b
Copy link

salim-b commented Aug 9, 2024

i ported looking-glass official dkms to akmods with the guidance of kyle, i can help too if youre in the EU timezone (however i am very busy from august 12th to the 22th)

you can look at what i did here to make the spec file :) https://github.com/HikariKnight/looking-glass-kvmfr-akmod

@Matombo @vinzv Maybe you could help, too?


Addendum: There are two unofficial Fedora COPR repositories providing relevant RPM packages:

Maybe those COPR repos could be of help when porting tuxedo-drivers to akmods.

@andrea-nisti
Copy link

any update on this? I would love this feature, I am currently using kinoite on a tuxedo "linux compatible" laptop but unable to install their drivers. Unfortunately I am too ignorant on driver development so idk how to help in this, I could always test it on my hardware though

@tobehn
Copy link

tobehn commented Nov 7, 2024

Are you aware of tuxedo-rs from Aaron Erhardt?
https://aaronerhardt.github.io/blog/posts/announcing_tuxedo_rs/
https://github.com/AaronErhardt/tuxedo-rs

i am using a tuxedo infinitybook pro 16 - i want to update it to bluefin soon.
Is there anything i can contribute to implement the tuxedo stuff into bluefin?

@castrojo
Copy link
Member

castrojo commented Nov 7, 2024

Yeah we need someone to make it: https://github.com/ublue-os/akmods?tab=readme-ov-file#adding-kmods

@opentux
Copy link

opentux commented Nov 14, 2024

hi,
thanks for the info on akmod. (i'm going to do some tests)
in fact it has changed a lot at tuxedo

no more need for the old copr... tuxedo have a official repository for fedora
their repo contains: tuxedo-drivers and tuxedo-control-center among others

https://www.tuxedocomputers.com/en/Add-TUXEDO-software-package-sources.tuxedo

https://rpm.tuxedocomputers.com/fedora/

then the control center takes care of fine energy management, overclocking, the rgb keyboard, and on some machines there is even watercooling management (the pump is controlled by bluetooth).

i have an old machine for work, and a much more recent one that has everything available from the control center.

in any case the control center today has taken a much more important place than just the simple support of the keyboard...

otherwise I think we can install the tuxedo-drivers alone but I have never tested it

but i will do tests if i can do things on my side or not

@salim-b
Copy link

salim-b commented Nov 14, 2024

@opentux The TUXEDO Control Center (TCC) is not the issue here but the additional out-of-tree Linux kernel modules that TCC and similar software like tuxedo-rs require to properly work. These kernel modules are provided by TUXEDO and developed as a project called tuxedo-drivers. IIUC, the main problem is that they require DKMS which is fundamentally incompatible with immutable Linux distros, so tuxedo-drivers would first need to be ported to akmods as pointed out by @HikariKnight.

@opentux
Copy link

opentux commented Nov 14, 2024

thank you for the additional information, well in any case no longer use the copr which is clearly not up to date since the creation of the official tuxedo repository regardless of the distribution. whether for tuxedo-drivers or tcc

@gladion136
Copy link

gladion136 commented Nov 23, 2024

Hi,
I tried to port the Tuxedo-drivers to kmod. Here is the current status.
I can load the modules on my hardware. But there are still some Issues.. I would like to create a PR here when everything works fine.

However, a few paths seem to be missing, which is why tuxedo-backlight-control e.g. does not work. The files /sys/class/leds/rgb:kbd_backlight/color_* and /sys/class/leds/rgb:kbd_backlight/state are missing.
However, I can set the color of the keyboard via /sys/class/leds/rgb:kbd_backlight/multi_intensity.

Unfortunately I have not yet managed to get tuxedo-rs running.

When I start it I get the following error:

Click to expand! - tailord error
Nov 23 21:47:46 bluefin tailord[11915]: thread 'main' panicked at /var/home/eschmidt/github/tuxedo-rs/tailord/_build/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/tokio-uring-0.5.0/src/lib.rs:148:48:
Nov 23 21:47:46 bluefin tailord[11915]: called `Result::unwrap()` on an `Err` value: Os { code: 13, kind: PermissionDenied, message: "Permission denied" }
Nov 23 21:47:46 bluefin tailord[11915]: stack backtrace:
Nov 23 21:47:46 bluefin tailord[11915]:    0:     0x56395c60a665 - std::backtrace_rs::backtrace::libunwind::trace::h23054e327d0d4b55
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
Nov 23 21:47:46 bluefin tailord[11915]:    1:     0x56395c60a665 - std::backtrace_rs::backtrace::trace_unsynchronized::h0cc587407d7f7f64
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
Nov 23 21:47:46 bluefin tailord[11915]:    2:     0x56395c60a665 - std::sys_common::backtrace::_print_fmt::h4feeb59774730d6b
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/sys_common/backtrace.rs:68:5
Nov 23 21:47:46 bluefin tailord[11915]:    3:     0x56395c60a665 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hd736fd5964392270
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/sys_common/backtrace.rs:44:22
Nov 23 21:47:46 bluefin tailord[11915]:    4:     0x56395c63697b - core::fmt::rt::Argument::fmt::h105051d8ea1ade1e
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/core/src/fmt/rt.rs:165:63
Nov 23 21:47:46 bluefin tailord[11915]:    5:     0x56395c63697b - core::fmt::write::hc6043626647b98ea
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/core/src/fmt/mod.rs:1168:21
Nov 23 21:47:46 bluefin tailord[11915]:    6:     0x56395c60717f - std::io::Write::write_fmt::h0d24b3e0473045db
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/io/mod.rs:1835:15
Nov 23 21:47:46 bluefin tailord[11915]:    7:     0x56395c60a43e - std::sys_common::backtrace::_print::h62df6fc36dcebfc8
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/sys_common/backtrace.rs:47:5
Nov 23 21:47:46 bluefin tailord[11915]:    8:     0x56395c60a43e - std::sys_common::backtrace::print::h45eb8174d25a1e76
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/sys_common/backtrace.rs:34:9
Nov 23 21:47:46 bluefin tailord[11915]:    9:     0x56395c60b7d9 - std::panicking::default_hook::{{closure}}::haf3f0170eb4f3b53
Nov 23 21:47:46 bluefin tailord[11915]:   10:     0x56395c60b57a - std::panicking::default_hook::hb5d3b27aa9f6dcda
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/panicking.rs:298:9
Nov 23 21:47:46 bluefin tailord[11915]:   11:     0x56395c60bc73 - std::panicking::rust_panic_with_hook::h6b49d59f86ee588c
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/panicking.rs:795:13
Nov 23 21:47:46 bluefin tailord[11915]:   12:     0x56395c60bb54 - std::panicking::begin_panic_handler::{{closure}}::hd4c2f7ed79b82b70
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/panicking.rs:664:13
Nov 23 21:47:46 bluefin tailord[11915]:   13:     0x56395c60ab29 - std::sys_common::backtrace::__rust_end_short_backtrace::h2946d6d32d7ea1ad
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/sys_common/backtrace.rs:171:18
Nov 23 21:47:46 bluefin tailord[11915]:   14:     0x56395c60b887 - rust_begin_unwind
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/panicking.rs:652:5
Nov 23 21:47:46 bluefin tailord[11915]:   15:     0x56395be2dc53 - core::panicking::panic_fmt::ha02418e5cd774672
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/core/src/panicking.rs:72:14
Nov 23 21:47:46 bluefin tailord[11915]:   16:     0x56395be2e1c6 - core::result::unwrap_failed::h55f86ada3ace5ed2
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/core/src/result.rs:1679:5
Nov 23 21:47:46 bluefin tailord[11915]:   17:     0x56395be3e4bd - core::result::Result<T,E>::unwrap::ha43169bc23e975b7
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/core/src/result.rs:1102:23
Nov 23 21:47:46 bluefin tailord[11915]:   18:     0x56395be3e4bd - tokio_uring::start::hee2a91d45485a0cd
Nov 23 21:47:46 bluefin tailord[11915]:                                at /var/home/eschmidt/github/tuxedo-rs/tailord/_build/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/tokio-uring-0.5.0/src/lib.rs:148:14
Nov 23 21:47:46 bluefin tailord[11915]:   19:     0x56395bf63c51 - tailord::main::h2cbe143c430c7dd3
Nov 23 21:47:46 bluefin tailord[11915]:                                at /var/home/eschmidt/github/tuxedo-rs/tailord/src/main.rs:39:5
Nov 23 21:47:46 bluefin tailord[11915]:   20:     0x56395be952ab - core::ops::function::FnOnce::call_once::h4503de3c873adaef
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/core/src/ops/function.rs:250:5
Nov 23 21:47:46 bluefin tailord[11915]:   21:     0x56395bf2064e - std::sys_common::backtrace::__rust_begin_short_backtrace::hc461f41eda36bfaa
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/sys_common/backtrace.rs:155:18
Nov 23 21:47:46 bluefin tailord[11915]:   22:     0x56395be3a071 - std::rt::lang_start::{{closure}}::hdfef758b209ac421
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/rt.rs:159:18
Nov 23 21:47:46 bluefin tailord[11915]:   23:     0x56395c60247d - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::hf57beef1b8c334ce
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/core/src/ops/function.rs:284:13
Nov 23 21:47:46 bluefin tailord[11915]:   24:     0x56395c60247d - std::panicking::try::do_call::h65791b6ab5d9b39f
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/panicking.rs:559:40
Nov 23 21:47:46 bluefin tailord[11915]:   25:     0x56395c60247d - std::panicking::try::h5a3dd25e8a379a23
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/panicking.rs:523:19
Nov 23 21:47:46 bluefin tailord[11915]:   26:     0x56395c60247d - std::panic::catch_unwind::he2ce8403bab77de2
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/panic.rs:149:14
Nov 23 21:47:46 bluefin tailord[11915]:   27:     0x56395c60247d - std::rt::lang_start_internal::{{closure}}::h0b55d0da19178545
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/rt.rs:141:48
Nov 23 21:47:46 bluefin tailord[11915]:   28:     0x56395c60247d - std::panicking::try::do_call::h33cbeb674c7644e0
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/panicking.rs:559:40
Nov 23 21:47:46 bluefin tailord[11915]:   29:     0x56395c60247d - std::panicking::try::h530c58b4c9daadba
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/panicking.rs:523:19
Nov 23 21:47:46 bluefin tailord[11915]:   30:     0x56395c60247d - std::panic::catch_unwind::h92e02677901e11e4
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/panic.rs:149:14
Nov 23 21:47:46 bluefin tailord[11915]:   31:     0x56395c60247d - std::rt::lang_start_internal::hcee5ed89fc25829a
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/rt.rs:141:20
Nov 23 21:47:46 bluefin tailord[11915]:   32:     0x56395be3a04a - std::rt::lang_start::hae76945278770748
Nov 23 21:47:46 bluefin tailord[11915]:                                at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/rt.rs:158:17
Nov 23 21:47:46 bluefin tailord[11915]:   33:     0x56395bf63c9e - main
Nov 23 21:47:46 bluefin tailord[11915]:   34:     0x7f03361aa248 - __libc_start_call_main
Nov 23 21:47:46 bluefin tailord[11915]:   35:     0x7f03361aa30b - __libc_start_main_impl
Nov 23 21:47:47 bluefin tailord[11915]:   36:     0x56395be2e785 - _start
Nov 23 21:47:47 bluefin tailord[11915]:   37:                0x0 - <unknown>
Nov 23 21:47:47 bluefin systemd[1]: tailord.service: Main process exited, code=exited, status=101/n/a

Can anyone help me or give me a tip?

UPDATE: The drivers work with the Tuxedo Control Center 🎉 At least I could not find any errors (also in the journal). I have observed that in some missing installations (on other distributions) not all options are displayed in the UI of the Tuxedo Control Center. I have attached screenshots, can someone check if something is missing?

Click to expand! - Tuxedo Control Center Screenshots

Image
Image
Image
Image
Image

@bastian-src
Copy link

Hey @gladion136 👋

I have observed that in some missing installations (on other distributions) not all options are displayed in the UI of the Tuxedo Control Center. I have attached screenshots, can someone check if something is missing?

I'm running Pop OS 22.04 on my Tuxedo XMG Fusion 15 L19 and I have the same options in my Tuxedo Control Center as shown in your screenshots.

@LeonardoMantovani
Copy link

So, noob question here to see if I'm getting this right:

  • pre-installing the TCC app on Bluefin/Aurora would be easy, but for it to work also tuxedo-drivers must be installed
  • pre-installing tuxedo-drivers is "less easy", because they are built using dkms and therefore need to be ported to kmod
  • @gladion136 is working on this port, that at the time of writing is working with TCC properly, but not with tuxedo-rs (that I think I haven't understood what it is and why is it needed though)
  • as soon as their work is done and fully functional, tuxedo-drivers and TCC are ready to be integrated with Bluefin / Aurora

Is this correct? And if so, would installing those 2 extra packages be something each tuxedo user should do or a custom ISO for tuxedo computers will be provided?

Btw thank you all for the great work you are doing on this!

@gladion136
Copy link

Hey, that's right. The TCC app only works with the tuxedo-drivers. I have ported these to akmods as tuxedo-drivers-kmod. Currently there are still a few issues I'm working on. Currently tuxedo-drivers-kmod works with the TCC app.

  • However, I have not yet got tuxedo-rs to run on bluefin. There I still have authorization problems with the DBUS interface. Here is the log.
  • I also haven't gotten tuxedo-backlight-control to run yet, because a few paths are missing (as described here). I don't know what the problem is.
  • The power saving settings between Gnome and the TCC app are not synchronized. I don't know if this is normal or if they are not compatible together.

As soon as the problems are solved I will publish the port on copr and create a PR to this repository.

If anyone has any ideas for my problems I would appreciate your help.

I don't think the TCC app and drivers will be included in the general Bluefin. It could be publish as a variant (like dx, ..).
It would be possible to include the drivers always, because if they don't fit they simply won't load. But the TCC app could cause confusion as it doesn't make sense on non Tuxedo laptops.
However, this is not my decision, but that of the ublue-os maintainers. I don't know what procedure is desired there.

@salim-b
Copy link

salim-b commented Dec 15, 2024

tuxedo-rs (that I think I haven't understood what it is and why is it needed though)

tuxedo-rs is an unofficial alternative to TCC. Main (supposed) upsides of tuxedo-rs are

  • ressource-efficiency and safety/robustness since it is written in Rust, while TCC is built on Electron (software bloat) and written in Typescript and Python.

  • native look on Gnome since its UI is built on libadwaita, while TCC is built on Electron.

So I would expect that tuxedo-rs is clearly superior to TCC. But I haven't yet tried it myself, I gotta admit.


The power saving settings between Gnome and the TCC app are not synchronized. I don't know if this is normal or if they are not compatible together.

They aren't synchronized either when tuxedo-drivers is installed via DKMS (e.g. on Ubuntu). I could imagine tuxedo-drivers does not use/implement (all) the Linux kernel APIs it should (which would fit what they write here about the drivers not being in an "upstreamable state").

@LeonardoMantovani
Copy link

If anyone has any ideas for my problems I would appreciate your help.

Unfortunately I know too little both about rust and about linux kernel and its module to help directly, but I can provide logs from a "traditional" installation (with tuxedo-drivers and TCC on an Ubuntu system) I'll be happy to help!

@tobehn
Copy link

tobehn commented Jan 16, 2025

@gladion136 how can i get tuxedo-drivers-kmod installed on bluefin? i am very willing to help in testing. I just set up a fresh install on my tuxedo notebook.
Do you have any advice?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests