From fd5ff9658b1c9e76460ddd844e1f48e245b9b6b2 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Fri, 3 Jul 2026 00:36:02 +0600 Subject: [PATCH] [2026-07-03] eagle: family/how-to/htpc-system.md --- family/how-to/htpc-system.md | 73 +++++++++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 1 deletion(-) diff --git a/family/how-to/htpc-system.md b/family/how-to/htpc-system.md index d364ab39..fa0b61d3 100644 --- a/family/how-to/htpc-system.md +++ b/family/how-to/htpc-system.md @@ -116,7 +116,7 @@ speaker-test -t sine -f 440 -c 2 ## Автосон / Sleep management -### Текущее состояние (2026-05-23) +### Текущее состояние (2026-07-03) Sleep управляется `htpc-sleep-guard` — Python-скрипт + systemd-сервис. **PowerDevil не используется для сна** — HTPC запущен в gamescope/Steam session, где PowerDevil не детектирует idle. Guard сам вызывает `systemctl suspend`. @@ -172,6 +172,73 @@ rm /tmp/rsync-active Guard проверяет файл каждые 60 секунд. Сервис: `systemctl --user status htpc-sleep-guard`. +### Проблема: мгновенное пробуждение после сна (diagnosed 2026-07-03) + +**Симптом:** HTPC уходит в сон, но просыпается через ~8 секунд. + +**Корневая причина:** несколько устройств имеют `enabled` wakeup в `/proc/acpi/wakeup`. Сразу после перехода в S3 одно из них генерирует wakeup event. + +**Wakeup-устройства (`/proc/acpi/wakeup`):** + +| Устройство | ACPI ID | Статус | Что это | +|---|---|---|---| +| **XHC** | 00:14.0 | **enabled** | USB 3.0 xHCI Controller (весь USB) | +| **GLAN** | 00:1f.6 | **enabled** | Ethernet I219-V (Wake-on-LAN) | +| **RP09** | 00:1d.0 | **enabled** | PCIe Root Port #9 | +| **PEG0** | 00:01.0 | **enabled** | PCIe x16 слот (видеокарта AMD RX 570) | +| USB 1-4 | 1-4 | enabled | 2.4G Wireless Keyboard | +| alarmtimer | - | enabled | ACPI программный таймер | +| LNXPWRBN | - | enabled | Кнопка питания | +| PNP0C0C | - | enabled | ACPI кнопка сна | + +**Самый вероятный виновник — XHC (USB-контроллер).** На ASUS B250G с подключёнными USB-девайсами (8BitDo донглы, клавиатура 2.4G, Xbox 360 Wireless Adapter) USB-контроллер может генерировать wakeup из-за электрического шума на шине. + +**Диагностика:** +```bash +# Проверить текущие wakeup-устройства +cat /proc/acpi/wakeup + +# Проверить журнал пробуждений +journalctl -b-0 | grep -iE "suspend|resume|PM:" | tail -20 + +# Временное отключение wakeup для USB-контроллера +echo XHC > /proc/acpi/wakeup + +# Временное отключение wakeup для сетевой карты +echo GLAN > /proc/acpi/wakeup + +# Проверить какие USB-девайсы имеют wakeup +for dev in /sys/bus/usb/devices/*/power/wakeup; do + enabled=$(cat $dev 2>/dev/null) + if [ "$enabled" = "enabled" ]; then + echo "$(dirname $dev) -> $(cat $(dirname $dev)/product 2>/dev/null || echo unknown)" + fi +done +``` + +**План исправления (не выполнено):** +1. ✅ Диагностика проведена — причины идентифицированы +2. [ ] Отключить XHC и/или GLAN wakeup через `/proc/acpi/wakeup` и проверить, исчезла ли проблема +3. [ ] Если временное отключение помогло — настроить постоянное отключение через `systemd-sleep` hook (скрипт в `/usr/lib/systemd/system-sleep/`) + +**Постоянное отключение (когда будет tested):** +Создать `systemd-sleep hook`: +```bash +# Создать скрипт на HTPC +cat | ssh bazzite@192.168.1.86 'sudo tee /usr/lib/systemd/system-sleep/disable-wakeup.sh' +#!/bin/bash +case "$1" in + pre) + # Отключаем wakeup USB и GLAN перед сном + echo XHC > /proc/acpi/wakeup + echo GLAN > /proc/acpi/wakeup + ;; +esac + +# Сделать исполняемым +ssh bazzite@192.168.1.86 'sudo chmod +x /usr/lib/systemd/system-sleep/disable-wakeup.sh' +``` + ### Разбудить/усыпить вручную ```bash @@ -187,6 +254,10 @@ systemd-inhibit --list # Статус guard systemctl status htpc-sleep-guard journalctl -u htpc-sleep-guard -n 50 --no-pager + +# Диагностика пробуждения +journalctl -b-0 | grep -iE "suspend|resume|PM:|wake" | tail -20 +cat /proc/acpi/wakeup ``` ## SMB / Сетевые ресурсы