Я установил Debian 8.6 на старый ноутбук Mac (PowerBook G4) в качестве музыкального проигрывателя в гостиной. Эта машина сидит на полке и делает только одно: воспроизводить музыку с помощью mpd. Поэтому я хочу, чтобы это было хорошо. ;-)
(Этот ноутбук 2005 года выпуска: он оснащен процессором G4 с тактовой частотой 1,5 ГГц и 768 МБ ОЗУ. Много мощности для воспроизведения музыки, но не намного!)
И это в основном работает ... за исключением пары раз в час, музыка заикается на полсекунды. Я сильно подозреваю, что процесс, предоставляющий аудиоданные (mpd), не может сохранить свой выходной буфер заполненным, так что-то еще (ALSA? аппаратное обеспечение?) проигрывает этот маленький фрагмент аудио в тесном цикле, пока mpd не вернется к подаче звука.
Я также подозреваю, что проблема заключается в нехватке ресурсов процессора: что-то блокирует запуск mpd в течение большой доли секунды. Моим доказательством этого является запуск "поверх" во время воспроизведения аудио, чтобы каждую секунду делать снимок состояния системы. Когда я просматриваю эти снимки, я не вижу скачка в использовании памяти или ввода-вывода, но я вижу скачок в использовании процессора: pulseaudio снимает до 40-60% загрузки процессора. Это хорошо согласуется с моим наблюдением "большая доля секунды": если pulseaudio потребляет весь ЦП в течение 400 мс, это, вероятно, показало бы 40% использования в течение интервала 1 с, и если бы оно истощало mpd ЦП в течение 400 мс, это может объяснить заикание.
Это заставляет меня задуматься: зачем мне нужно Pulseaudio, чтобы играть музыку на этой вещи? Я хочу, чтобы этот ноутбук делал одну вещь, проигрывал музыку, и я не хочу, чтобы какой-либо другой процесс, кроме mpd, использовал аудиооборудование. Поэтому я хотел бы, чтобы mpd просто использовал ALSA напрямую, без использования pulseaudio. И я не могу понять, как.
Еще более раздражающим является то, что я даже не могу заставить утилиты ALSA (aplay) воспроизводить звук, не проходя импульса и звука! Похоже, что любой процесс, который воспроизводит аудио, заканчивается тем, что запускается pulseaudio. Кроме того, кажется, что systemd участвует в этом заговоре, поскольку на пользователя никогда не бывает более одного pulseaudio, а его родительский PID всегда равен 1 (/sbin/init, который является systemd).
Прямо сейчас я не совсем уверен, является ли это вопросом ALSA, Pulseaudio, Debian или системным вопросом. Я вполне уверен, что это не вопрос MPD, так как я даже не могу заставить играть играть без прохождения импульса.
Итак: как мне отключить pulseaudio в Debian 8.6, если это действительно источник моей проблемы с заиканием звука?