[2026-07-02] taiga-vault: family/how-to/htpc-system.md
This commit is contained in:
@@ -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 / Сетевые ресурсы
|
||||
|
||||
Reference in New Issue
Block a user