Я использую 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 ASUS (также ноутбук Ryzen AMD, но с Ryzen 1700 вместо Ryzen 2700). У меня не было этого типа проблемы с ASUS.
# 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
Даже если я пытаюсь осуществить регулятор частоты ЦП, чтобы быть performance
, центральные процессоры приглушены:
# 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 ГГц, но система иногда, конечно, вяла.
Я попытался использовать 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/*
чтения выше остаются тем же.
У меня есть тот же ноутбук и та же проблема. Я обратился к ядру ACPI devs, но нет никакого предположения, если у нас когда-либо будет надлежащая поддержка ACPI нашего питания переменным током. "Хорошие" новости - то, что я, по крайней мере, нашел, что обходное решение позволяет нам использовать более высокую производительность, к которой наши системы способны.
Вот некоторые вещи проверить и попробовать:
Если Вы загружаетесь, и Ваши частоты ЦП упорно продолжены, ~500MHz пытаются отключить сетевой адаптер. Иногда требуется больше чем одна попытка. Это должно ударить Вас на параметрах питания режима работы от аккумулятора. Я оставляю регулятор ЦП "ondemand".
Я действительно рекомендую amdgpu-utils: https://github.com/Ricks-Lab/amdgpu-utils Вы должен будет добавить: "amdgpu.ppfeaturemask=0xffff7fff" к Вашему GRUB_CMDLINE_LINUX_DEFAULT = строка в Вашем/etc/default/grub и генерирует новую конфигурацию, переустанавливает личинку и затем перезагрузку, но после того как ядро имеет тот набор, Вы теперь имеете крупный контроль над своим Vega 56. (См., что мы пошли с AMD по причине! Драйверы с открытым исходным кодом Yay!)
Взлом, который я применяю для получения моего GPU до скорости, путем установки состояния P0 на более высокие часы (так как это вызывается там на "режиме работы от аккумулятора"). Один из utils является amdgpu-pac, и он позволяет нам редактировать состояние P0. Во-первых, как корень, выполненный "amdgpu-pac - execute_pac" и тонкая настройка Ваши настройки в режиме реального времени. (Поклонник считает нуль, это нормально, поскольку наш ноутбук не использует вентилятор запаса.) Ограничение питания 120w, ничто, что мы можем сделать об этом без взломанного BIOS. 0: P-состояние Sclk должно быть изменено на более высокий Mhz и мВ. БУДЬТЕ ОСТОРОЖНЫ! Это точно так же, как разгоняется. У нас есть limted усилители, чтобы распространяться вокруг так, мы не сможем просто установить его на P7: и движение. Я протестировал 1 201 МГц и 875 мВ, и это, кажется, работает на меня. Если Вы находите лучшую комбинацию, это стабильно сообщенный мне. Я оставил Mclk в покое кроме изменения "Маски Набора": к "1,2,3", таким образом, это не может использовать эти 0 состояний. Я пытался изменить 0: состояние и это заперли все. Отпуск "Режим Производительности Питания" к АВТОМАТИЧЕСКОМУ, я не заметил различия, изменяющего его. Сохранение удара сразу применит его. Я использую сравнительный тест небес Unigine для вещей стресс-теста (текущий счет: 1761 на экстремальном значении"). После того как у Вас есть настройки, которые Вы любите, кратко записывают их, перезапускают amdgpu-pac без аргументов и устанавливают настройки, теперь когда Вы совершаете нападки, сохраняют его, будет genereate pac_writer_ $$$$$ .sh, чтобы Вы работали каждый раз, когда Вы хотите установить GPU на режим производительности. Это также помогает генерировать reset.sh с настройками запаса, если Вы хотите вернуться к экономии электроэнергии. Это об этом.
Используя эти приемы я могу (главным образом) выполнить этот ноутбук при полной производительности в соответствии с Linux. С любой удачей ACPI devs услышит наши крики, и будущие ядра Linux просто обнаружат наш AC apdapter.Удачи!
На основе ответ Pawel Czmock рабочее решение для Ubuntu 18.04:
Список доступные частоты (pp_dpm_sclk). Для этого выполнитесь как sudo:
cd '/sys/devices/pci0000:00'
DPM_SCLK=$(find . -name 'pp_dpm_sclk')
echo 'Available SCLK frequencies:'
cat "$DPM_SCLK"
, Если Вы видите 1201 МГц там, продолжите затем разделять. В противном случае можно решить, какая частота использовать собой (на основе вывода из вышеупомянутого сценария) и передать его как аргумент сценарию ниже
Применяют желаемую установку частоты (значением по умолчанию 1201 МГц, или передайте аргумент, т.е. 1301 МГц )
Выполняются как sudo:
FREQUENCY="1201Mhz"
if [ -n "$1" ]; then
FREQUENCY="$1"
fi
ROOT='/sys/devices/pci0000:00'
# Set manual level:
DPM_LEVEL=$(find "$ROOT" -name 'power_dpm_force_performance_level')
echo "Setting 'manual' level in $DPM_LEVEL"
echo 'manual' > "$DPM_LEVEL"
# Find frequency selector id:
DPM_SCLK=$(find "$ROOT" -name 'pp_dpm_sclk')
SCLK_VALUE=$(grep "$FREQUENCY" "$DPM_SCLK" | cut -d: -f1)
if [ -z "$SCLK_VALUE" ]; then
echo "$FREQUENCY not found in $DPM_SCLK"
exit 1
fi
# Set frequency
echo "Setting $FREQUENCY using id $SCLK_VALUE in $DPM_SCLK"
echo "$SCLK_VALUE" > "$DPM_SCLK"
# pp_dpm_mclk should get set automatically after pp_dpm_sclk is set
После выполнения этого сценария ЦП, GPU начинает работать над нормальными частотами, и Ubuntu переключается на режим 'On-AC', а также индикатор питания включает
ПРИМЕЧАНИЕ: Иногда сценарий выше выполняет, но не устанавливает те значения - Выходить из системы и вход в систему помогают в этой ситуации.
Мое обходное решение для того, чтобы не взимать за helios 500 и manjaro:
Linux XXX 5.2.0-1-MANJARO #1 SMP PREEMPT Sat Jun 22 23:22:07 UTC 2019 x86_64 GNU/Linux
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
После этих трех команд ведомая зарядка начинает светиться, и ОС знают, что сетевой адаптер включается.
Я надеюсь, что это поможет кому-то.