Linux 控制 TT 风扇转速与 RGB 灯效
Arch Linux,默认不安装驱动的情况下,连接在 TT 风扇控制盒上的所有风扇会全速工作,噪音以及光污染很严重。
机器上 TT 的散热设备:
- TT Level 20 GT RGB 机箱自带的 2 个 20cm 的 Riing Plus RGB 风扇和 1 个 14cm 的 Riing Plus RGB 风扇,带 1 个 TT 风扇控制盒
- Floe Riing RGB 360 的 RGB 水泵 和冷排上的 3 个 12cm 的 Riing Plus RGB 风扇,带 1 个 TT 风扇控制盒
连接方式:
这里要注意的是机箱的 3 个散热风扇都没有接在主板的 CHA_FAN 接口上,这样 BIOS 里针对 CHA_FAN 接口提供的风扇转速调整策略就不能用了。CPU 的散热器还是连接了主板的 CPU_FAN 接口了,从 BIOS 里能看到 CPU 的温度和散热风扇的转速情况。
所有风扇都连接了对应的控制器,这里有 2 个控制器,分别控制机箱的风扇和 CPU 的风扇,控制器通过 1 根 Micro USB 线连接至主板的 USB 2.0 接口上(用来通讯)。官方提供了跑在 Windows 上的 TT RGB Plus 来控制控制器上连接的风扇的转速和灯光,Linux 则可以使用 linux-thermaltake-rgb 这个开源的驱动。
安装 yay
sudo pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
安装 linux-thermaltake-rgb
yay -S linux-thermaltake-rgb
配置 linux-thermaltake-rgb
以 root 身份打开 /etc/linux_thermaltake_rgb/config.yml
,配置内容如下:
controllers:
- unit: 1
type: g3
devices:
1: Riing Plus
2: Riing Plus
3: Riing Plus
4: Floe Riing RGB
- unit: 2
type: g3
devices:
1: Riing Plus
2: Riing Plus
3: Riing Plus
fan_manager:
model: curve
points:
- [0, 0] # [temp(*C), speed(0-100%)]
- [40, 0]
- [60, 30]
- [70, 50]
- [90, 80]
sensor_name: k10temp
lighting_manager:
model: "off"
-
controllers
这里要指定每个控制盒的编号,以及每个控制盒上连接的设置的型号,控制器编号由在控制盒背面的 DIP 开关来设置,开关状态对应的编号如下图:
如果有多个控制盒,确保每个控制盒的编号不会重复。
然后
devices
列表填入每个控制盒(注意区分控制盒编号)上连接的设备型号,这里的序号对应的设备也要和控制盒上接口 ID 连接的设备保持一致。 -
fan_manager
风扇转速控制,有 3 种模式。
-
temp_target
温度正相关。
-
locked_speed
固定速度。
-
curve(推荐)
温度速度相关曲线,相关数值由
points
列表指定。
sensor_name
可以通过sensors
命令查看具体名字,以我的设备为例子,执行sensors
命令的输出为:k10temp-pci-00db Adapter: PCI adapter Tctl: +53.0°C Tdie: +26.0°C k10temp-pci-00cb Adapter: PCI adapter Tctl: +52.0°C Tdie: +25.0°C nvme-pci-0700 Adapter: PCI adapter Composite: +34.9°C (low = -273.1°C, high = +80.8°C) (crit = +80.8°C) Sensor 1: +34.9°C (low = -273.1°C, high = +65261.8°C) Sensor 2: +38.9°C (low = -273.1°C, high = +65261.8°C) enp5s0-pci-0500 Adapter: PCI adapter MAC Temperature: +42.4°C k10temp-pci-00d3 Adapter: PCI adapter Tctl: +58.9°C Tdie: +31.9°C k10temp-pci-00c3 Adapter: PCI adapter Tctl: +59.4°C Tdie: +32.4°C Tccd1: +52.2°C Tccd2: +52.2°C Tccd3: +52.8°C
则
sensor_name
为k10temp
(去掉后缀-pci-****
)。 -
启动 linux-thermaltake-rgb
sudo systemctl start linux-thermaltake-rgb.service
sudo systemctl enable linux-thermaltake-rgb.service # 开机自动启动
可能会遇到的问题
-
缺少 numpy 模块
ModuleNotFoundError: No module named 'numpy'
sudo pip install numpy
-
缺少 gobject 模块
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. linux-thermaltake-rgb 0.2.0 requires GObject, which is not installed.
sudo pip install gobject
-
load() missing 1 required positional argument: ‘Loader’
yaml 最新版本不兼容导致的,改一下源码,兼容最新版本的 yaml。
/usr/lib/python3.10/site-packages/linux_thermaltake_rgb/daemon/config.py @@ -58,7 +58,7 @@ def load_config(self): cfg = ''.join(cfg_lines) LOGGER.debug('raw config file\n** start **\n\n%s\n** end **\n', cfg) - return yaml.load(cfg) + return yaml.load(cfg, Loader=yaml.FullLoader) def parse_config(self, config): self.controllers = config.get('controllers')
缺点
关机后,再按电源键开机,从启动到 Linux 系统加载完成这段时间,风扇会变成没有加载驱动的状态,以默认转速运转,RGB 灯光五颜六色,系统启动起来后就恢复成配置的模式工作了。重启机器,重启过程风扇不会恢复成初始状态工作。