Everything works out of the box on Arch Linux, but there are some tweaks and tips you might find useful.
If you encounter issues with your sound card (no sound), you can create a file with any name (e.g., alsafix.conf) in the directory /etc/modprobe.d/
. The full path is /etc/modprobe.d/alsafix.conf
.
Next, add the following line to this file: options snd-hda-intel model=clevo-p950
, and then reboot your system. This should resolve the problem.
We owe thanks to the Tuxedo company, which specializes in building Linux laptops. Some of their products are based on Clevo hardware.
Technically, you can use their drivers and apps to control fans and keyboard lighting. However, it appears that they have added model checks in their latest open-source driver code. If you don't own a Tuxedo model, you'll need to compile the driver yourself to make it work.
evorster have provided detailed instructions in the Arch User Repository (AUR) package:
https://aur.archlinux.org/packages/tuxedo-keyboard-dkms
Here are the steps:
1. Download the package manually
2. Run makepkg -o
3. Edit the file in the source code src/tuxedo-something/src/tuxedo_keyboard.c
4. Search for "DMI_MATCH" and set the DMI strings to what matches your system.
How to find what matches your system?
sudo dmidecode | grep Manufacturer
Use the first three hits, on my system it was "Notebook", "Notebook" and "No Enclosure"
1. Install the package by running makepkg -se in the root dir where you cloned it
Please note that tuxedo-keyboard
is essential for controlling fans and keyboard lighting.
BTW, install tuxedo-control-center-bin
to control fans and keyboard lighting.
OR
Write your own script to control /dev/tuxedo_io
. Below is an example code. You can find all the necessary methods in Tuxedo's repository since they are open-source.
import ctypes
import ioctl
import ioctl.linux
IOCTL_MAGIC = 0xEC
MAGIC_READ_CL = IOCTL_MAGIC + 1
MAGIC_WRITE_CL = IOCTL_MAGIC + 2
R_CL_HW_IF_STR = 0x00
R_CL_FANINFO1 = 0x10
R_CL_FANINFO2 = 0x11
R_CL_FANINFO3 = 0x12
MAX_FAN_SPEED = 0xFF
W_CL_FANSPEED = 0x10
W_CL_FANAUTO = 0x11
W_CL_PERF_PROFILE = 0x15
PERF_PROF_QUIET = 0x00
PERF_PROF_POWERSAVE = 0x01
PERF_PROF_PERFORMANCE = 0x02
PERF_PROF_ENTERTAINMENT = 0x03
fd = os.open('/dev/tuxedo_io', os.O_RDONLY)
......
......
......
fan1 = fan_speed_percent_list[0]
fan2 = fan_speed_percent_list[1]
fan3 = fan_speed_percent_list[2]
argument = fan1 # 0-255
argument |= fan2 << 8 # 0-255
argument |= fan3 << 16 # 固定 256
write(fd, W_CL_FANSPEED, argument) # W_CL_FANSPEED = 0x10
......
......
......
The Python package i use: https://github.com/olavmrk/python-ioctl
You can use this script to control various settings like fan speed, fan auto mode, TDP profiles, and more, just like the Windows control center!
systemctl start nvidia-powerd
It can also stop for stop and enable/disable for boot config.
If you have any advice to share with me, please feel free to do so!