目录
环境
- 机型 ROG Strix G733ZM(RTX 3060 Mobile,i9-12900H)
- 系统 26.04,Wayland
- 内核:
7.0.0-14-generic - 桌面 Plasma
为什么折腾
Linux 下需要替代 Armoury Crate 的工具:风扇曲线和 RGB 控制。asusctl 是社区主导的 ASUS Linux 控制工具,主流发行版有包,Ubuntu 标记为 "Officially unsupported"。我是ubuntu 信徒,我拒绝在我想稳定使用的电脑上安装arch
asusctl 仅支持 Wayland。asus-armoury 驱动要求内核 ≥ 6.19。两项均满足。
先确认硬件匹配
bashcat /sys/class/dmi/id/sys_vendor
# ASUSTeK COMPUTER INC.
lsusb | grep -i asus
# 0b05:19b6 ASUSTek Computer, Inc. N-KEY Device
0b05:19b6 命中 N-KEY 设备列表。asus-armoury、asus_nb_wmi、hid_asus 已加载。
编译
Ubuntu 仓库的 Rust 版本低于项目要求,需 rustup:
bashsudo apt install -y git cmake clang pkg-config \
libclang-dev libudev-dev libxkbcommon-dev \
libzip-dev libssl-dev libgtk-3-dev \
libpcre2-dev libzstd-dev libexpat1-dev \
build-essential
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
git clone https://github.com/OpenGamingCollective/asusctl.git
cd asusctl
cargo build --release
安装二进制与 udev 规则:
bashsudo cp target/release/asusd /usr/bin/
sudo cp target/release/asusctl /usr/bin/
sudo cp data/asusd.rules /lib/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger
问题 1 D-Bus 策略
按 README 执行 systemctl enable --now asusd.service:
The unit files have no installation config (WantedBy=, RequiredBy=, UpheldBy=, Also=, or Alias= settings in the [Install] section, and DefaultInstance= for template units). ... Job for asusd.service failed because the control process exited with error code.
asusd.service 为 Type=dbus,无 [Install] 段。enable 警告可忽略。
daemon 启动失败。journalctl:
Connection ":1.144" is not allowed to own the service "xyz.ljones.Asusd" due to security policies in the configuration file
daemon 注册 D-Bus 总线名 xyz.ljones.Asusd。Ubuntu 的 dbus-daemon 默认拒绝未知名字的所有权声明。
安装 data/asusd.conf:
bashsudo cp data/asusd.conf /etc/dbus-1/system.d/
sudo systemctl reset-failed asusd.service
sudo systemctl start asusd.service
验证:
bashbusctl list | grep asusd
输出 xyz.ljones.Asusd 表示 D-Bus 名称注册成功。
asusd.service 与 asus-shutdown.service 需手动 copy。Arch 用户的 PKGBUILD 自动处理 systemctl、udev、D-Bus 配置。
bashsudo cp data/asusd.service /etc/systemd/system/
sudo cp data/asus-shutdown.service /etc/systemd/system/
sudo systemctl daemon-reload
asusd 由 D-Bus 激活,不需 enable。asus-shutdown 有 [Install] 段。
CLI 测试
bash$ asusctl profile list Silent Balanced Performance $ asusctl profile -P Performance $ asusctl led-mode static -c red
风扇曲线配置:/etc/asusd/fan_curves.ron,切到 Custom 即生效。
bashasusctl fan-mode --fan-diag
输出 CPU、GPU 风扇识别。
CLI 命令
、led-mode、fan-mode、充电阈值、GPU 模式、TDP 限制。问题 2 rog-control-center 缺图标
rog-control-center 使用 Slint。启动时 panic:
thread 'tokio-rt-worker' panicked at rog-control-center/src/tray.rs:39:29: Missing icon: "/usr/share/icons/hicolor/512x512/apps/asus_notif_red.png"
源码 tray.rs:33:
rustlet mut file = OpenOptions::new()
.read(true)
.open(&path)
.unwrap_or_else(|_| panic!("Missing icon: {:?}", path));
资源路径硬编码,缺失直接 panic!。
安装 6 个通知图标:
bashsudo install -D -m 644 ~/asusctl/data/icons/asus_notif_*.png \ -t /usr/share/icons/hicolor/512x512/apps/
再次启动:
Missing icon: "/usr/share/icons/hicolor/512x512/apps/rog-control-center.png"
rog-control-center.png 不在仓库中,仅有 data/icons/scalable/rog-logo.svg。
SVG 转 PNG:
bashsudo apt install -y librsvg2-bin rsvg-convert -w 512 -h 512 ~/asusctl/data/icons/scalable/rog-logo.svg \ -o /tmp/rog-control-center.png sudo install -m 644 /tmp/rog-control-center.png \ /usr/share/icons/hicolor/512x512/apps/rog-control-center.png
第三次启动成功。
遇到 的问题
- D-Bus 所有权:
xyz.ljones.Asusd需在/etc/dbus-1/system.d/*.conf显式声明。asusd.conf为必需文件。 - Slint 资源路径硬编码:缺失时
panic!,无 fallback。源码编译需手动 copy 资源。 Type=dbusservice:无[Install]段,由 D-Bus 激活。enable警告可忽略。- README 面向 Arch 的 PKGBUILD 自动处理 service、udev、D-Bus 配置。Ubuntu 源码编译需手动补齐。
- 崩溃栈作为文档:
tray.rs:39等行号直接定位项目结构和资源约定。
小结
- Ubuntu 26.04 +
asusctl:可用,需源码编译。 - 手动步骤:
asusd.service、asusd.conf、6 个asus_notif_*.png、rog-control-center.png。
本文作者:Casear
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!