Monday, May 18, 2026

Как я чинила спящий режим на hp probook 430-G3: виды режимов сна и управление suspend через интерфейс ядра линукс

 Я уже писала про этот ноут ― там была проблема со спящим режимом на slackware 15.0. После перехода в S2RAM он сразу просыпался, а если выбрать s2ide, то, наоборот, невозможно было его разбудить. Я особо не дёргалась по этому поводу, потому в простое он нагревается где-то до 30-34 градусов, вся периферия уходит в сон, особенно после настройки через powertop, ну и я, честно говоря, была почти уверена, что проблема в прошивке - типа кривых таблиц acpi, - потому что не работает Fn и кнопки отключения wifi и звука. Но всё равно меня подбешивало, поэтому как-то на досуге я решила выяснить, в чем на самом деле проблема. В итоге я выяснила, но спойлерить не буду, а то получится не так захватывающе, как это было для меня.

    1. ВИДЫ РЕЖИМОВ СНА В БОЛЕЕ-МЕНЕЕ СОВРЕМЕННЫХ НОУТБУКАХ

 
S0 (connected suspend/modern suspend/s2idle) ― это как в планшетах и смартфонах: поддерживается wi-fi соединение, фоновые обновления почты и приложений даже при закрытой крышке.

S1 (standby/power on suspend) ― состояние сна в acpi, когда CPU прекращает выполнять команды, останавливает тактовые генераторы и сбрасывает кэши, но питание на компоненты, включая RAM, подаётся.

S2 (standby/shallow) ― промежуточный, встречается редко. Напряжение может подаваться на некоторые компоненты материнской платы.

S3 (suspend to RAM) - все компоненты обесточены, кроме RAM, где сохраняется состояние системы.

S4 ― гибернация.

    2. ИНТЕРФЕЙС ЯДРА ДЛЯ УПРАВЛЕНИЯ СПЯЩИМ РЕЖИМОМ ИЗ ПРОСТРАНСТВА ПОЛЬЗОВАТЕЛЯ
    оригинал:    https://www.kernel.org/doc/html/v4.18/admin-guide/pm/sleep-states.html 


Это каталог /sys/power

    ■ Значение файлов и настройка:


state ― содержит поддерживаемые ядром состояния сна. У меня это были disk (гибернация) и freeze (s2idle). Третье значение mem интерпретируется в зависимости от содержания файла mem_sleep.

mem_sleep ― содержит доступные режимы сна и позволяет выбрать вариант, который будет ассоциирован с параметром mem из файла /sys/power/state. Ассоциированный параметр будет взят в квадратные скобки. Если ядро не поддерживает сон, этого файла не будет. У меня там было два варианта: deep (s2RAM) и s2idle. На некоторых ACPI-based системах, которые берут информацию из таблиц ACPI, по умолчанию стоит s2idle, даже если поддерживается s2RAM, но обычно последний стоит по умолчанию. Чтобы выставить параметр по умолчанию, можно либо либо использовать 'echo deep > /sys/power/mem_sleep', либо сделать это через параметр ядра "mem_sleep_default", передав его загрузчику.

    ■ Два способа перевести машину в  S2idle


I   echo freeze|sudo tee /sys/power/state

II  echo s2idle|sudo tee /sys/power/mem_sleep
    echo mem|sudo tee /sys/power/state

    ■ Единственный способ перевести в S2RAM 

     echo deep|sudo tee /sys/power/mem_sleep
     echo mem|sudo tee /sys/power/state


Собственно, теперь я так и перевожу ноут в сон.

    3. ПОЧЕМУ НОУБУК САМОПРОИЗВОЛЬНО ВЫХОДИТ ИЗ СНА

Первое, что выдаст вам гугл по этому поводу, файл /proc/acpi/wakeup. Типа надо убрать оттуда лишнее, тогда всё заработает. Надо смотреть на enabled. Это если не смотреть специфичные для слаки решения. На LQ я нашла совет поменять elilo на grub и поставить новое ядро. Короче, теперь у меня grub и ядро 6.12.82, но проблему это не решило. 

Ну вот мой вывод:

bash-5.1# cat /proc/acpi/wakeup |grep en

XHC      S0    *enabled   pci:0000:00:14.0
RP05      S4    *enabled   pci:0000:00:1c.0
PXSX      S4    *enabled   pci:0000:01:00.0
RP06      S4    *enabled   pci:0000:00:1c.5
RP09      S4    *enabled   pci:0000:00:1d.0

Как видите, S3 здесь вообще не фигурирует, а для S0 стоит XHC, это extensible host controller, который управляет usb 3.0/3.1. Между тем ноут просыпается из обоих режимов только по кнопке питания, дёрганье мыши, нажатия на тачпад или встроенную клаву на него не действуют.

Параметр wakeonlan у меня отключен в прошивке, /sys/class/net/wlan0/device/power/wakeup показывает "disable". Тем не менее, я пыталась отключать сеть и ноут действительно переходил в S3, но только один раз. В следующий раз он опять мигал индикатором батареи и просыпался примерно через минуту. Ну и, собственно, в S3 он, похоже, не переходил: экран гас, но кнопки продолжали светиться как обычно, тогда как в s3 кнопка вайфай становится оранжевой, а power начинает мигать.

В качестве GUI у меня fluxbox и windowmaker, то есть никаких своих менеджеров питания, которые сбрасывали бы настройки elogind, нет. В сон я переходила командой loginctl suspend

    4. ФОКУСЫ ПИДОРСКОГО elogind

Этот шлак был у меня сконфигурирован вроде правильно в файле /etc/elogind/logind.cong, но оказалось, что у него есть один нюанс - ингибиторы. Это программы, которые не дают машине перейти в сон, пока что-то там не завершат. Вот команда для просмотра ингибиторов, если у вас нет systemd: 

bash-5.1# dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager.ListInhibitors

А вот её вывод в первый раз: 

      struct {
         string "sleep"
         string "NetworkManager"
         string "NetworkManager needs to turn off networks"
         string "delay"
         uint32 0
         uint32 1129
      }
      struct {
         string "sleep"
         string "ModemManager"
         string "ModemManager needs to reset devices"
         string "delay"
         uint32 0
         uint32 1216
      }

Я остановила NM, и ноут заснул. Но сделав это во второй раз, получила хрен на блюде. Посмотрев ингибиторы, я увидела, что там добавился ещё Upower. Если убить его командой kill, то ноут опять засыпал,  но в третий раз опять что-то вылезало. Короче, мне надоело это блядство и я просто отключила нахрен elogind, сняв бит x с его скрипта в /etc/rc.d. Кроме того, он влияет на pam ― у меня после одного из обновлений это стало проявляться тормозами при авторизации пользователей как в консоли, так и в терминале GUI. Я обнаружила его, когда смотрела лог авторизации (в слаке это /var/log/secure). Короче, надо ещё сделать так:

bash-5.1# grep elogin /etc/pam.d/*

и закомментировать строчки, содержащие elogind, в файлах, которые вы используете.
Также я установила nologind из репозитория Salix OS, ну типа чтобы нормально работал powerkit, хотя я не уверена, что он был нужен, но мне надоело видеть ошибки и возиться лишний раз. Seatd я ставить не стала, потому что нахрен он нужен, когда в системе два пользователя, и оба ― ты сам.

    ЭПИЛОГ: теперь я выключаю и перезагружаю ноут командой shutdown, а в сон перевожу через описанный выше интерфейс ядра. У меня ничего не тормозит и всё работает, но я опять покосилась в сторону freebsd ― скорее рефлекторно, ведь там со спящим режимом всё ещё хуже и, кроме того, обороты вентилятора хрен настроишь, если модуль wmi не поддерживает твоё железо. Но знаете, я обнаружила, что утилиту ataidle, которая останавливала парковку головок hdd, похоронили, добавив этот функционал в стандартный camcontrol. В общем, если они разберутся с вентиляторами и саспендом и я на тот момент ещё буду жива, то с удовольствием пошлю линукс на три буквы. 



Saturday, February 14, 2026

Отзыв об HP Probook 430 G3, нюансы его прошивки, управление частотой процессора в данном ноуте и вообще в ядре линукс, начиная с 5-й версии.

 Предыстория

У меня перестали реагировать на нажатие некоторые клавиши встроенной клавиатуры на ноуте Asus K-50ip. Оказалось, это частично крякнул мультиконтроллер. Можно было заменить за 3 рубля, но я не стала, потому что там всратый чипсет от nvidia, куда интегрированы северный и южный мосты, а также видеокарта Geforce. Разумеется, всё это греется как утюг и, кроме того, прибито к материнской плате, то есть заменить его можно только с ней. В общем, я решила, что чинить его экономически нецелесообразно.

Пришлось рыскать в поиске вменяемой комиссионки, так как покупать новый ноут сейчас в РФ означает как минимум заплатить неадекватные качеству деньнги, а чаще при этом еще и получить говняное поделие. Подержанный HP, Dell или Acer всяко лучше, чем новый ирбис, прости господи, или китайский шлак. Про подержанный Asus я такого не скажу, потому что там чаще всего плохая система охлаждения, хотя полагаю, что и у них есть удачные модели.


Мои требования, нюансы режима турбо и обновления прошивки

Нашла я один магазин у черта на рогах с нормальными отзывами и каким-то выбором. Мне нужен был ноут на intel без дискретной видеокарты и режима турбо, чтобы не грелся и не выебывался. Просто у моего друга Санька был ноут с турбо - новый HP Elitebook (в 2014-15 году стоил около 100 000). Этот турборежим невозможно было отключить в прошивке: галка была, но если ее поставить, система не загружалась. А когда он был включен, питания от сети не хватало и использовалась батарея. Через пару месяцев после окончания гарантии батарея вздулась. Саня купил новую и, пошарившись в интернетах, решил обновить прошивку, так как в новой версии было умное управление аккумулятором: он не заряжался выше 80% и не разряжался ниже 20. После обновления он получил умное управление зарядом, а также проблему с прокруткой у тачпада (которая была только под линуксом, а не в винде - у него был дуалбут) и, самое хреновое, кулер перестал увеличивать обороты, в результате процессор начал греться в обеих ОС. На сайте HP он узнал, что раньше обновления можно было откатить, но не в этот раз. Техподдержке HP уже кто-то задал такой вопрос и был послан на три буквы. В общем, когда увидите совет обновить прошивку, подумайте десять раз.

Характеристики ноутбука

В итоге я выбрала hp probook, хотя диагональ у него 13,3", всё остальное идеально: проц Pentium 4405U без турбо - 2 ядра/4 потока; 8 ГБ DDR4; встроенная видяха, есть ethernet, три порта usb; SSD на 256 ГБ с нормальным смартом, родная батарея с износом 20%. Заряд держит больше 3-x часов (благодаря ssd, маленькому экрану и тому, что там вентилятор периодически отключается); заряжается быстро - т.е. состояние элементов питания хорошее. В отзывах про него часто поливают дерьмом матрицу, но меня она устроила: яркая и контрастная, цветопередача с уклоном в зелёный (а не в синий или фиолетовый). На матрице несколько тонких полос - отпечатков от клавы, обусловленных тем, что в более-менее новых ноутах нет зазора между экраном и клавой и при регулярном закрытии крышки стирается антибликовое покрытие. Замена матрицы такого размера у нас стоит около 6 косарей (это дёшево), но сервисник сказал, что смысла особо нет, потому что она опять протрётся. 2018 год выпуска, корпоративный сегмент.

Также я видела в отзывах нарекания на работу тачпада, но у меня всё норм. Тачпад, как и клава, удобный и не глючит. 

Вопросы типа есть ли слот для памяти и винта не стоят - там даже процессор BGA.

Нюансы прошивки

Теперь, собственно, о нюансах - они касаются управления частотой процессора и спящего режима. Сразу скажу, что это фокусы прошивки, которую, судя по показаниям /sys/devices/virtual/dmi/id/bios_date, обновили в 2024 году.

Моя операционная система Slackware64 15.0. Клавиши, которые в сочетании с Fn регулируют яркость экрана, громкость и всё такое, на линуксе не работают, да и хрен с ними. Яркость я выставила в rc.local, прописав туда echo 800 > /sys/class/backlight/intel_backlight/brightness. 

Проблема со спящим режимом: если в прошивке поставить галку на пункте, который позволяет процессору снижать частоту, то ноут нормально засыпает только при закрытой крышке (напоминаю, что от постоянного хлопанья крышкой стирается покрытие на матрице, а также перетирается шлейф матрицы). Если крышку не закрыть, то через несколько секунд после засыпания один раз мигает индикатор батареи, ноут выходит из сна и при этом ещё перезагружается. Если галку снять, то процессор будет постоянно молотить на самой высокой частоте (кроме простоя), зато после команды loginctl suspend ноут спит с открытой крышкой. При этом ещё надо снять галку с Deep sleep и Extended idle power states.

Смысл некоторых пунктов прошивки (они описываются в руководстве:  https://kaas.hpcloud.hp.com/pdf-public/pdf_12904670_en-US-1.pdf  Наывается HP PC Commercial BIOS (UEFI) Setup Administration guide)

Меню Advanced, подменю Power Management

1.  Runtime power management - галка, которую надо поставить, чтобы можно было управлять частотой ЦПУ. Без неё он постоянно работает на максимальной. Но если у вас уже выставлен режим powersave через операционную систему, снятие галки ничего не изменит и suspend не получится. 
2.  Extended idle power states - позволяет процессору переходить в более глубокие состояния сна в простое.
3.  Power Control - при поставленной галке ноутбук поддерживает приложения для управления питанием типа APM+ - это прикол корпоративного сегмента, дома она вряд ли нужна.

Настройка частоты процессора в ядре линукс, начиная с 5-й версии. 

Мне надо, чтобы меньше грелось, но при этом не тормозило. Раньше она настраивалась через драйвер acpi-cpufreq или intel_pstate и всё, но теперь, чтобы снизить температуру, сначала надо выставить это, если там стоит "menu" вместо "ladder":

1. echo 'ladder' > /sys/devices/system/cpu/cpuidle/current_governor

2. echo 'fair_share' > /sys/devices/virtual/thermal/thermal_zone#/policy

Здесь # - номер зоны, надо выставить для всех. По умолчанию там step_wise.

Я вычитала это  на LWN... А, нет,  просто заметила, что как-то сильно греется, несмотря на настроенный cpufreq, и посмотрела dmesg. Там обнаружились governor menu и governor step_wise. После этого я нашла их по названию в системе. Капец.  

Дальше уже настройки intelpstate или acpicpufreq (у меня на этом ноуте первое). В cpufreq я пользуюсь регулятором conservative. В intelpstate надо поменять две настройки:

3. echo 'powersave' > /sys/devices/system/cpu/cpufreq/policy#/scaling_governor

После этого можно будет изменить вторую:

4. echo 'balance_power' > /sys/devices/system/cpu/cpufreq/policy#/energy_performance_preference


Честно говоря, я не читала, как работают разные настройки, но  здесь их пять: default,  performance,  balance_performance,  balance_power,  power. Это сильно напоминает cpufreq, и balance_power выглядит как аналог conservative.

Вот показания датчиков без нагрузки и снагрузкой. В комнате 27-28 ℃.



 Итог: 
ноут офигенный, аппаратная часть идеальная, но прошивка малость ёбнутая, хотя бывают случаи похуже. Впрочем, HP и Dell вообще славятся всратыми прошивками.

UPD: Если выставить в прошивке управление батареей "Let HP manage your battery health", то эта гнида будет считать за цикл зарядки, если разрядить ее до 80% и зарядить до 100. Если оставить  "maximize performance", то счетчик не будет увеличиваться, как и должно быть. В общем, надо выбирать или "battery health", или "performance", если не хочешь, чтобы батарея накрылась через месяц. Но health заряжает только до 80%, то есть если его активировать, то не надо подключать ноут к сети, если там больше 80% заряда, иначе контроллер уйдет в защиту. Кто-то держит на 80% постоянно подключенным к сети, я разряжаю до 89% и заряжаю каждый раз, а после использования отключаю. У меня телефонные аккумуляторы в таком режиме живут уже по 16 лет.

UPD2: Я решила проблему со сном, и виновата оказалась не прошивка, а пидорский elogind, который Алиен Боб притащил в систему, чтобы работало его дурацкое КДЕ. Если коротко, я сняла бит исполнения с этого куска дерьма в каталоге /etc/rc.d и закомментировала все строки с elogind в конфигах PAM. Теперь всё работает как часы, команды сна отдаю через интерфейс ядра. Кроме того, что починился suspend, исчезла пауза при авторизации пользователя в системе между вводом логина и пароля -  зря я грешила на pam.

Обновление прошивки на HP Elitebook 840 G5

 Нарыла свою старую статью о приключениях одного моего другана. На сайте HP очень распространена рекомендация обновить прошивку. Вот, почитайте, что после этого бывает.

У меня есть друг Санёк. Где-то в 2014-15 году он купил ноут фирмы HP: Elitebook 840 G5 с конфигурацией intel core i5-8250U, 4 ядра по 1.6 GHz с разгоном до 3.4 в режиме турбо. Он тогда стоил около 100 килорублей. Я помню, когда он его только купил, то рассказывал, что с выключенным turbo boost ноут не загружается. Вообще, когда я ещё сидела на винде, то много читала о том, что у HP проблемы с драйверами и прошивкой. Если у вас не винда, проблемы усугубляются, в чем Санёк убедился лично.

Собственно этот turbo boost и стал причиной всей свистопляски. Это интеловская технология: при выполнении задач, не расходующих процессор, он работает с базовой тактовой частотой, а при необходимости одно ядро разгоняется в случае Санька больше чем в 2 раза. Короче, через месяц после окончания гарантийного срока у Саниного ноута вздулась батарея. Оказалось, что он пользовался турбо, а в его старой прошивке не было "умного" управления АКБ - это когда она заряжается до 80% и разряжается до 20%. Режим турбо требует наличия батареи, так как блок питания ноутбука не рассчитан на такую мощность, и поэтому получается, что батарея постоянно слегка разряжается, потом автоматически начинает заряжаться и быстро дохнет из-за большого количества циклов зарядки. 

Купил Саня АКБ русско-китайского производства, вставил её, ноут заработал, но перед загрузкой системы прошивка каждый раз высирала сообщение о том, что "у вас левая батарея, это может повлечь ядерный взрыв и эпидемию чумы". Санька это сообщение разозлило, и он полез на форум HP. Оказалось, что там сидят дебилы типа как в ростелекоме на первой линии: им уже задали этот вопрос, и они ответили, что надо отключить уведомления в винде. Автор вопроса напомнил придуркам, что сообщение появляется до загрузки системы, после чего его просто проигнорили. Саня сказал, что они вообще если встречают вопрос, на который не могут ответить, то шлют на хуй без церемоний.

Тогда Санек решил проявить смелость и обновить прошивку. Нет, он не лох и не чайник, он системный архитектор. Просто никогда раньше не делал этого, решил попробовать (на свою ж...). Он решил делать это из Винды. У него дуалбут: искоробочная Виндос 10 и Генту. Виндой он пользуется только для игр, поэтому три года её не обновлял. Чтобы найти нужную прошивку, он обновил систему, и она затерла ему первичный загрузчик GRUB. Он признался, что у него долго горела жопа: сука, я же не устанавливал её, а только обновил! Так как он занимается этим не каждый день, ему пришлось читать документацию, как записать grub обратно, скачивать system rescue cd и все это делать. Протрахался около двух часов. Это было только начало. Но наконец все было сделано, и винда в опциональных обновлениях предложила ему обновить EFI.

После этой процедуры сообщение о батарее не исчезло, зато тачпад - Саня предпочитает его мыши - стал глючить, пролистывая две страницы вместо одной. Этот глюк проявлялся только в генту, но не в винде. Но это ещё не самое хреновое. Оказалось, что кулер на процессоре перестал разгоняться до полных оборотов. Естественно, чип стал греться как не в себя и в генту, и в винде. Саня решил откатить прошивку назад, но с версии, предшествующей его версии, откат стал невозможен. Он узнал об этом из документации на сайте HP, а не из сообщения, которое должно было его об этом предупредить перед обновлением. Кстати, он очень похвалил официальную документацию на их сайте: сказал, что там черт ногу сломает, хрен разберешься. Тогда он решил обновиться до следующей версии, которую нарыл на сайте. В общем, потрахавшись ещё, он обновился, и там, насколько я помню, как раз оказалось умное управление батареей. Ну хоть что-то.

Поимев секс, Санёк решил проблему с тачпадом, а с вентилятором ничего не вышло. Он попробовал thermald, но тот ему не помог, что в принципе логично - прошивка же не работает, что система может. В результате он просто выставил порог, выше которого частота не должна подниматься, и сидит теперь на обгрызанном процессоре.

Итак, в результате обновления прошивки Саня приобрел умное управление АКБ, которое увеличит срок службы последней, если пользоваться режимом турбо, без которого ноут не загружается. При этом у него перестал раскручиваться на полную мощность вентилятор. Сообщение о левой батарее не исчезло. Также он просрал десять дней своего времени и кучу нервов. Давать оценку результату я предоставлю читателям.