Pull to refresh

Шаг 8: Звук

Reading time3 min
Views25K
Есть множество путей настроить вывод звука. Я выделю три: ALSA, OSS и PulseAudio.

Я опишу эти технологии, но рекомендую на первое время оставить ALSA. Этот материал будет полезен если определенное приложение потребует OSS или PulseAudio.

ALSA


ALSA — Advanced Linux Sound Architecture. Данный звуковой интерфейс в Ubuntu 7.10 установлен и настроен, так что проблем с его использованием нет.
Этот интерфейс стандартный и рекомендуемый для Ubuntu, поэтому на первое время его можно оставить.

OSS


OSS — Open Sound System. Один из стандартных интерфейсов воспроизведения и захвата звука в Linux.
Этот интерфейс устаревший, ему на смену пришел ALSA. Ставить его следует лишь для совместимости со старым софтом.

1. Убедимся что стоят пакеты: build-essential, gcc, make, binutils, libssl-dev, linux-headers-`uname -r`.

sudo apt-get install build-essential gcc make binutils libssl-dev linux-headers-`uname -r`

2. Выбираем, качаем и устанавливаем пакет (обычно x86 (DEB)) по ссылке www.4front-tech.com/download.cgi

При этом в процессе установки инсталлятор может сказать что-то вроде:

ERROR: Module snd_pcm is in use by snd_ice1724,snd_intel8x0,snd_ac97_codec,snd_ak4114
ERROR: Module snd_pt2258 is in use by snd_ice1724
ERROR: Module snd_i2c is in use by snd_ice1724,snd_pt2258
ERROR: Module snd_ak4xxx_adda is in use by snd_ice1724,snd_ice17xx_ak4xxx
ERROR: Module snd_mpu401_uart is in use by snd_ice1724
ERROR: Module snd_rawmidi is in use by snd_mpu401_uart
ERROR: Module snd_timer is in use by snd_pcm
ERROR: Module snd_seq_device is in use by snd_rawmidi
ERROR: Module snd_page_alloc is in use by snd_intel8x0,snd_pcm
Failed to disable conflicting sound drivers
Reboot and try running soundon again

Also check that you have not compiled sound support statically
into the kernel.


4. Спокойно перезагружаемся и идём в BIOS — очень желательно отключить встроенный звуковой кодек — так как может возникнуть следующая проблема:

— Detected M Audio Revolution 5.1
Detected Nvidia nForce2
Detected Generic USB audio device (BETA)
Detected OSS Transparent Virtual Mixing Architecture
— Starting Open Sound System
ERROR: Module snd_intel8x0 is in use
ERROR: Module snd_ac97_codec is in use by snd_intel8x0
ERROR: Module snd_pcm is in use by snd_intel8x0,snd_ac97_codec
ERROR: Module snd_timer is in use by snd_pcm
ERROR: Module snd_page_alloc is in use by snd_intel8x0,snd_pcm


5. После перезагрузки выполняем в терминале:

cat /dev/sndstat

Вывод будет похож на:

OSS 4.0 (b1009/200711130545) © 4Front Technologies 1996-2007

**** UNREGISTERED VERSION ****

This OSS version will expire after: May 2008

Audio devices:
0: M Audio Revolution 5.1 front out (OUTPUT)
1: M Audio Revolution 5.1 c/l out (OUTPUT)
2: M Audio Revolution 5.1 surround out (OUTPUT)
3: M Audio Revolution 5.1 digital out (OUTPUT)
4: M Audio Revolution 5.1 analog in (INPUT)

Mixers:
0: M Audio Revolution 5.1


6. Проверим работу

osstest

7. Звук в flash

Откроем файл /usr/lib/oss/lib/flashsupport.c с правами администратора, закомментируем двумя слэшами (//) строку "#define OPENSSL" и сохраним.

Идем в папку /usr/lib/oss/lib
cd /usr/lib/oss/lib

Компилируем
sudo cc -shared -m32 -O2 -Wall -Werror -lssl flashsupport.c -o /tmp/libflashsupport.so

Инсталлируем
sudo install -s /tmp/libflashsupport.so /usr/lib/

И можем создать ссылку для Firefox
sudo ln -s /usr/lib/libflashsupport.so /usr/lib/firefox/plugins

Здесь была рассмотрена установка retail-версии. Она бесплатна, но требует обновления раз в полгода командой:

sudo ossupdate

PulseAudio


PulseAudio это не просто интерфейс вывода звука. Это целый сервер звука. С его помощью звук можно передавать по каналам связи и воспроизводить на удаленных машинах.
Этот интерфейс очень перспективный. Некоторое современное ПО уже требует его.

Ставится он легко:

1. Устанавливаем необходимые пакеты:

sudo apt-get install «pulseaudio-*» paman padevchooser paprefs

2. Чтобы звук работал в flash, надо скачать и поставить пакет www.paulbetts.org/projects/libflashsupport_1.0~2219-1_i386.deb

3. Редактируем файл настроек ALSA (sudo gedit /etc/asound.conf), пишем туда:

pcm.pulse {
type pulse
}

ctl.pulse {
type pulse
}

pcm.!default {
type pulse
}
ctl.!default {
type pulse
}


4. Открываем Система→Настройки→Звук и на вкладке «Звуки» включаем опцию «Включить програмное смешивание звука (ESD)».

5. Добавляем всех пользователей в группу pulse-access. Открываем Система→Администрирование→Пользователи и группы, Управление группами и выбираем группу pulse-access, куда добавляем всех пользователей, которые будут использовать аудиосервер.

6. Запускаем PulseAudio

pulseaudio

Чтобы быть в курсе моих статей, можно подписаться на RSS-канал.

Каждый может помочь развитию данной серии статей, поделиться своим опытом. Добро пожаловать: http://www.linuxman.ru. Все изменения в Вики я буду со временем переносить и в Хабр.


Руководство: Шагнуть назад, Шагнуть вперед, Содержание
Tags:
Hubs:
Total votes 25: ↑22 and ↓3+19
Comments39

Articles