This is a read only mirror of this GitLab repository https://gitlab.com/tuxedocomputers/development/packages/tuxedo-drivers. For contributions and bug reports please head over to GitLab. https://gitlab.com/tuxedocomputers/development/packages/tuxedo-drivers
  • C 99.2%
  • Makefile 0.6%
  • Shell 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-11 19:38:13 -03:00
files/usr/lib Install files to /usr/lib 2026-02-03 08:25:14 +01:00
pkg-tests fix: correct bash syntax 2026-04-08 15:07:51 +02:00
src bringing back the crgb colors to range 2026-09-11 19:38:13 -03:00
.editorconfig Extend .editorconfig 2026-02-06 11:41:53 +01:00
.gitignore Adjust for new alpm package name handling and cleanup 2026-04-10 11:43:46 +02:00
.gitlab-ci.yml Use new pipeline infrastructure 2026-02-06 11:41:26 +01:00
base_package.yml Update version to 4.22.1 + changelog 2026-04-10 13:39:11 +02:00
deb.yml Fix Makefile 2026-04-09 21:35:21 +02:00
Kbuild Include ite modules in build scripts and rename package 2023-10-02 16:45:05 +02:00
LICENSE Fix license information 2026-03-05 19:22:55 +01:00
Makefile Adjust for new alpm package name handling and cleanup 2026-04-10 11:43:46 +02:00
package.yml Fix Makefile 2026-04-09 21:35:21 +02:00
README.md Add Avell A70 to full install driver to keyboard lights 2026-04-25 14:30:40 -03:00

Table of Content

Avell Fork

This is a fork of tuxedocomputers/tuxedo-drivers with a single patch to enable support for Avell laptops (tested on Avell ION A70).

What was changed

src/tuxedo_compatibility_check/tuxedo_compatibility_check.c — added "Avell" to the DMI vendor allowlist so tuxedo_compatibility_check returns true on Avell hardware, allowing tuxedo_keyboard and WMI sub-drivers to initialize.

Tested hardware

Model CPU Kernel Distro Status
Avell ION A70 Intel Meteorlake 6.19.13 Fedora 43 ✅ Working

Prerequisites

# Fedora
sudo dnf install kernel-devel dkms gcc make

# Ubuntu/Debian
sudo apt install linux-headers-$(uname -r) dkms gcc make

If tuxedo-drivers is already installed via a package manager, remove it first to avoid conflicts:

# Fedora
sudo dnf remove tuxedo-drivers
# Ubuntu
sudo apt remove tuxedo-drivers

Installing on Avell ION A70

# 1. Clone and register with DKMS
git clone https://github.com/weldyss/tuxedo-drivers.git
cd tuxedo-drivers
sudo dkms add .

# 2. Build and install
VER=$(grep '^VERSION' dkms.conf | cut -d= -f2 | tr -d ' "')
sudo dkms build tuxedo-drivers/$VER
sudo dkms install --force tuxedo-drivers/$VER

# 3. Load modules
sudo modprobe tuxedo_compatibility_check
sudo modprobe tuxedo_keyboard
sudo modprobe uniwill_wmi

# 4. Persist across reboots
printf "tuxedo_compatibility_check\ntuxedo_keyboard\nuniwill_wmi\n" | sudo tee /etc/modules-load.d/avell-keyboard.conf

Verify it worked

lsmod | grep -E "tuxedo|uniwill"
ls /sys/class/leds/rgb:kbd_backlight

You should see tuxedo_keyboard, tuxedo_compatibility_check, and uniwill_wmi loaded, and the LED sysfs entry present.

Note: clevo_wmi will load but will not bind on the A70 — the hardware uses the Uniwill WMI interface (object_id BA). Do not rely on clevo_wmi for backlight control.

Controlling the keyboard backlight

# Set color (R G B, each 0–255)
echo "255 0 0"   | sudo tee /sys/class/leds/rgb:kbd_backlight/multi_intensity  # red
echo "0 255 0"   | sudo tee /sys/class/leds/rgb:kbd_backlight/multi_intensity  # green
echo "0 0 255"   | sudo tee /sys/class/leds/rgb:kbd_backlight/multi_intensity  # blue
echo "255 165 0" | sudo tee /sys/class/leds/rgb:kbd_backlight/multi_intensity  # orange
echo "255 255 255" | sudo tee /sys/class/leds/rgb:kbd_backlight/multi_intensity  # white

# Set brightness (0–255)
echo 200 | sudo tee /sys/class/leds/rgb:kbd_backlight/brightness

# Turn off
echo 0 | sudo tee /sys/class/leds/rgb:kbd_backlight/brightness

Color and brightness are independent — you can set color first and then adjust brightness without losing the color.

Kernel updates

DKMS will automatically rebuild the module for new kernels. After a kernel update, reboot (the modules-load.d config will reload the modules automatically) or reload manually:

sudo modprobe tuxedo_compatibility_check
sudo modprobe tuxedo_keyboard
sudo modprobe uniwill_wmi

Uninstalling

VER=$(sudo dkms status tuxedo-drivers | awk -F'[/,]' '{print $2}' | tr -d ' ' | head -1)
sudo dkms remove tuxedo-drivers/$VER --all
sudo rm /etc/modules-load.d/avell-keyboard.conf
sudo modprobe -r uniwill_wmi tuxedo_keyboard tuxedo_compatibility_check

Description

Drivers for several platform devices for TUXEDO notebooks meant for DKMS.

Features implemented by this driver package

  • Fn-keys
  • Keyboard backlight
  • Fan control
  • Power control
  • Other sensors
  • Hardware specific userspace quirks

Modules included in this package

  • clevo_acpi
  • clevo_wmi
  • tuxedo_keyboard
  • uniwill_wmi
  • ite_8291
  • ite_8291_lb
  • ite_8297
  • ite_829x
  • tuxedo_io
  • tuxedo_compatibility_check
  • tuxedo_nb05_keyboard
  • tuxedo_nb05_power_profiles
  • tuxedo_nb05_ec
  • tuxedo_nb05_sensors
  • tuxedo_nb04_keyboard
  • tuxedo_nb04_wmi_ab
  • tuxedo_nb04_wmi_bs
  • tuxedo_nb04_sensors
  • tuxedo_nb04_power_profiles
  • tuxedo_nb04_kbd_backlight
  • tuxedo_nb05_kbd_backlight
  • tuxedo_nb02_nvidia_power_ctrl
  • tuxedo_nb05_fan_control
  • tuxi_acpi
  • tuxedo_tuxi_fan_control
  • stk8321
  • gxtp7380

Building and Install

Dependencies:

All:

  • make

make package-*:

Troubleshooting

The keyboard backlight control and/or touchpad toggle key combinations do not work

For all devices with a touchpad toggle key(-combo) and some devices with keyboard backlight control key-combos the driver does nothing more then to send the corresponding key event to userspace where it is the desktop environments duty to carry out the action. Some smaller desktop environments however don't bind an action to these keys by default so it seems that these keys don't work.

Please refer to your desktop environments documentation on how to set custom keybindings to fix this.

For keyboard brightness control you should use the D-Bus interface of UPower as actions for the key presses.

For touchpad toggle on X11 you can use xinput to enable/disable the touchpad, on Wayland the correct way is desktop environment specific.

Regarding upstreaming of tuxedo-drivers

The code, while perfectly functional, is currently not in an upstreamable state. That being said we started an upstreaming effort and the first small part, the keyboard backlight control for the Sirius 16 Gen 1 & 2, already got accepted.

If you want to hack away at this matter yourself please follow the following precautions and guidelines to avoid breakages on both software and hardware level:

  • Involve us in the whole process. Nothing is won if at some point tuxedo-control-center or the dkms variant of tuxedo-drivers stops working. Especially when you send something to the LKML, please set us in the cc.
  • We mostly can't share documentation, but we can answer questions.
  • Code interacting with the EC, which is most of tuxedo-drivers, can brick devices and therefore must be ensured to only run on compatible and tested devices.
  • If you use tuxedo-drivers as a reference or code snippets from it, a "Codeveloped-by:<name> <tuxedo_email>" must be included in your upstream commit, with <name> and <tuxedo_email> depending on the actual part of tuxedo-drivers being used. Please talk to us regarding this.