Исправление треска звука в играх Steam на Linux

Вы установили Steam и игры под Linux, наслаждались ими, но при запуске любимой игры услышали раздражающий треск. Такая проблема возникает при запуске Windows-игр через Proton/Steam Play или нативных игр — звук воспроизводится с щелчками и искажениями.
Источник чаще всего — некорректные параметры в конфигурации PulseAudio. Это может случиться в любой дистрибутиве. К счастью, решение простое: небольшая правка конфигов PulseAudio и перезапуск демона.
Также полезно: запись системного звука в Linux — отдельная задача, не связанная напрямую с треском, но важная для диагностики.
Тонкая настройка демона PulseAudio
Нам нужно отредактировать конфигурационный файл демона. Откройте терминал и выполните редактор с правами администратора:
sudo nano /etc/pulse/daemon.conf
Найдите параметры default-fragments и default-fragment-size-msec. Если их нет — добавьте. Для начала установите такие значения:
default-fragments = 2
default-fragment-size-msec = 4Эти параметры делят общий буфер устройства на несколько фрагментов. Иногда уменьшение числа фрагментов и их размера помогает избежать артефактов при стриминге аудиопотока к звуковому устройству.

Сохраните файл и перезапустите PulseAudio, чтобы изменения вступили в силу:
pulseaudio -kТонкая настройка сервера звука
Теперь отредактируем файл, который определяет, как запускается PulseAudio:
sudo nano /etc/pulse/default.pa
Найдите блок, отвечающий за автоматическую загрузку модулей через udev. Он выглядит примерно так:
### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect
.else
### Use the static hardware detection module (for systems that lack udev support)
load-module module-detect
.endifИзмените строку загрузки модуля udev, добавив tsched=0 в конце:
### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect tsched=0
.else
### Use the static hardware detection module (for systems that lack udev support)
load-module module-detect
.endif
Сохраните изменения и снова перезапустите PulseAudio:
pulseaudio -k
После перезапуска проверьте звук в проблемной игре.
Устранение неполадок
Если проблема исчезла — отлично. Если улучшилось, но треск остался, откройте /etc/pulse/daemon.conf и постепенно увеличивайте значения default-fragments и default-fragment-size-msec. Попробуйте пары значений, например: 3 и 5, затем 4 и 8. Повышайте аккуратно и тестируйте каждый шаг.
Если после правок стало хуже, попробуйте уменьшать значения и верните tsched в конфигурации default.pa обратно в 1 (или удалите параметр) — это включает таймерное планирование, которое на современных устройствах даёт лучшую стабильность.
Если изменения вообще не помогают, откатите конфигурации к исходному состоянию. В этом случае источник треска может быть в драйверах или самом ядре. Попробуйте:
- проверить доступные версии ядра в вашем дистрибутиве;
- установить альтернативное ядро (пример: Liquorix) или обновить существующее;
- поискать обновления для звукового драйвера или прошивки устройства.
Иногда помогает переключение между ALSA и PulseAudio-настройками или тестирование с PipeWire (новая замена PulseAudio в некоторых дистрибутивах).
Драйверы, буферы и планирование — краткая модель
Ключевые понятия в двух строках:
- Фрагменты (fragments) и их размер — как система разбивает большой звуковой буфер на части; размер и количество фрагментов влияют на задержку и устойчивость потока.
- tsched — флаг планировщика: 1 включает таймерное планирование (timer-based), 0 заставляет PulseAudio полагаться на драйвер. Разные аудиокарты и драйверы дают точную или неточную информацию о тайминге.
Если драйвер возвращает точный тайминг, tsched=1 обычно лучше. Если драйвер плохой — tsched=0 часто устраняет треск.
Быстрая методика — пошаговый чеклист
- Закройте игру и любые звуковые приложения.
- Сделайте бэкап файлов конфигурации:
sudo cp /etc/pulse/daemon.conf /etc/pulse/daemon.conf.bak
sudo cp /etc/pulse/default.pa /etc/pulse/default.pa.bak- Откройте /etc/pulse/daemon.conf и установите:
default-fragments = 2
default-fragment-size-msec = 4- Откройте /etc/pulse/default.pa и добавьте tsched=0 к load-module module-udev-detect.
- Перезапустите PulseAudio: pulseaudio -k и попробуйте игру.
- Если треск остался — постепенно меняйте значения фрагментов, тестируя после каждого изменения.
- Если всё ухудшилось — восстановите бэкап и пробуйте сменить ядро/драйвер.
Критерии приёмки:
- треск и щелчки отсутствуют в течение 10 минут активного игрового теста;
- звук остаётся синхронизированным и без пропусков при смене сцен/эффектов.
Роль-based чеклист (игрок / системный администратор)
Для игрока:
- Сделать бэкап конфигов.
- Сменить параметры, перезапустить PulseAudio.
- Проверить изменение в игре, документировать значения.
Для администратора / энтузиаста:
- Провести тест с разными ядрами/драйверами.
- Проверить логи ядра (dmesg) на сообщения о звуковом устройстве.
- Предложить пользователю профиль конфигурации, вернуть дефолт при неудаче.
Мини-методология тестирования
- Измерьте поведение: запустите игру 5 минут с экспонируемой сценой, где раньше был треск.
- Изменяйте один параметр за раз (односторонние изменения).
- Тестируйте после каждого изменения и фиксируйте результат.
- Возвращайтесь к предыдущему рабочему набору при ухудшении.
Fact box — полезные факты
- PulseAudio с версии 0.9.11 использует таймерное планирование по умолчанию.
- Параметры для редактирования: default-fragments, default-fragment-size-msec, tsched.
- Обычные стартовые значения для теста: fragments=2, size=4 мс.
Decision flow для быстрого выбора
flowchart TD
A[Появился треск в игре] --> B{Используете PulseAudio?}
B -- Нет --> Z[Проверьте ALSA / PipeWire]
B -- Да --> C[Сделайте бэкап конфига]
C --> D[Установите fragments=2 size=4 и tsched=0]
D --> E[Перезапустите pulseaudio -k]
E --> F{Треск исчез?}
F -- Да --> G[Оставьте настройки, задокументируйте]
F -- Нет --> H[Пробуйте увеличить fragments/size]
H --> I{Улучшилось?}
I -- Да --> G
I -- Нет --> J[Верните конфиg, попробуйте tsched=1 или смену ядра/драйвера]
J --> K[Если не помогает — ищите аппаратную проблему]1‑строчный глоссарий
- PulseAudio — демоническая звуковая подсистема, управляющая микшированием и маршрутизацией аудио в Linux.
- udev — подсистема ядра для управления устройствами.
- tsched — флаг планирования таймера в PulseAudio (0 или 1).
- Fragment — часть буфера аудиоустройства, влияет на задержку и стабильность.
Когда это не помогает
- Если после всех корректировок проблема остаётся, источник может быть аппаратным (коррумпированный аудиочип, проблема в USB-ЦАП) или связан с конкретным драйвером в ядре.
- Попробуйте подключить другое устройство (наушники/USB-Звуковая карта) для изоляции проблемы.
Краткое резюме
- Измените default-fragments и default-fragment-size-msec в /etc/pulse/daemon.conf.
- Добавьте tsched=0 к module-udev-detect в /etc/pulse/default.pa.
- Перезапустите PulseAudio (pulseaudio -k).
- Если нужно — итеративно меняйте значения, тестируйте и делайте бэкапы.
Если всё сделано, а треск не ушёл — изучите драйверы и ядро или переключитесь на альтернативные звуковые решения (PipeWire, другое ядро).
Важно: всегда сохраняйте резервные копии конфигураций перед правками.
Похожие материалы
Как увидеть устройства, вошедшие в ваш аккаунт Facebook
Приоритет в ленте Facebook — как ставить See First
Убрать уведомления Java Update в Windows и браузерах
Как загрузить VirtualBox с USB-накопителя
Исправить неверный IP в WordPress