[2026-05-23] htpc-system: обновлён sleep management (htpc-sleep-guard), добавлена заметка про SMB

This commit is contained in:
Alexey Martemyanov
2026-05-23 11:41:16 +06:00
parent f8717b314c
commit 18c07a9492
+45 -23
View File
@@ -98,37 +98,59 @@ speaker-test -t sine -f 440 -c 2
## Автосон / Sleep management
### Текущее состояние (2026-05-15)
Sleep работает штатно — HTPC засыпает по таймеру KDE PowerDevil.
### Текущее состояние (2026-05-23)
Sleep управляется `htpc-sleep-guard` — Python-скрипт + systemd-сервис.
**PowerDevil не используется для сна** — HTPC запущен в gamescope/Steam session, где PowerDevil не детектирует idle. Guard сам вызывает `systemctl suspend`.
### Сервисы
| Сервис | Статус | Роль |
|---|---|---|
| `htpc-sleep-guard` | **active/enabled** | актуальный guard |
| `transmission-sleep-guard` | disabled | старый, отключён (дублировал и держал ингибитор постоянно) |
### Логика guard
**Дневное окно (11:0023:00):**
- Торренты активны → держит systemd inhibitor (HTPC не спит)
- Торренты не активны → inhibitor не держится, machine idle
**Ночное окно (23:0011:00):**
- Guard отпускает ингибитор и вызывает `systemctl suspend`
- Если торренты были активны → ставит RTC wake-alarm на 11:00 (`rtcwake`)
- Если торренты не активны → будильник не ставится
### Скрипт и конфиг
Сервис: `/etc/systemd/system/htpc-sleep-guard.service`
Скрипт: путь в `ExecStart` сервиса (на HTPC, `~bazzite/`)
Патчи применённые 2026-05-23:
- **409 retry**: при HTTP 409 от Transmission обновляет `X-Transmission-Session-Id` и повторяет запрос
- **suspend trigger**: при переходе из "hold → release" вызывает `systemctl suspend` (без sudo, через polkit/logind)
### Разбудить/усыпить вручную
```bash
# Усыпить
echo bazzite | sudo -S systemctl suspend
# Усыпить немедленно
systemctl suspend
# Заблокировать автосон (если нужно)
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
# Пробудить через N секунд (RTC wake)
sudo rtcwake -m no -s 3600
# Снять маску (восстановить автосон)
sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
# Проверить ингибиторы
systemd-inhibit --list
# Статус guard
systemctl status htpc-sleep-guard
journalctl -u htpc-sleep-guard -n 50 --no-pager
```
### Настройки KDE PowerDevil
`~/.config/powermanagementprofilesrc`:
```ini
[AC][SuspendSession]
idleTime=1800000 # 30 минут (в мс)
suspendType=1 # suspend
```
## SMB / Сетевые ресурсы
### ⚠️ Проблема: реальный таймаут = 15 мин (не 30)
По журналу: HTPC засыпает ровно через **15 минут** после пробуждения, хотя KDE-конфиг говорит 30.
Источник suspend — `systemd-logind` по команде от KDE PowerDevil.
Источник 15-минутного таймаута **не найден** (требует дальнейшего расследования):
- `/etc/xdg/powermanagementprofilesrc` — нет `[AC][SuspendSession]` (не источник)
- HHD, Steam BPM sleep timer — не найдено
- PowerDevil запущен с 8 мая, конфиг изменён 14 мая — возможно читает кэш при старте сессии
- Кандидаты для проверки: старый `powerdevilrc` (мигрирован), Steam Gaming Mode sleep timer через dbus
`smb://htpc` — упоминается пользователем, но конфигурация **не задокументирована**.
Требует уточнения: что раздаётся, как настроено (Samba? systemd automount?).
## OSTree / Обновления
- `/usr/local/bin` слетает при `rpm-ostree` upgrade (новый `/usr` overlay)