PulseAudio/Troubleshooting (Русский)

From ArchWiki
Jump to: navigation, search
Состояние перевода: На этой странице представлен перевод статьи PulseAudio/Troubleshooting. Дата последней синхронизации: 8 декабря 2017. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Смотрите основную статью PulseAudio (Русский).

Contents

Звук

Здесь Вы найдете некоторые подсказки по проблемам звука и почему Вы ничего не можете услышать.

Автоматический бесшумный режим

Автоматический бесшумный режим может быть включен изначально. Его можно легко отключить с помощью alsamixer.

Для подробностей смотрите http://superuser.com/questions/431079/how-to-disable-auto-mute-mode

Для сохранения текущих настроек, как опций по умолчанию, выполните от имени суперпользователя (root) alsactl store

Аудиоустройство с отключенным звуком

Если нет звука при использовании ALSA, попытайтесь включить звуковую карту. Чтобы сделать это, запустите alsamixer, и убедитесь, что каждый столбец имеет под ним зелёное значение 00 (можно переключать путём нажатия m):

$ alsamixer -c 0
Примечание: alsamixer не скажет Вам, какое устройство вывода установлено как значение по умолчанию. Одна из возможных причин отсутствия звука после установки состоит в том, что PulseAudio обнаруживает неправильное устройство вывода как значение по умолчанию. Установите pavucontrol и проверьте, существует ли какой-нибудь вывод на панели pavucontrol, например, при проигрывании файла .wav.

Нет звука, в то время как Master включен

В настройках с несколькими выходами (например, 'Наушники' и 'Динамики') использование обычного amixer для выключения канала Master может спровоцировать PulseAudio выключить звук и у активного выхода тоже. Но при включении звука совсем не обязательно, что включение канала Master включит и активный выход [1]. Для того чтобы избежать такой проблемы, у amixer необходимо установить переключатель устройств на 'pulse':

$ amixer -D pulse sset Master toggle

Это приведет к тому, что amixer будет отправлять запрос на включение/выключение звука к PulseAudio, вместо того, чтобы осуществлять это самостоятельно. Благодаря этому PulseAudio будет корректно включать звук канала Master и иных устройств вывода.

Приложение с отключенным звуком

Если у определенного приложения отключен звук, или он тихий, в то время как все остальные приложения в порядке. Это может произойти из-за индивидуальной настройки sink-input. Запустите воспроизведение звука с помощью данного приложения и выполните команду:

$ pacmd list-sink-inputs

Найдите и запишите index соответствия sink input.properties: application.name и application.process.binary, среди прочего, должны помочь здесь. Убедитесь, что установлены правильные настройки, в особенности значения muted и volume. Если у устройства вывода отключен звук, его можно включить:

$ pacmd set-sink-input-mute <index> false

Если нужна корректировка громкости, она может быть установлена на 100%:

$ pacmd set-sink-input-volume <index> 0x10000
Примечание: Если pacmd выдаёт 0 sink input(s), перепроверьте, что приложение воспроизводит звук. Если звук всё ещё отсутствует, проверьте, что другие приложения показываются как устройство вывода.

Настройка громкости не работает должным образом

Проверьте: /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common

Если при использовании alsamixer или amixer не происходит изменение уровня громкости, это может быть связано с увеличением числа инкрементов PulseAudio (65537, чтобы быть точным). Попытайтесь использовать большие значения при изменении громкости (например, amixer set Master 655+).

Громкость приложений меняется, когда регулируется Общая громкость

Это вызвано тем, что PulseAudio использует "плоскую регулировку громкости" (flat-volumes) по умолчанию, вместо относительной регулировки громкости, по сравнению с абсолютной общей регулировкой громкостью. Если это поведение вызывает неудобства, относительная громкость может быть включена путем отключения плоской громкости в файле настроек демона PulseAudio:

/etc/pulse/daemon.conf or ~/.config/pulse/daemon.conf
flat-volumes = no

и затем перезапустите PulseAudio выполнив:

$ pulseaudio -k
$ pulseaudio --start

Звук становится каждый раз громче, как только запускается новое приложение

По умолчанию, кажется, как будто изменение громкости в приложении меняет общую громкость системы, а не только соответствующего приложения. Следовательно, настройки громкости приложения при запуске заставляют системную громкость "прыгать".

Исправьте это путем отключения "плоской громкости", как продемонстрировано в предыдущем разделе. Когда Pulse перезагрузится через несколько секунд, приложения не будут иметь возможность изменять системную громкость, а вновь будут использовать только свои настройки.

Примечание: Ранее установленный и удаленный pulseaudio-equalizer может оставить настройки в ~/.config/pulse/default.pa или ~/.pulse/default.pa, которые также могут послужить причиной этой проблемы. Закомментируйте эти настройки, при необходимости.

На звуковой карте M-Audio Audiophile 2 496 звук только Mono

Добавьте следующее:

/etc/pulseaudio/default.pa
load-module module-alsa-sink sink_name=delta_out device=hw:M2496 format=s24le channels=10 channel_map=left,right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7
load-module module-alsa-source source_name=delta_in device=hw:M2496 format=s24le channels=12 channel_map=left,right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9
set-default-sink delta_out
set-default-source delta_in

Нет звука ниже определённого уровня

Известная проблема (не исправление): https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/223133

Если звук не играет, когда громкость PulseAudio регулируется ниже определенного уровня, попробуйте установить ignore_dB=1 в /etc/pulse/default.pa:

/etc/pulse/default.pa
load-module module-udev-detect ignore_dB=1

Однако следует помнить, что это может привести к ошибке предотвращения PulseAudio чтобы включить колонки, когда наушники или другие аудио устройства выключены.

Тихая громкость внутреннего микрофона

Если у вас низкая громкость звука, на внутреннем микрофоне ноутбука, попытайтесь установить:

/etc/pulse/default.pa
set-source-volume 1 300000

Клиенты изменяют основной выход звука (т. е. переход громкости к 100% после запущенного приложения)

Если изменение громкости в конкретных приложениях или просто запуск приложения изменяет громкость воспроизведения, это происходит скорее всего из-за режима "плоская громкость" в PulseAudio. Перед отключением, пользователи KDE должны попытаться снизить громкость их системы уведомлений в System Settings -> Application and System Notifications -> Manage Notifications ( Системные настройки -> приложения и уведомлений системы -> Управление Уведомлениями на вкладке Настройки воспроизведения), на что-то разумное. Тут не поможет изменение звуков событий, громкости в KMix или другом приложении громкости микшера. Это должно заставить режим "плоской громкости" работать как задумано, если он не работает, некоторые другие приложения, скорее всего, запрашивают громкость 100%, когда что-то воспроизводят. Если все остальное не помогает, вы можете попробовать отключить "плоскую громкость":

/etc/pulse/daemon.conf
flat-volumes = no

Затем перезапустите демон PulseAudio:

# pulseaudio -k
# pulseaudio --start

Нет звука после возобновления из спящего режима

Если звук обычно работает, но не работает после спящего режима, попытайтесь "перезагрузить" PulseAudio путем выполнения:

$ /usr/bin/pasuspender /bin/true

Это лучше, чем убить, и перезапустить его (pulseaudio -k сопровождаемый pulseaudio --start), потому что это уже не повредит запущенные приложения.

Если вышеупомянутое действие решает Вашу проблему, Вы можете автоматизировать это путем создания файла службы systemd.

1. Создайте шаблонный файл службы в /etc/systemd/system/resume-fix-pulseaudio@.service:

[Unit]
Description=Fix PulseAudio after resume from suspend
After=suspend.target

[Service]
User=%I
Type=oneshot
Environment="XDG_RUNTIME_DIR=/run/user/%U"
ExecStart=/usr/bin/pasuspender /bin/true

[Install]
WantedBy=suspend.target

2. Включите его для своей учетной записи пользователя

# systemctl enable resume-fix-pulseaudio@Здесь_ваше_имя_пользователя.service

3. Перезагрузите systemd

# systemctl --system daemon-reload

Каналы ALSA отключены, когда наушники подсоединены/отсоединены неправильно

Когда вы отключаете наушники или подключаете их, звук остается отключенным в alsamixer на неправильном канале, из-за его установки на 0%, вы сможете исправить это, открыв /etc/pulse/default.pa и закомментировав строку:

load-module module-switch-on-port-available

Микрофон

PulseAudio не обнаруживает микрофон

Определите номер карты и номер устройства Вашего микрофона:

 $ arecord -l
 **** List of CAPTURE Hardware Devices ****
 card 0: PCH [HDA Intel PCH], device 0: ALC269VC Analog [ALC269VC Analog]
 Subdevices: 1/1
 Subdevice #0: subdevice #0

В нотации hw:CARD,DEVICE, Вы определили вышеупомянутое устройство как hw:0,0.

Затем отредактируйте /etc/pulse/default.pa и вставьте строку load-module, определяющую Ваше устройство следующим образом:

  load-module module-alsa-source device=hw:0,0
  # the line above should be somewhere before the line below
 .ifexists module-udev-detect.so

Наконец, перезапустите pulseaudio для применения новых настроек:

  $ pulseaudio -k ; pulseaudio -D

Если все работает правильно, то Вы должны увидеть, что микрофон обнаруживается при выполнении pavucontrol (на вкладке Input Devices ).

PulseAudio использует неправильный микрофон

Если PulseAudio использует неправильный микрофон, и изменение Устройства ввода данных с Pavucontrol не помогло, обратитесь к alsamixer. Случается, что Pavucontrol не всегда устанавливает входной источник правильно.

$ alsamixer

Нажмите F6 и выберите свою звуковую карту, например, HDA Intel. Теперь нажмите F5 для отображения всех элементов. Попытайтесь найти элемент: Input Source. С помощью клавиш Вверх / Вниз вы можете изменить источник входного сигнала.

Проверьте, правильный ли микрофон используется для записи теперь.

Нет микрофона на ThinkPad T400/T500/T420

Выполните:

alsamixer -c 0

Включите звук и увеличьте громкость "Internal Mic" (внутреннего микрофона) до максимума.

После того, как вы увидите устройство с помощью:

arecord -l

Вам, возможно, все еще нужно будет скорректировать настройки. Микрофон и аудиоразъем являются дуплексными. Установите настройки внутреннего аудио pavucontrol в Analog Stereo Duplex (Аналоговому Дуплексу Стерео).

Нет микрофона на Acer Aspire One

Установите pavucontrol, выключите каналы микрофона и установите его левый канал на 0. Ссылка: http://getsatisfaction.com/jolicloud/topics/deaf_internal_mic_on_acer_aspire_one#reply_2108048

Статический шум в записи микрофона

Если мы получаем статический шум в записях Skype, gnome-sound-recorder, arecord, и т.д., то в этом случае частота дискретизации звуковой карты является неправильной. Именно поэтому в записях микрофона Linux существует статический шум. Для того чтобы это исправить, мы должны установить уровень выборки (sampling rate) в /etc/pulse/daemon.conf для звукового оборудования. В дополнение к руководству, приведенному ниже, начиная с PulseAudio 11 стало возможным установить параметр avoid-resampling = yes в daemon.conf для использования частоты дискретизации приложения без ресемплирования.

Определение звуковых карт в системе (1/5)

Для этого потребуется пакет alsa-utils и связанные с ним:

$ arecord --list-devices

**** List of CAPTURE Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC888 Analog [ALC888 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 2: ALC888 Analog [ALC888 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

hw:0,0 является звуковой картой.

Определить частоту дискретизации звуковой карты (2/5)

Нашей задачей будет поиск максимальной частоты дискретизации, поддерживаемой звуковой картой hw:0,0, используя метод проб и ошибок, начиная с самого маленького значения. Когда будет достигнут наивысший предел, мы получим предупреждающее сообщение:

arecord -f dat -r 60000 -D hw:0,0 -d 5 test.wav
"Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 60000 Hz, Stereo
Warning: rate is not accurate (requested = 60000Hz, got = 44100Hz)
please, try the plug plugin

обратите внимание на got = 44100Hz. Это максимальная частота дискретизации нашей карты.

Установка частоты дескритизации в настройках PulseAudio (3/5)

Уровень дескритизации, по умолчанию, в PulseAudio:

$ grep "default-sample-rate" /etc/pulse/daemon.conf
; default-sample-rate = 48000

48000 отключен, и должен быть изменен на 44100:

# sed 's/; default-sample-rate = 48000/default-sample-rate = 44100/g' -i /etc/pulse/daemon.conf

Перезапустите PulseAudio для применения новых настроек (4/5)

$ pulseaudio -k
$ pulseaudio --start

Наконец, проверьте запись и её воспроизведение (5/5)

Давайте запишем речь с помощью микрофона в течение, например, 10 секунд. Удостоверьтесь, что микрофон не отключен.

$ arecord -f cd -d 10 test-mic.wav

После 10 секунд, давайте проиграем запись:

$ aplay test-mic.wav

Теперь, надеюсь, больше нет никакого статического шума на записи с микрофона.

Иная возможная причина

Другой причиной рассматриваемой проблемы может быть то, что ваш микрофон имеет два канала, но только один из них может выдавать верный сигнал. Некоторую информацию об этом можно найти здесь. Решением будет перенастройка стерео входа в режим моно:

1. Найдите название источника входного сигнала, используя следующую команду (например, оно может быть таким alsa_input.pci-0000_00_1f.3.analog-stereo)

pacmd list-sources | grep 'name:.*input'

2. Отредактируйте /etc/pulse/default.pa и добавьте следующие строки, где INPUT_NAME - это имя источника входного сигнала из предыдущего пункта:

load-module module-remap-source source_name=record_mono master=INPUT_NAME master_channel_map=front-left channel_map=mono
set-default-source record_mono

3. Перезапустите PulseAudio:

pulseaudio -k
pulseaudio --start


Надеемся, что arecord теперь работает. Вам все еще может потребоваться изменить параметр RecordStream from на Remapped Built-in Audio Analog Stereo для конкретного приложения во вкладке Recording приложения pavucontrol.

Если используется USB микрофон

Попробуйте подключить его к другому разъёму (например, разъёму сзади, а не спереди).

Нет микрофона в Steam или Skype с enable-remixing = no

Когда Вы установите enable-remixing = no в /etc/pulse/daemon.conf, Вы можете обнаружить, что Ваш микрофон перестал работать в определенных приложениях, таких как Skype или Steam. Это происходит потому, что эти приложения используют микрофон только как моно, потому что отключен remixing. Pulseaudio больше не будет делать «remixing» Вашего стереомикрофона в моно.

Чтобы исправить это, вы должны указать PulseAudio, делать это за вас:

1. Найти имя источника

# pacmd list-sources

Пример вывода отредактирован для краткости, имя которое вам нужно, выделено жирным:

   index: 2
       name: <alsa_input.pci-0000_00_14.2.analog-stereo>
       driver: <module-alsa-card.c>
       flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY

2. Добавить правило переназначения в /etc/pulse/default.pa, используйте имя, которое Вы нашли предыдущей командой, здесь мы будем использовать alsa_input.pci-0000_00_14.2.analog-stereo в качестве примера:

/etc/pulse/default.pa
### Remap microphone to mono
load-module module-remap-source master=alsa_input.pci-0000_00_14.2.analog-stereo master_channel_map=front-left,front-right channels=2 channel_map=mono,mono

3. Перезапустите Pulseaudio

# pulseaudio -k
Примечание: Pulseaudio может не запуститься, если Вы не вышли из программы, использовавшей микрофон (например, если Вы протестировали его в Steam, прежде, чем изменить файл), тогда Вы должны выйти из приложения, и вручную запустить Pulseaudio
# pulseaudio --start

Искажение микрофона из-за автоматической регулировки

Если громкость микрофона повышается автоматически и вызывает искажение звука, вы можете это исправить путем отключения усиления микрофона:

В /usr/share/pulseaudio/alsa-mixer/paths/analog-input-internal-mic.conf и /usr/share/pulseaudio/alsa-mixer/paths/analog-input-mic.conf,

  • Под [Element Internal Mic Boost] установите volume в zero (ноль).
  • Под [Element Int Mic Boost] установите volume в zero (ноль).
  • Под [Element Mic Boost] установите volume в zero (ноль).

Затем перезапустите PulseAudio:

# pulseaudio -k

Качество звука

Включить эхо/шумоподавление

По умолчанию Arch не загружает модуль шумоподавления Pulseaudio, поэтому мы должны включить его в /etc/pulse/default.pa. Сначала Вы можете проверить, присутствует ли модуль с помощью pacmd и вводом list-modules. Если Вы не можете найти строку в списке {list-modules, то ее нужно добавить

/etc/pulse/default.pa
### Включить шумоподавление
load-module module-echo-cancel use_master_format=1 aec_method=webrtc aec_args="analog_gain_control=0 digital_gain_control=1" source_name=echoCancel_source sink_name=echoCancel_sink
set-default-source echoCancel_source
set-default-sink echoCancel_sink

затем перезапустите Pulseaudio

pulseaudio -k
pulseaudio --start

и проверьте, активировался ли модуль, путем запуска pavucontrol. В режиме Recoding устройство ввода должно вывести Echo-Cancel Source Stream from"

Ниже представлен список возможных значений 'aec_args' для 'aec_method=webrtc' со значениями, используемыми по умолчанию [2][3]:

  • analog_gain_control=1 - Аналоговая АРУ - 'Автоматическая Регулировка Усиления' осуществляется путем прямого изменения громкости - скорее всего приведет к искажениям.
  • digital_gain_control=0 - Цифровая АРУ - 'Автоматическая Регулировка Усиления' осуществляется постобработкой (высокая нагрузка на ЦПУ).
  • experimental_agc=0 - Позволяет включить экспериментальный механизм АРУ webrtc.
  • agc_start_volume=85 - Уровень начальной громкости при использовании АРУ - Возможные значения 0-255 - Слишком низкий уровень начальной громкости может вовсе нивелировать возможность алгоритма АРУ повысить уровень громкости до достаточного значения [4].
  • high_pass_filter=1 - ?
  • noise_suppression=1 - Подавитель шума.
  • mobile=0 - ?
  • routing_mode=speakerphone - Возможные значения "quiet-earpiece-or-headset,earpiece,loud-earpiece,speakerphone,loud-speakerphone" - работает только с "mobile=1".
  • comfort_noise=1 - ? - работает только с "mobile=1".
  • drift_compensation=0 - Компенсация отклонений позволяет избежать эффекта эха между различными устройствами (такими как колонки вашего ноутбука и микрофоном USB вебкамеры). - работает только с "mobile=0".
  • voice_detection=1 - VAD - Обнаружение голосовой активности.
  • extended_filter=0 - Расширенный фильтр, более сложный и устойчивый к неверной задержке ответа от аппаратных устройств, чем обычный фильтр. Расширенный фильтр по умолчанию не активен, так как дает худшие результаты при обычном разговоре [5].
  • intelligibility_enhancer=0 - Некоторая настройка для webrtc усилителя разбора сигнала.
  • beamforming=0 - Смотрите [6][7]
  • mic_geometry=x1,y1,z1,x2,y2,z2 - Работает только с "beamforming=1".
  • target_direction=a,e,r - Работает только с "beamforming=1".

Если вы используете module-echo-cancel, вам вероятно не понадобятся другие приложения для дополнительной постобработки звука.
Ниже приведены примеры способов отключения постобработки звука для некоторых приложений:

  • Mumble:
  1. Configure -> Settings -> Установите галку 'Advanced' -> Audio Input
  2. Echo: Выберите 'Disabled'
  3. Noise Suppression: Установите ползунок в позицию 'Off'
  4. Max. Aplification: Установите ползунок на '1.0'
  • TeamSpeak:
  1. Tools -> Options -> Установите галку 'Advanced Options'
  2. Снимите галку с: 'Echo reduction', 'Echo cancellation', 'Remove background noise' и 'Automatic voice gain control'
  • Firefox:
  1. Как описано здесь


ВНИМАНИЕ:
Если вы подключили USB звуковую карту/USB наушники, или вы используете систему объемного звучания 5.1 и подсоединили наушники в ваш фронтальный аудиоразъем после того как загрузили 'module-echo-cancel', то вам нужно выгрузить и загрузить 'module-echo-cancel' снова, потому что не существует другого способа указать 'module-echo-cancel', что ему необходимо автоматически переключиться на новые 'source_master' и 'source_sink' по умолчанию. Смотрите https://bugs.freedesktop.org/show_bug.cgi?id=100403

Глюки, пропуски или потрескивания

Более новая реализация звукового сервера PulseAudio использует звуковой планировщик на основе таймера, вместо традиционного подхода управления прерываниями.

Основанное на таймере планирование может представлять проблемы в некоторых драйверах ALSA. С другой стороны, другие драйверы могли бы глючить без него, проверьте и посмотрите что работает на вашей системе.

Для выключения основанного на таймере планирования добавьте tsched=0 в /etc/pulse/default.pa:

/etc/pulse/default.pa
load-module module-udev-detect tsched=0

Затем перезапустите сервер PulseAudio:

pulseaudio -k
pulseaudio --start

Наоборот, для включения основанного на таймере планирования, если он уже не включен по умолчанию.

Если Вы используете Intel IOMMU и испытываете глюки и/или пропуски, добавьте intel_iommu=igfx_off к Вашей командной строке ядра.

Некоторым звуковым картам Intel использующим модуль snd-hda-intel нужны опции vid=8086 pid=8ca0 snoop=0. Для постоянной их установки создайте/измените следующий файл, включая строку ниже.

/etc/modprobe.d/sound.conf
options snd-hda-intel vid=8086 pid=8ca0 snoop=0

Сообщите о любых таких картах PulseAudio Broken Sound Driver page

Статический шум при использовании наушников

Если вы столкнулись со статическим шумом в разъеме наушников, одной из причин этому может быть петлевое смешивание (loopback mixing) ALSA. В дополнение к настройке tsched=0 как описано выше, может помочь отключение петлевого смешивания (loopback mixing). Это легко можно сделать с помощью alsamixer, частью пакета alsa-utils. Это не должно оказать негативного влияния на воспроизведение или запись звука, кроме случаев, когда петлевое смешивание вам обязательно нужно.

Определение номера фрагмента по умолчанию и размера буфера в PulseAudio

Отключение планирования, основанного на таймере (0/4)

По умолчанию PulseAudio использует планирование, основанное на таймере. В этом режиме фрагменты совсем не используются, и игнорируются параметры default-fragments и default-fragment-size-msec parameters. Чтобы отключить планирование, основанное на таймере, добавьте tsched=0 в /etc/pulse/default.pa:

/etc/pulse/default.pa
load-module module-udev-detect tsched=0

Поиск параметров вашего аудиоустройства (1/4)

Чтобы выяснить настройки буфера звуковой карты, используйте следующую команду, пока не найдете правильную запись выходного канала:

$ pactl list sinks
Sink #1
	State: RUNNING
	Name: alsa_output.pci-0000_00_1b.0.analog-stereo
	Description: Built-in Audio Analog Stereo
	Driver: module-alsa-card.c
	Sample Specification: s16le 2ch 44100Hz
	Channel Map: front-left,front-right
	Owner Module: 7
	Mute: no
	Volume: front-left: 42600 /  65% / -11.22 dB,   front-right: 42600 /  65% / -11.22 dB
	        balance 0.00
	Base Volume: 65536 / 100% / 0.00 dB
	Monitor Source: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
	Latency: 70662 usec, configured 85000 usec
	Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
	Properties:
		alsa.resolution_bits = "16"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "ALC283 Analog"
		alsa.id = "ALC283 Analog"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "0"
		alsa.card = "1"
		alsa.card_name = "HDA Intel PCH"
		alsa.long_card_name = "HDA Intel PCH at 0xe111c000 irq 43"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:00:1b.0"
		sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card1"
		device.bus = "pci"
		device.vendor.id = "8086"
		device.vendor.name = "Intel Corporation"
		device.product.id = "9ca0"
		device.product.name = "Wildcat Point-LP High Definition Audio Controller"
		device.form_factor = "internal"
		device.string = "front:1"
		device.buffering.buffer_size = "352800"
		device.buffering.fragment_size = "176400"
		device.access_mode = "mmap+timer"
		device.profile.name = "analog-stereo"
		device.profile.description = "Analog Stereo"
		device.description = "Built-in Audio Analog Stereo"
		alsa.mixer_name = "Realtek ALC283"
		alsa.components = "HDA:10ec0283,10ec0283,00100003"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
	Ports:
		analog-output-speaker: Speakers (priority: 10000, not available)
		analog-output-headphones: Headphones (priority: 9000, available)
	Active Port: analog-output-headphones
	Formats:
		pcm
...

Обратите внимание на то, что значения buffer_size и fragment_size релевантны соответствующей звуковой карте.

Вычисление размера вашего фрагмента в миллисекундах и количества фрагментов (2/4)

Частота дискретизации и битовая глубина PulseAudio по умолчанию установлены на 44100Hz @ 16 bits.

При такой конфигурации нам нужен битрейт 44100*16 = 705600 бит в секунду. Для стерео - 1411200 bps.

Давайте взглянем на параметры, которые мы нашли в предыдущем шаге:

device.buffering.buffer_size = "352800" => 352800/1411200 = 0.25 s = 250 ms
device.buffering.fragment_size = "176400" => 176400/1411200 = 0.125 s = 125 ms

Редактирование конфигурационного файла PulseAudio (3/4)

/etc/pulse/daemon.conf
; default-fragments = X
; default-fragment-size-msec = Y

В предыдущем шаге мы рассчитали размер фрагмента. Узнать количество фрагментов также просто: buffer_size/fragment_size. Ответ в нашем случае будет равен (250/125) 2:

/etc/pulse/daemon.conf
; default-fragments = 2
; default-fragment-size-msec = 125

Перезапуск демона PulseAudio (4/4)

$ pulseaudio -k
$ pulseaudio --start

Для получения дополнительной информации смотрите: тему на форуме Linux Mint

Прерывистый звук с аналогового объемного звучания

Канал низкочастотных эфектов (НЭ) не ремикширован по умолчанию. Чтобы включить его, нужно изменить следующее в /etc/pulse/daemon.conf:

/etc/pulse/daemon.conf
enable-lfe-remixing = yes

Тормозит звук

Эта проблема возникает из-за неправильного размера буфера. Сначала убедитесь, что значение по умолчанию для переменных default-fragments и default-fragment-size-msec не изменено в файле /etc/pulse/daemon.conf. Если это не помогло, попробуйте установить этим переменным следующие значения:

/etc/pulse/daemon.conf
default-fragments = 5
default-fragment-size-msec = 2

Прерывистый/искажённый звук

Искажённый звук может быть вызван неправильно настроенной частотой дискретизации. Попробуйте следующие настройки:

/etc/pulse/daemon.conf
avoid-resampling = yes #(Необходимо для PA11 или новее)
default-sample-rate = 48000

и перезапустите сервер PulseAudio.

Если искажённый звук возникает в приложениях, использующих OpenAL, поменяйте частоту дискретизации в /etc/openal/alsoft.conf:

/etc/openal/alsoft.conf
frequency = 48000

Установка PCM volume выше 0 dB может вызвать клиппинг. Запуск alsamixer позволит вам обнаружить и исправить проблему. Обратите внимание, что ALSA может некорректно экспортировать информацию о dB в PulseAudio. Попробуйте следующее:

/etc/pulse/default.pa
load-module module-udev-detect ignore_dB=1

и перезапустите сервер PulseAudio. Смотрите также #No sound below a volume cutoff[broken link: invalid section].

Аппаратные средства и карты

Спустя некоторое время, при выключенном мониторе отсутствует звук на выходе HDMI

Монитор подключается через HDMI/DisplayPort, а аудиоразъем подключен к разъему для наушников монитора, но PulseAudio настаивает на том, что он отключен:

pactl list sinks
...
hdmi-output-0: HDMI / DisplayPort (priority: 5900, not available)
...


Это приводит к отсутствию звука из выхода HDMI. Чтобы это обойти, переключитесь на другой VT и обратно. Если это не сработает, попробуйте: выключить монитор, переключиться на другой VT, включить монитор, а затем обратно. Эта проблема была обнаружена пользователями ATI/Nvidia/Intel.

Решить проблему можно иначе: отключить модуль switch-on-port-available, закомментировав его в /etc/pulse/default.pa [8]:

/etc/pulse/default.pa
...
### Следует разместить после module-*-restore но до module-*-detect
#load-module module-switch-on-port-available
...

Отсутствие звука на выходе HDMI при использовании удаленного сервера

Возможно Вы захотите использовать HDMI аудио через Ваш a/v ресивер, но без использования дисплея. Для работы HDMI требуется видеосигнал, который мы получаем от виртуального терминала.

По умолчанию, сигнал отключается через 600 секунд, а вместе с ним пропадает и звук.

Чтобы запретить выключать экран, добавьте consoleblank=0 в командную строку ядра.

Нет карты

Если PulseAudio запускается, а выполнение pacmd list говорит что нет карт, убедитесь что они не используются устройствами ALSA:

$ fuser -v /dev/snd/*
$ fuser -v /dev/dsp

Убедитесь, что все приложения, использующие файлы pcm или dsp закрыты перед перезапуском PulseAudio.

Запуск приложения прерывает звук другого приложения

Если у вас есть проблемы с некоторыми приложениями (например Teamspeak, Mumble) прерывающих звук уже запущенных приложений (например Deadbeaf), вы можете решить эту проблему закомментировав строку load-module module-role-cork в /etc/pulse/default.pa как показано ниже:

/etc/pulse/default.pa
### Cork music/video streams when a phone stream is active
# load-module module-role-cork

Затем перезагрузите PulseAudio, используя обычную учетную запись пользователя

pulseaudio -k
pulseaudio --start

Единственное указанное устройство является "фиктивным выходом" или вновь подключенные карты не определяются

Если единственное устройство воспроизведения является "фиктивным выходом", PulseAudio не сможет получить доступ к Вашим звуковым устройствам. Вероятно это связано с настройком прав logind. Для более детальной информации перейдите по ссылке General troubleshooting#Session permissions.

Приложение также может быть просто не настроено для работы с PulseAudio. Например, подобная проблема наблюдается в FluidSynth. Чтобы увидеть, какое приложение пытается получить прямой доступ к звуковой карте через ALSA, выполните следующую команду:

# fuser -v /dev/snd/*

Попробуйте закрыть эти приложения. PulseAudio, если запущено, должно восстановить контроль над этими приложениями, и все остальные приложения, относящиеся к PulseAudio, снова должны начать работать.

Не возможно выбрать устройства HDMI 5/7.1

Если вы не можете выбрать каналы выхода 5/7.1 для работающего устройства HDMI, вам может помочь выключение "stream device reading" в /etc/pulse/default.pa.

Смотрите #Резервное устройство не определяется.

Не удалось создать устройство входа: устройство приостановлено

Если у Вас нет вывода звука и Вы получаете десятки ошибок связанных с зависанием устройства в вашем журнале journalctl -b, сделайте резервную копию, а затем удалите в своём домашнем каталоге папки Pulse:

$ rm -r ~/.pulse ~/.pulse-cookie ~/.config/pulse

Одновременный вывод на несколько звуковых карт / устройств

Одновременный вывод на два различных устройства может быть очень полезным. Например, отправка звука на Ваш A/V ресивер через HDMI выход видеокарты, и параллельная отправка того же самого звука посредством аналогового выхода встроенного аудио Вашей материнской платы. Теперь это менее хлопотно, чем раньше (в этом примере, мы используем рабочий стол GNOME).

Используя paprefs, просто выберите "Добавить устройство виртуального выхода для одновременного вывода на всех локальных звуковых картах (Add virtual output device for simultaneous output on all local sound cards)" из вкладки "Одновременный вывод (Simultaneous Output)" . Затем в "Настройках Звука" GNOME, выберите одновременный вывод, который вы только что создали.

Если это не сработает, попробуйте добавить следующее в ~/.asoundrc:

pcm.dsp {
   type plug
   slave.pcm "dmix"
}
Совет: Одновременный вывод также может быть настроен вручную с помощью alsamixer. Отключите пункт "автоматическое отключение звука (auto mute)", затем включите другие источники вывода которые хотите услышать и увеличьте их громкость.

Одновременный вывод на несколько устройств вывода на одной звуковой карте не работает

Это будет полезно для пользователей, у которых несколько источников звука, и они хотят воспроизводить их на разных устройствах вывода/выходах. Пример того как это использовать: допустим вы слушаете музыку и общаетесь в голосовом чате, и хотите выводить музыку на колонки (в данном случае цифровой S/PDIF) а голос в наушники (Аналог).

Иногда, но не всегда, PulseAudio автоматически это обнаруживает. Если вы знаете что ваша звуковая карта может выводить звук на Аналоговый выход и S/PDIF одновременно, и у PulseAudio нет этой опции в своих профилях на pavucontrol или veromix, то вам нужно будет создать файл настроек для вашей звуковой карты.

Вам нужно создать более подробный профиль для конкретной звуковой карты. Это, в основном, делается в два этапа.

  • Создать правило Udev для разрешения PulseAudio выбирать ваш файл настроек PulseAudio подготовленный для конкретной звуковой карты
  • Создать актуальные настройки

Создать правило PulseAudio udev.

Примечание: Этот пример применим только для Asus Xonar Essence STX. Изучите udev чтобы подобрать верные значения.
Примечание: Чтобы применился именно Ваш файл настроек, он должен иметь меньшее число, чем исходное правило PulseAudio.
/usr/lib/udev/rules.d/90-pulseaudio-Xonar-STX.rules
ACTION=="change", SUBSYSTEM=="sound", KERNEL=="card*", \
ATTRS{subsystem_vendor}=="0x1043", ATTRS{subsystem_device}=="0x835c", ENV{PULSE_PROFILE_SET}="asus-xonar-essence-stx.conf" 

Теперь создайте файл настроек. Если потрудиться, вы можете написать его с нуля и сделать его красивым. Однако можете воспользоватся файлом настроек по умолчанию, переименовать его, а затем добавить в свой профиль то, что будет там работать. Это менее красиво, зато быстро.

Чтобы включить несколько устройств вывода для Asus Xonar Essence STX, нужно только добавить это.

Примечание: asus-xonar-essence-stx.conf также содержит все коды/инструкции из default.conf.
/usr/share/pulseaudio/alsa-mixer/profile-sets/asus-xonar-essence-stx.conf
[Profile analog-stereo+iec958-stereo]
description = Analog Stereo Duplex + Digital Stereo Output
input-mappings = analog-stereo
output-mappings = analog-stereo iec958-stereo
skip-probe = yes

Это будет авто-профилем Asus Xonar Essence STX с профилями по умолчанию и добавит свой собственный профиль, так что вы можете иметь несколько устройств вывода.

Вам нужно создать еще один профиль в файле настроек, если вы хотите получить такую же функциональность с выходом AC3 Digital 5.1.

смотрите статью о профилях PulseAudio

Некоторые профили, такие как SPDIF не задействованы по умолчанию на карте

Некоторые профили, такие как IEC-958 (т.е. S/PDIF) могут быть не задействованы на выбранном устройстве по умолчанию. Каждый раз когда система запускается, профиль карты блокируется, и демон PulseAudio не может его выбрать. Вы должны добавить выбор профиля в ваш файл default.pa. Проверьте имя карты и профиль:

$ pacmd list-cards

Затем отредактируйте файл настроек, чтобы добавить профиль

~/.config/pulse/default.pa
## Замените на ваши имена карты и профиля, которые вы хотите активировать
set-card-profile alsa_card.pci-0000_00_1b.0 output:iec958-stereo+input:analog-stereo

PulseAudio добавит этот профиль, в пул доступных профилей.

Bluetooth

Отключение поддержки Bluetooth

Если вы не используете Bluetooth, вы можете обнаружить следующую ошибку в журнале:

bluez5-util.c: GetManagedObjects() failed: org.freedesktop.DBus.Error.ServiceUnknown: The name org.bluez was not provided by any .service files

Чтобы отключить поддержку Bluetooth в PulseAudio, убедитесь, что следующие строчки закомментированы в используемом файле конфигурации (~/.config/pulse/default.pa или /etc/pulse/default.pa):

~/.config/pulse/default.pa
### Automatically load driver modules for Bluetooth hardware
#.ifexists module-bluetooth-policy.so
#load-module module-bluetooth-policy
#.endif

#.ifexists module-bluetooth-discover.so
#load-module module-bluetooth-discover
#.endif

Проблемы воспроизведения гарнитуры Bluetooth

Некоторые пользователи сообщают о больших задержках или даже отсутствии звука, когда по Bluetooth-соединению не передаются никакие данные. Это вызвано модулем module-suspend-on-idle, который автоматически приостанавливает устройства ввода/вывода при простое. Так как это может вызвать проблемы с гарнитурой, можно отключить соответствующий модуль.

Для отключения загрузки модуля module-suspend-on-idle закомментируйте следующую строчку в используемом файле конфигурации (~/.config/pulse/default.pa или /etc/pulse/default.pa):

~/.config/pulse/default.pa
### Automatically suspend sinks/sources that become idle for too long
#load-module module-suspend-on-idle

И перезагрузите PulseAudio для применения изменений.

Автоматическое переключение на Bluetooth или USB-гарнитуру

Добавьте следующие строчки в файл конфигурации:

/etc/pulse/default.pa
# automatically switch to newly-connected devices
load-module module-switch-on-connect

Начиная с PulseAudio 11 USB и bluetooth устройства по умолчанию имеют больший приоритет по сравнению с внутренней звуковой картой. Но, как указано по ссылке выше, Вам все еще необходим модуль module-switch-on-connect для перемещения существующих потоков на новое устройство вывода.

Устройство сопряжено, но не проигрывает звук

Смотрите раздел в статье Bluetooth

Начиная с PulseAudio 2.99 и bluez 4.101, вы должны избегать использования интерфейса Socket. НЕ используйте:

/etc/bluetooth/audio.conf
[General]
Enable=Socket

Если вы имеете проблемы с A2DP и PA 2.99, убедитесь, что у вас установлена библиотека sbc.

Приложения

Содержащие Flash

Поскольку Adobe Flash напрямую не поддерживает PulseAudio, рекомендуется настроить ALSA использовать виртуальную звуковую карту PulseAudio.

Если звук Flash заикается, можете попробовать использовать Flash через ALSA напрямую. Подробно смотрите ALSA/dmix без захвата аппаратного устройства.

Ошибка с правами доступа

pulseaudio --start
E: [autospawn] core-util.c: Failed to create secure directory (/run/user/1000/pulse): Operation not permitted
W: [autospawn] lock-autospawn.c: Cannot access autospawn lock.
E: [pulseaudio] main.c: Failed to acquire autospawn lock

Известные програмы меняющие права доступа для /run/user/user id/pulse когда используется Polkit:

В качестве обходного пути можно использовать gksu или kdesu в desktop entry или добавить username ALL=NOPASSWD: /usr/bin/program_name в sudoers для запуска sudo или gksudo без запроса пароля. Другой способ лежит через раскомментирование и установку daemonize = yes в /etc/pulse/daemon.conf.
Также стоит посмотреть эту ветку форума (англ).

Audacity

При запуске Audacity вы можете обнаружить, что ваши наушники не работают. Это может быть потому, что Audacity пытается использовать их в качестве записывающего устройства. Чтобы исправить это, откройте Audacity, затем установите его записывающее устройство pulse:Internal Mic:0.

В некоторых случаях, воспроизведение может быть искажено, ускоряться , или зависать, как описано в Audacity Wiki's Linux Issues page.

Вам может помочь следующее решение: запустите Audacity с опцией:

$ env PULSE_LATENCY_MSEC=30 audacity

Если указанное выше решение, не решает эту проблему, то можно временно отключить pulseaudio, во время работы Audacity при помощи команды pasuspender:

$ pasuspender -- audacity

Затем не забудьте выбрать соответствующие устройства ввода и вывода ALSA в Audacity.

Смотрите также #Определение номера фрагмента по умолчанию и размера буфера в PulseAudio.

Другие проблемы

Плохой файл настроек

Если после запуска PulseAudio в системе нету звука, возможно необходимо удалить содержимое папки ~/.config/pulse и/или ~/.pulse. PulseAudio автоматически создаст новые файлы настроек при своём следующем запуске.

Невозможно обновить настройки звукового устройства в pavucontrol

pavucontrol представляет собой удобную утилиту с графическим интерфейсом для настройки PulseAudio. На вкладке 'Настройки', вы можете выбрать различные профили для каждого из ваших звуковых устройств, например: аналоговое стерео, цифровой выход (IEC958), HDMI 5.1 Surround и т.д.

Тем не менее, вы можете столкнуться со случаем, когда выбор другого профиля для карты приведёт к сбою демона Pulse и "зависнет" автоматическое повторное включение без сохранения нового выбора. Если это происходит, используйте другой полезный инструмент с графическим интерфейсом, paprefs, чтобы проверить настройку на вкладке "Одновременный вывод" для виртуального "одновременного устройства". Если этот параметр активен (флажок установлен), то это будет мешать вам измененить профиль любой карты в pavucontrol. Снимите флажок этого параметра, а затем настройте свой профиль в pavucontrol до повторного включения одновременного вывода в paprefs.

Не удалось создать устройство вывода: устройство вывода приостановлено

Если у вас нету звука, и вы получаете десятки ошибок связанных с приостановкой устройства вывода в вашем журнале journalctl -b, сначала создайте резервную копию, а потом удалите папки pulse в вашем домашнем каталоге:

$ rm -r ~/.pulse ~/.pulse-cookie ~/.config/pulse

Pulse переписывает настройки ALSA

PulseAudio обычно переписывает настройки ALSA — например устанавливает alsamixer при загрузке, даже когда демон ALSA загружен. Так как нет иного способа избежать такого поведения, решение заключается в восстановлении настроек ALSA после запуска PulseAudio. Добавьте следующую команду в .xinitrc или .bash_profile или другой файл Автоматической загрузки:

restore_alsa() {
 while [ -z "$(pidof pulseaudio)" ]; do
  sleep 0.5
 done
 alsactl -f /var/lib/alsa/asound.state restore 
}
restore_alsa &

Предотвращение перезагрузки Pulse, после того как процесс был убит (kill)

Иногда вам может потребоваться временно отключить Pulse. Для того чтобы сделать это, вы должны запретить повторный запуск Pulse, после того как процесс был убит.

~/.config/pulse/client.conf
# Disable autospawning the PulseAudio daemon
autospawn = no

Не удаётся запустить Демон

Попробуйте сбросить PulseAudio:

$ rm -rf /tmp/pulse* ~/.pulse* ~/.config/pulse
$ pulseaudio -k
$ pulseaudio --start
  • Убедитесь, что параметры для устройств вывода настроены правильно.
  • Если вы настроили default.pa для загрузки и использования модулей OSS проверьте с помощью lsof что устройство /dev/dsp не используется другим приложением.
  • Установите предпочтительный метод работы передискретизации. Используйте pulseaudio --dump-resample-methods чтобы увидеть список всех доступных методов ресэмплирования (resample), которые вы можете использовать.
  • Чтобы получить подробную информацию о недавно появившихся незаписанных ошибках или просто получить статус демона, используйте команду pax11publish -d и pulseaudio -v, где v опция может быть использована многократно для установления подробности вывода журнала, равное --log-level[=LEVEL] опции где LEVEL от 0 до 4. Смотрите раздел #Вывод статуса ошибок PulseAudio утилитами проверки.

Для более подробной информации смотрите страницу справки pax11publish(1) и pulseaudio(1).

Вывод статуса ошибок PulseAudio утилитами проверки

Если pax11publish -d показывает ошибку как:

N: [pulseaudio] main.c: User-configured server at "user", refusing to start/autospawn.

то запустите команду pax11publish -r, и будет не лишним, если вы выйдите из системы и войдёте снова. Последний совет в первую очередь касается пользователей LXDM, поскольку он не перезапускает сервер X при завершении сеанса; смотрите LXDM#PulseAudio[broken link: invalid section].

Если команда pulseaudio -vvvv показывает ошибку:

E: [pulseaudio] module-udev-detect.c: You apparently ran out of inotify watches, probably because Tracker/Beagle took them all away. I wished people would do their homework first and fix inotify before using it for watching whole directory trees which is something the current inotify is certainly not useful for. Please make sure to drop the Tracker/Beagle guys a line complaining about their broken use of inotify.

Эту проблему можно временно решить с помощью:

$ echo 100000 > /proc/sys/fs/inotify/max_user_watches

Для постоянного использования сохраните настройки в файл 99-sysctl.conf:

/etc/sysctl.d/99-sysctl.conf
# Increase inotify max watchs per user
fs.inotify.max_user_watches = 100000
Важно: Это может привести к гораздо большему потреблению памяти ядром.

Смотрите также

Демон уже запущен

В некоторых системах, PulseAudio может быть запущен несколько раз. В таком случае journalctl сообщит:

[pulseaudio] pid.c: Daemon already running.

Убедитесь в том, что используете только один метод автоматического запуска приложений. pulseaudio содержит следующие файлы:

  • /etc/X11/xinit/xinitrc.d/pulseaudio
  • /etc/xdg/autostart/pulseaudio.desktop
  • /etc/xdg/autostart/pulseaudio-kde.desktop

Также проверьте пользовательские файлы и каталоги автозапуска, такие как xinitrc, ~/.config/autostart/ и т.п..

Сабвуфер перестает работать после окончания каждой песни

Известные проблемы: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/494099

Чтобы это исправить, необходимо включить enable-lfe-remixing в файле /etc/pulse/daemon.conf:

/etc/pulse/daemon.conf
enable-lfe-remixing = yes

Невозможно выбрать настройку объемного звучания, кроме "Surround 4.0"

Если вам не удается установить 5.1-канальный вывод объемного звучания в pavucontrol, поскольку он показывает только "Analog Surround 4.0 Output", откройте микшер ALSA и измените настройку вывода на 6 каналов. Затем перезагрузите PulseAudio и pavucontrol покажет много вариантов.

Планировщик в реальном времени

Если rtkit не работает, вы можете вручную настроить систему для запуска PulseAudio с планировщиком в реальном времени, который может помочь в производительности. Чтобы сделать это, добавьте следующие строки в /etc/security/limits.conf:

@pulse-rt - rtprio 9
@pulse-rt - nice -11

После этого вам нужно добавить пользователя в группу pulse-rt:

# gpasswd -a <user> pulse-rt

Ошибка pactl "неверный параметр" с отрицательным процентным аргументом

Команды pactl, которые принимают отрицательные процентные значения аргументов, прекращают работу с ошибкой 'недопустимый параметр/опция'. Используйте стандартный псевдо аргумент оболочки '--' для предотвращения обработки отрицательного значения. Например pactl set-sink-volume 1 -- -5%.

Резервное устройство не определяется

По умолчанию PulseAudio не использует настоящее устройство. Вместо этого он использует "резервный вариант", который применяется только к новым звуковым потокам. Это означает, что ранее запущенные приложения не зависят от вновь установленного резервного устройства.

gnome-control-center, mate-media и paswitchAUR справятся с этим. В противном случае:

1. Переместите старые потоки вручную в pavucontrol на новую звуковую карту.

2. Остановите Pulse, сотрите "stream-volumes" в ~/.config/pulse и/или ~/.pulse и перезапустите Pulse. Это также сбросит громкость у приложений.

3. Отключите устройства чтения потока. Это может не понадобиться если вы используете различные звуковые карты с разными приложениями.

/etc/pulse/default.pa
load-module module-stream-restore restore_device=false

Отправка большого количества пакетов RTP/UDP

В некоторых случаях, настройка по умолчанию может блокировать сеть отправкой очень большого количества пакетов UDP. [9] Для решения этой проблемы запустите paprefs и отключите "Multicast/RTP Sender".[10]