112 lines
3.3 KiB
Markdown
112 lines
3.3 KiB
Markdown
# 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`
|
|
```ini
|
|
[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`:
|
|
```lua
|
|
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`:
|
|
```conf
|
|
context.properties = {
|
|
default.clock.allowed-rates = [ 44100 48000 ]
|
|
}
|
|
```
|
|
|
|
### Проверка
|
|
```bash
|
|
# Посмотреть активный sink и его параметры:
|
|
pactl list sinks | grep -A20 "HDMI"
|
|
|
|
# Тест тона 440 Hz — должен звучать как ля первой октавы:
|
|
speaker-test -t sine -f 440 -c 2
|
|
```
|
|
|
|
## OSTree / Обновления
|
|
- `/usr/local/bin` слетает при `rpm-ostree` upgrade (новый `/usr` overlay)
|
|
- Бинари держать в `/home/bazzite/` или пересобирать после обновлений
|
|
- Проверить после апдейта: `systemctl status magic4pc`
|
|
|
|
## KDE Xwayland настройки
|
|
`~/.config/kwinrc`:
|
|
```ini
|
|
[Xwayland]
|
|
EavesdropMode=2
|
|
XwaylandEisNoPrompt=true
|
|
```
|
|
`XwaylandEisNoPrompt=true` — отключает диалог разрешения XTest (нужен для magic4pc/xdotool).
|