[2026-07-03] eagle: family/how-to/htpc-system.md

This commit is contained in:
Alexey Martemyanov
2026-07-03 00:36:02 +06:00
parent f15ae33928
commit fd5ff9658b
+72 -1
View File
@@ -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 / Сетевые ресурсы