Затачиваем убунту на ALSA вместо pulseaudio
Posted on 2009.03.12 at 12:02Привожу здесь что-то вроде конспекта-перевода.
1. Готовимся! Установите следующие пакеты (если их у вас ещё нет). Первый - это "обёртка" вокруг ALSA для OSS; 2-й - это библиотека ALSA, а 3-й - библиотека плагинов ALSA. Последний будет нужен для удаления pulseaudio из разных уровней выполнения (runlevels). Впрочем, можно это сделать и ручками, разумеется :)
% sudo apt-get install alsa-oss % sudo apt-get install libasound2 % sudo apt-get install libasound2-plugins % sudo apt-get install sysv-rc-conf
2. Приступаем к удалению! Удалите запуск pulseaudio из Xsession, переместив скрипт запуска в безопасное место (на случай, если вы когда-нибудь снова захотите pulseaudio). Давайте спрячем его в домашнюю папку (~/).
% sudo mv /etc/X11/Xsession.d/70pulseaudio ~/
Далее - удаляем pulseaudio (sound plugin) из gnome-settings-daemon
% gconftool-2 -s -t bool /apps/gnome_settings_daemon/plugins/sound/active false
Впрочем - можно и ручками. Запускаем gconf-editor - а там движемся по дереву папок слева - apps - gnome_settings_daemon - plugins - sound - и там снимаем галку active.
Убираем Pulseaudio
% asoundconf unset-pulseaudio
Удаляем из уровней запуска [для полной уверенности]
% sudo sysv-rc-conf
Мотаем вниз до строчки “pulseaudio”, и снимаем все галочки (пробелом). Выходим (q).
3. Настраиваем ALSA! Теперь настраиваем ALSA на использование основной звуковой карты
% asoundconf list Names of available sound cards: Intel % asoundconf set-default-card Intel
Убедитесь, что в файле libao.conf прописана alsa в качестве системы. Это можно проверить так:
% sudo nano /etc/libao.conf default_driver=alsa
Запустите из меню: Система - Параметры - Звук, убедитесь, что все галки стоят, как на скриншотах ниже (только по-русски :) ):
С этого момента у вас больше не будет звука входа в систему :( . Чтобы починить вы можете создать собственное событие автозапуска и там запустить “aplay” или “mpg123-alsa” или “mplayer” с путём к вашему звуку входа в систему.
Для дальнейшего выкорчёвывания pulseaudio, поправьте файл .bashrc в вашей домашней папке и вставьте туда вот это:
export SDL_audiodriver=alsa #Use this line if you want alsa wrapper for OSS: % export SDL_audiodriver=aoss
В Ubuntu 8.10 содержится пакет flash 10 [adobe-flashplugin], поэтому мультизвук и флэш звук будут в совершентсве работать без библиотеки libflashsupport (её больше нет в репозитарии) :)
Не устали? Гы :) Перезагружаемся и наслаждаемся ALSA. В качестве самопроверки - запустите в терминале команду “pgrep pulseaudio”. Если она не написала вам никакого числа, значит pulseaudio благополучно отключён :)
ПРОБЛЕМЫ: 10-секундная задержка воспроизведения
Мне наконец-то удалось победить 10-секундную задержку воспроизведения. Эти приложения сперва ищут pulseaudio, а когда не находят, после 10-секундного таймаута берутся за ALSA.
=======
Решение:
=======
+ Поправьте /etc/mplayer/mplayer.conf, строка 74, поменяйте там порядок устройств (в оригинале там pulse,alsa)
# Specify default audio driver (see -ao help for a list).
ao=alsa,pulse
+ Totem-gstreamer - я не смог пока найти для него решения, поэтому в качестве временного решения можно использовать totem-xine, а в нём поправить конфиг ~/.config/totem/xine_config , и убедиться, что pulseaudio там закомментирован.
+ Конфиг сиснемного уровня (пока я тестировал только с mpg123-alsa, aplay, moc). Сохраните файл /usr/share/alsa/alsa.conf. Затем в самом верху файла поменяйте (или просто закомментируйте /usr/share/alsa/pulse.conf или переместите вниз, но я предпочитаю удалить, поскольку есть сохранённая копия)
# pre-load the configuration files
@hooks [
{
func load
files [
"/usr/share/alsa/bluetooth.conf"
"/etc/asound.conf"
"~/.asoundrc"
]
errors false
}
]
Собственно, всё!