Files
obsidian-vault/family/how-to/htpc-system.md
T

5.0 KiB

HTPC — Система (Bazzite Linux)

Железо

  • CPU: Intel Core i7-6800K
  • RAM: 32 GB
  • GPU: AMD Radeon RX 570
  • Подключение к TV: HDMI
  • TV: LG webOS (192.168.1.75)
  • HTPC IP: 192.168.1.86

ОС

  • Bazzite 44 (Fedora-based, immutable OSTree)
  • Вариант: bazzite-deck (Steam Gaming Mode / gamescope)
  • Пользователь: bazzite
  • Hostname: htpc
  • DNS: резолвится как htpc через роутер (192.168.1.1), см. router-bishkek-asus

Режимы запуска

  • Gaming Mode (gamescope-session-steam) — автологин по умолчанию, Steam Big Picture
  • KDE Desktop — переключение из меню Steam → "Switch to Desktop"

Автологин

Файл: /etc/gdm/custom.conf

[daemon]
AutomaticLoginEnable=True
AutomaticLogin=bazzite
Session=gamescope-session-steam

Переменные окружения

/etc/environment:

GAMESCOPE_DISABLE_HDR=1

~/.config/environment.d/gamescope.conf:

GAMESCOPE_WIDTH=1920
GAMESCOPE_HEIGHT=1080
GAMESCOPE_REFRESH=60

Разрешение

  • 1080p @ 60Hz — рабочий режим
  • 4K вызывает AMD HDA audio clock bug: пиксельный клок ~594 MHz → HDMI audio 880 Hz вместо 440 Hz

Аудио

Проблема

LG webOS TV по HDMI принимает только LPCM 2ch.
Поддерживаемые частоты: 32000 / 44100 / 48000 / 96000 / 192000 Hz, 16/20/24 bit.

AMD HDA audio clock bug (RX 570 + 4K@60Hz):
При pixel clock ~594 MHz (4K@60Hz) AMD HDMI audio контроллер выдаёт неправильный clock — тон 440 Hz воспроизводится как 880 Hz (в 2 раза выше). Решение — переключиться на 1080p@60Hz (pixel clock ~148 MHz, bug не воспроизводится).

Решение: зафиксировать 1080p

~/.config/environment.d/gamescope.conf:

GAMESCOPE_WIDTH=1920
GAMESCOPE_HEIGHT=1080
GAMESCOPE_REFRESH=60

Решение: PipeWire/WirePlumber конфиги

~/.config/wireplumber/wireplumber.conf.d/fix-hdmi.conf:

monitor.alsa.rules = [
  {
    matches = [{ node.name = "~alsa_output.pci*hdmi*" }]
    actions = {
      update-props = {
        audio.format = "S16LE"
        audio.rate = 48000
        session.suspend-timeout-seconds = 0
      }
    }
  }
]

~/.config/pipewire/pipewire.conf.d/99-hdmi-fix.conf:

context.properties = {
  default.clock.allowed-rates = [ 44100 48000 ]
}

Проверка

# Посмотреть активный sink и его параметры:
pactl list sinks | grep -A20 "HDMI"

# Тест тона 440 Hz — должен звучать как ля первой октавы:
speaker-test -t sine -f 440 -c 2

Автосон / Sleep management

Текущее состояние (2026-05-15)

Sleep работает штатно — HTPC засыпает по таймеру KDE PowerDevil.

Разбудить/усыпить вручную

# Усыпить
echo bazzite | sudo -S systemctl suspend

# Заблокировать автосон (если нужно)
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

# Снять маску (восстановить автосон)
sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target

Настройки KDE PowerDevil

~/.config/powermanagementprofilesrc:

[AC][SuspendSession]
idleTime=1800000   # 30 минут (в мс)
suspendType=1      # suspend

⚠️ Проблема: реальный таймаут = 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

OSTree / Обновления

  • /usr/local/bin слетает при rpm-ostree upgrade (новый /usr overlay)
  • Бинари держать в /home/bazzite/ или пересобирать после обновлений
  • Проверить после апдейта: systemctl status magic4pc

KDE Xwayland настройки

~/.config/kwinrc:

[Xwayland]
EavesdropMode=2
XwaylandEisNoPrompt=true

XwaylandEisNoPrompt=true — отключает диалог разрешения XTest (нужен для magic4pc/xdotool).