[2026-05-08] htpc-system: expand audio section (AMD HDA bug, pipewire/wireplumber configs)

This commit is contained in:
Alexey Martemyanov
2026-05-08 00:54:50 +06:00
parent e083cd467c
commit f15d69e5b8
+48 -3
View File
@@ -45,10 +45,55 @@ GAMESCOPE_REFRESH=60
- 4K вызывает AMD HDA audio clock bug: пиксельный клок ~594 MHz → HDMI audio 880 Hz вместо 440 Hz
## Аудио
TV поддерживает только LPCM 2ch, 32000/44100/48000/96000/192000 Hz, 16/20/24 bit.
`~/.config/wireplumber/wireplumber.conf.d/fix-hdmi.conf` — S16LE, 48000 Hz, no suspend
`~/.config/pipewire/pipewire.conf.d/99-hdmi-fix.conf` — allowed-rates [44100, 48000]
### Проблема
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)