本文主要讲述天选笔记本的特性,而不会涉及诸如Linux、fcitx的安装等问题
主要硬件
核显的驱动已并入内核。NVIDIA驱动安装:
- Arch:
sudo pacman -S nvidia nvidia-prime
或sudo pacman -S nvidia-dkms nvidia-prime
- Manjaro: 系统设置内安装闭源驱动或使用
mhwd
- Ubuntu: 见该文章
- 其他发行版请自行搜索
休眠唤醒后无法使用热键、电池数据不更新等问题解决方案
将asus_ec_sensors
加入黑名单
在/etc/modprobe.d/中创建asus.conf文件,在里面写上以下内容:
# Do not load the 'asus_ec_sensors module on boot.
blacklist asus_ec_sensors
在/etc/mkinitcpio.conf
中添加配置文件
编辑/etc/mkinitcpio.conf
,找到FILES=()
,添加/etc/modprobe.d/asus.conf
随机重启、卡死解决方案 (非锐龙版请跳过以下部分)
翻译
解决方案1: 使用LTS内核可以避免这个问题。
解决方案2: 使用R8168模块代替R8169模块。
- 安装
r8168
或r8168-dkms
软件包,安装哪一个取决于你使用的内核
sudo pacman -S r8168
- 将
r8169
加入黑名单
在/etc/modprobe.d/
中创建no8169.conf
文件,在里面写上以下内容:# Do not load the 'r8169' module on boot. blacklist r8169
- 在
/etc/mkinitcpio.conf
中添加配置文件
编辑/etc/mkinitcpio.conf
找到FILES=()
,添加/etc/modprobe.d/no8169.conf
,使它看起来像这样:FILES=(/etc/modprobe.d/no8169.conf)
- 生成initramfs
sudo mkinitcpio -p linux #取决于你使用的内核
该方法适用于ArchLinux。对于其他发行版,请自行搜索内核模块r8168
的安装方式。(2、3、4步在大多数发行版中适用)
同时可能需要禁用C6以获得更高稳定性,Arch系可安装AUR软件包disable-c6-systemd;其他发行版请自行安装zenstates,添加一个service到/lib/systemd/system/disable-c6.service
并enable:
[Unit]
Description=Ryzen Disable C6
DefaultDependencies=no
After=sysinit.target local-fs.target suspend.target hibernate.target
Before=basic.target
[Service]
Type=oneshot
ExecStart=/usr/bin/zenstates --c6-disable
[Install]
WantedBy=basic.target suspend.target hibernate.target
禁用C6会导致无法睡眠,可使用 UniversalAMDFormBrowser (该项目被删除,安装方法可见该帖子)启用S3,或添加一个service到/lib/systemd/system/enable-c6-when-suspend.service
并enable以恢复睡眠功能:
[Unit]
Description=Ryzen Enable C6
DefaultDependencies=no
Before=suspend.target hibernate.target
[Service]
Type=oneshot
ExecStart=/usr/bin/zenstates --c6-enable
[Install]
WantedBy=suspend.target hibernate.target
该service会在睡眠前再次启用C6。
其他问题参见Ryzen - ArchWiki
键盘热键驱动
键盘上大多的Fn键都可以正常使用,并且已经预设好对应功能。但奥创中心键、AURA键由于没有对应的功能键,并不能在快捷键设置界面被读取到。在Github逛了一圈,找到了asus-wmi-hotkeys-driver这一项目。但这一项目也没有提供这两个按键的驱动,但提供了思路。于是Fork了这个项目,自己添加了这两个键的驱动 (理论上也适用有这两个键的其他型号)。安装好这一驱动后,奥创中心键会被识别为Meta + Shift + A
, ARUA键会被识别为Meta + Shift + B
。如有冲突,也可以自行修改 keys_wmi_layouts/fa507r.py
这一文件。
这些键的驱动已并入5.19版本内核。
Fn + F5
可以切换风扇模式。这个组合键是无法被系统读取的,起初怀疑与前两个键不是同一个input设备,后来发现这一组合键会直接操作风扇模式而不经过系统,所以这一组合键不需要额外驱动。 6.1内核将更新对该按键进行修改的方式。
风扇模式调节
上面说到,可以使用键盘调节风扇模式。同时/sys/devices/platform/asus-nb-wmi/throttle_thermal_policy
也可以实现修改与读取。其内容意义见下表:
内容 | 意义 |
---|---|
0 | Normal (性能模式) |
1 | Overboost (增强模式) |
2 | Silent (静音模式) |
同时,我找到了KDE的一个小部件Command Output,可以用于实时显示风扇模式。首先,编写如下脚本,存于/usr/bin/fan-mode
内并执行chmod +x /usr/bin/fan-mode
#!/bin/sh
mode=`cat /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy`
case $mode in
0)
echo "Normal"
;;
1)
echo "Overboost"
;;
2)
echo "Silent"
;;
esac
在此之后,添加 Command Output 小部件到面板内,右击并选择配置Command Output...
,在 Command 下的输入框填入echo "Fan: $(fan-mode)"
。建议将Run every
后的值设定为500以上,否则可能造成较大的性能浪费。由于我使用的非gnome,且没有找到合适的替代品,故不作介绍。
效果如图:
再分享一个用于切换风扇模式的脚本:
#!/bin/sh
origin=`cat /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy`
case $origin in
0)
echo 1 > /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy
;;
1)
echo 2 > /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy
;;
2)
echo 0 > /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy
;;
esac
限制充电
直接写入限制值到/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0A:00/power_supply/BAT1/charge_control_end_threshold
(关机/睡眠后失效,包括关机状态)
或添加一个service到/lib/systemd/system/set-charge-end-threshold.service
:(永久有效)
[Unit]
Description=Set Charge End Threshold
[Service]
Type=oneshot
User=root
ExecStart=/bin/sh -c "cat /etc/charge_control_end_threshold > /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0A:00/power_supply/BAT1/charge_control_end_threshold"
[Install]
WantedBy=basic.target suspend.target
后将限制值写入/etc/charge_control_end_threshold
并enable。
键盘RGB
使用6.1以上版本内核并安装0.9以上版本OpenRGB即可修改。
MUX Switch
需要内核版本 >= 6.1。
运行echo 0 | sudo tee /sys/devices/platform/asus-nb-wmi/gpu_mux_mode
并重启可启用独显直连。(不推荐使用,会出现DPI问题,且并不会带来很大性能提升)
运行echo 1 | sudo tee /sys/devices/platform/asus-nb-wmi/gpu_mux_mode
并重启可恢复混合输出。