我正在使用 Xfce4,它具有xfce4-power-manager
视觉提示和upower
核心支持包之一(我看到一个/usr/lib/upower/upowerd
正在运行的ps aux
输出)。除此之外,还pm-utils
安装了,在日志中我看到它处于活动状态。我不确定这是否会搅动任何水,为了完整起见,我肯定会在此处列出。
该机器是 Acer Predator Helios 500 PH517-61-R0GX (AMD Ryzen)。完全相同的安装(字面意思是相同的 SSD 棒)在华硕 ROG Strix GL702ZC(也是 AMD Ryzen 笔记本电脑,但使用 Ryzen 1700 而不是 Ryzen 2700)中。华硕没有这种问题。
# upower -d
Device: /org/freedesktop/UPower/devices/line_power_ACAD
native-path: ACAD
power supply: yes
updated: Sat 02 Mar 2019 10:08:52 PM PST (2442 seconds ago)
has history: no
has statistics: no
line-power
online: no
Device: /org/freedesktop/UPower/devices/battery_BAT1
native-path: BAT1
vendor: PANASONIC
model: AP17C5P
serial: 1409
power supply: yes
updated: Sat 02 Mar 2019 10:49:28 PM PST (6 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
energy: 73.1346 Wh
energy-empty: 0 Wh
energy-full: 74.074 Wh
energy-full-design: 74.074 Wh
energy-rate: 0 W
voltage: 17.374 V
percentage: 98%
capacity: 100%
technology: lithium-ion
Daemon:
daemon-version: 0.9.23
can-suspend: yes
can-hibernate: no
on-battery: yes
on-low-battery: no
lid-is-closed: no
lid-is-present: yes
is-docked: yes
注意上面的电源online: no
和电池state: discharge
,尽管在我写这篇文章时情况正好相反:交流适配器已插入并且电池应该充满电。这也是惯例,因为如果电池真的在放电,我会在大约 1.5 小时内没电。
现在UPower
可以从子系统中获取它的信息。我看到这个:
# cat /sys/class/power_supply/ACAD/online
0
# cat /sys/class/power_supply/BAT1/status
Discharging
即使我尝试将 CPU 频率调节器强制为performance
,CPU 也会被抑制:
# cat /proc/cpuinfo | grep MHz
cpu MHz : 548.695
cpu MHz : 548.572
cpu MHz : 548.638
cpu MHz : 548.658
cpu MHz : 548.226
cpu MHz : 548.899
cpu MHz : 548.528
cpu MHz : 548.477
cpu MHz : 548.819
cpu MHz : 548.440
cpu MHz : 548.905
cpu MHz : 548.263
cpu MHz : 548.956
cpu MHz : 548.645
cpu MHz : 548.938
cpu MHz : 548.666
实际上这甚至可能是不可能的,因为我认为最低是 1.5 GHz,但系统有时确实很慢。
我尝试使用acpi_osi=Linux
内核引导参数,但这似乎并没有改变这种情况。
非常有趣的是,在dmesg
我看到一件有趣的事情时,在早期启动期间,ACPI 子系统检测到交流适配器确实已插入:
[ 0.882383] ACPI: AC Adapter [ACAD] (on-line)
[ 0.882416] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0
[ 0.882420] ACPI: Power Button [PWRB]
[ 0.882446] input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input1
[ 0.882449] ACPI: Sleep Button [SLPB]
[ 0.882468] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input2
[ 0.882472] ACPI: Lid Switch [LID]
[ 0.882491] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
[ 0.882500] ACPI: Power Button [PWRF]
[ 0.882552] ACPI: Video Device [DGPU] (multi-head: yes rom: no post: no)
[ 0.882745] acpi device:2a: registered as cooling_device0
(完整的 dmesg:https ://pastebin.com/x4QRbSCR )
不知道什么时候转机?是什么导致启动时正确的在线检测搞砸了?
# uname -a
Linux asus 4.20.13 #2 SMP Sat Mar 2 17:03:50 PST 2019 x86_64 GNU/Linux
我安装了 acpid ( apt install acpid
)。这对一般情况没有帮助,但我可以跑步acpi_listen
,当我断开交流适配器时,我看到一堆消息。当我重新连接时,它是沉默的。上面的/sys/class/power_supply/*
读数保持不变。
我对 helios 500 和 manjaro 不收费的解决方法:
echo "manual" > /sys/devices/pci0000:00/0000:00:03.1/0000:06:00.0/0000:07:00.0/0000:08:00.0/power_dpm_force_performance_level
echo 6 > /sys/devices/pci0000:00/0000:00:03.1/0000:06:00.0/0000:07:00.0/0000:08:00.0/pp_dpm_sclk
echo 4 > /sys/devices/pci0000:00/0000:00:03.1/0000:06:00.0/0000:07:00.0/0000:08:00.0/pp_dpm_mclk
在这三个命令之后,充电 LED 开始发光,操作系统知道交流适配器已插入。
我希望这会对某人有所帮助。
基于Pawel Czmock对 Ubuntu 18.04 的回答工作解决方案是:
列出可用频率 (pp_dpm_sclk)。为此,作为 sudo 执行:
如果您在那里看到 1201Mhz,请继续下一部分。如果没有,您可以自己决定使用哪个频率(基于上面脚本的输出)并将其作为参数传递给下面的脚本
应用所需的频率设置(默认为 1201Mhz 或传递参数,即1301Mhz)
作为 sudo 执行:
执行此脚本 CPU 后,GPU 开始以正常频率工作,Ubuntu 切换到“On-AC”模式,电源指示灯亮起
注意:有时上面的脚本会执行但不会设置这些值 - 在这种情况下,注销和登录会有所帮助。
我有同样的笔记本电脑和同样的问题。我已经联系了 ACPI 内核开发人员,但无法猜测我们是否会为我们的交流电源提供适当的 ACPI 支持。“好”消息是,我至少找到了一种解决方法,让我们能够使用我们的系统能够提供的更高性能。
以下是一些需要检查和尝试的事情:
如果您启动并且您的 CPU 频率停留在 ~500MHz,请尝试拔下 AC 适配器。有时需要不止一次尝试。这应该会让您进入电池模式电源设置。我将 CPU 调控器留给“按需”。
我真的推荐 amdgpu-utils:https ://github.com/Ricks-Lab/amdgpu-utils 您必须在 /etc/default/grub 的 GRUB_CMDLINE_LINUX_DEFAULT= 行中添加:“amdgpu.ppfeaturemask=0xffff7fff”并生成新配置,重新安装 grub,然后重新启动,但是一旦内核设置了该设置,您现在就可以对您的 Vega 56 进行大量控制。(看到我们选择 AMD 是有原因的!耶开源驱动程序!)
我申请让我的 GPU 加速的 hack 是将 P0 状态设置为更高的时钟(因为它在“电池模式”下被强制在那里)。其中一个工具是 amdgpu-pac,它允许我们编辑 P0 状态。首先,以 root 身份运行“amdgpu-pac --execute_pac”并实时调整您的设置。(风扇读数为零,这是正常的,因为我们的笔记本电脑不使用备用风扇。)功率上限为 120 瓦,如果没有破解 BIOS,我们将无能为力。0:Sclk P-State 应更改为更高的 Mhz 和 mV。当心!这就像超频一样。我们限制了功放,所以我们不能只将它设置为 P7:然后继续前进。我测试了 1201 Mhz 和 875 mV,这似乎对我有用。如果您找到更好的稳定组合,请告诉我。除了将“设置掩码:”更改为“1,2,3" 所以它不能使用 0 状态。我尝试更改 0: 状态并将所有内容都锁定。将“电源性能模式”保留为 AUTO,我发现更改它没有任何区别。点击保存将立即应用它。我使用 Unigine 的天堂对事物进行压力测试的基准(当前分数:1761 极端”)。一旦你有你喜欢的设置记下来,重新启动 amdgpu-pac 不带参数并设置设置,现在当你点击保存时,它会生成一个 pac_writer_$$$$$.sh 供你在你想将 GPU 设置为时运行性能模式。如果您想重新开始省电,它还有助于使用库存设置生成 reset.sh。就是这样。我注意到改变它没有区别。点击保存将立即应用它。我使用 Unigine 的天堂基准对事物进行压力测试(当前分数:1761 极端”)。一旦你有你喜欢的设置,记下它们,重新启动 amdgpu-pac 不带参数并设置设置,现在当你点击保存它会生成一个 pac_writer_ $$$$$.sh 供您在您想将 GPU 设置为性能模式时运行。如果您想回到节能状态,它还有助于生成带有库存设置的 reset.sh。就是这样。我注意到改变它没有区别。点击保存将立即应用它。我使用 Unigine 的天堂基准对事物进行压力测试(当前分数:1761 极端”)。一旦你有你喜欢的设置,记下它们,重新启动 amdgpu-pac 不带参数并设置设置,现在当你点击保存它会生成一个 pac_writer_ $$$$$.sh 供您在您想将 GPU 设置为性能模式时运行。如果您想回到节能状态,它还有助于生成带有库存设置的 reset.sh。就是这样。sh 供您在要将 GPU 设置为性能模式时运行。如果您想重新开始省电,它还有助于使用库存设置生成 reset.sh。就是这样。sh 供您在要将 GPU 设置为性能模式时运行。如果您想重新开始省电,它还有助于使用库存设置生成 reset.sh。就是这样。
使用这些技巧,我能够(大部分)在 Linux 下以全性能运行这台笔记本电脑。如果运气好的话,ACPI 开发人员会听到我们的呼声,而未来的 Linux 内核将简单地检测到我们的 AC 适配器。祝你好运!