- C 99.2%
- Makefile 0.6%
- Shell 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| files/usr/lib | ||
| pkg-tests | ||
| src | ||
| .editorconfig | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| base_package.yml | ||
| deb.yml | ||
| Kbuild | ||
| LICENSE | ||
| Makefile | ||
| package.yml | ||
| README.md | ||
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-driversis 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_wmiwill load but will not bind on the A70 — the hardware uses the Uniwill WMI interface (object_id BA). Do not rely onclevo_wmifor 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.