个人工具

UbuntuHelp:OpenSoundRU

来自Ubuntu中文

跳转至: 导航, 搜索

目录

Введение

Проект Open Sound System (OSS) предоставляет низкоуровневые драйвера для пользователей и Интерфейс программирования приложений (API) для разработчиков. По умолчанию, для звуковых драйверов Ubuntu использует Advanced Linux Sound Architecture (ALSA). Это руководство поможет вам заменить ALSA последней версией OSS. Для начала откройте консоль (она же терминал) (Applications -> Accessories -> Terminal). С помощью комбинации клавиш Ctrl+Shift+c - Ctrl+Shift+v (либо просто выделив текст мышкой - кликнув колёсиком) вы можете копировать команды из этого руководства и вставлять их непосредственно в консоль. Note: вы могли прочитать, что некоторые люди, например, разработчики ядра Linux, указывают, что OSS "устарела" и подлежит замене на ALSA. Это верно для OSS 3.x. Разработка OSS 4.x жива и чувствует себя неплохо. Многие приложения используют API OSS для работы со звуком потому что оно (API) хорошо документировано и поддерживает несколько платформ (Linux, Solaris, BSD, Haiku, и т.д.).

Поддерживает ли OSS моё оборудование?

Возможно. Проверьте список здесь - attachment:devices.list. Заметим, что встроенные в материнскую плату звуковые кодеки перечислены в списке по их южному мосту, а не кодеку. Например, ICH9 включает кодеки от Realtek, Sigmatel, ADI, Conexant, и других производителей. Также, некоторые устройства функционируют лишь частично (модуль X-Fi ограничен Стерео режимом, т.е. пока без 5.1-звука). Если есть сомнения, проверьте секцию "Дополнительная поддержка" в конце руководства.

Остановка ALSA

sudo chmod 776 /etc/modprobe.d/blacklist
sudo cat /lib/linux-sound-base/noALSA.modprobe.conf >> /etc/modprobe.d/blacklist

Следующий текстовый блок - это одна команда! Копируйте ячейку целиком:

sudo echo "blacklist snd_hda_intel 
blacklist snd_mixer_oss 
blacklist snd_pcm
blacklist snd_timer
blacklist snd_page_alloc
blacklist snd_hwdep
blacklist snd
blacklist soundcore" >> /etc/modprobe.d/blacklist

Настраиваем linux-sound-base

sudo dpkg-reconfigure linux-sound-base

В открывшемся "окошке" нужно нажать [Enter]. Далее нас попросят выбрать звуковую систему по умолчанию. Стрелочками выбираем OSS, жмём клавишу-Tab, чтобы перенести выделение на 'OK', снова жмём [Enter]

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

sudo apt-get install -y build-essential binutils linux-headers-`uname -r` gawk libtool libgtk2.0-dev mercurial 
sudo apt-get install -y libesd0 libsdl1.2debian-oss libssl-dev

Системные звуки в GNOME

Ubuntu Hardy/GNOME 2.22 (и более старые)

Если вы хотите иметь возможность слышать системные звуки (например, при login/logout), вам нужно установить Enlightenment Sound Daemon (ESD)

sudo apt-get install -y esound esound-clients esound-common libesd0

Ubuntu Intrepid/GNOME 2.24 (и более новые)

Начиная с версии 2.24 GNOME использует библиотеку libcanberra для проигрывания системных звуков. На текущий момент Ubuntu Intrepid использует версию libcanberra, совместимую только с ALSA/PulseAudio. Более современная версия libcanberra имеет поддержку OSS и/или gstreamer-бэкэнда, но пока не ясно, правильно ли она работает.

Системные звуки в KDE3

Убедитесь, что установлен пакет aRts

sudo apt-get install -y arts

Собираем OSS

OSS 4.0-1016 доступен в .deb пакете, но на настоящий момент эта версия считается сравнительно старой. Заместо неё мы будем собирать самую свежую - релиз кандидат OSS 4.1 На всякий случай перед сборкой перезагрузите компьютер, что бы модули ALSA никак не смогли нам помешать. После перезагрузки залогиньтесь, откройте консоль и мы начнём.

Получаем исходный код OSS

Исходный код OSS 4.1 можно получит скачав тестовый тарбол или через Mercurial-репозиторий. Версия в репозитории обновляется чаще, но в результате может быть временно неработоспособной. Если ваша аудиокарта серии X-Fi - используйте версию из репозитория, потому в ней содержатся некоторые улучшения.

Получаем исходный код OSS используя последний доступный тестовый тарбол

wget -A '*.bz2' -nd -r -l 1 http://www.4front-tech.com/developer/sources/testing/gpl/
sudo tar xf oss-v4.1*.tar.bz2 -C /usr/src
sudo mv /usr/src/oss-v4.1* /usr/src/oss-devel

Получаем исходный код OSS используя систему управления версиями Mercurial

cd /usr/src
sudo hg clone http://mercurial.opensound.com/ oss-devel

Создаём сборочную директорию

Для сборки OSS обязательно нужна пустая директория. Ее можно создать напрямую из файлового менеджера, либо следующей командой в консоли (будет создана папка oss41build в вашей домашней директории)

cd ~/
sudo rm -rf oss41build
mkdir oss41build
cd oss41build/

Специальные инструкции для Ubuntu 8.10 (intrepid)

При сборке OSS используются флаги -Wall и -Werror, так что предупреждения рассматриваются как ошибки и сборка заканчивается неудачей. В репозиторий недавно были добавлены патчи, чтобы обойти эту проблему, но если OSS всё равно не собирается, нужно изменить вызов команды configure на следующий:

NO_WARNING_CHECKS=yes /usr/src/oss-devel/configure

Можем собирать!

NO_WARNING_CHECKS=yes /usr/src/oss-devel/configure
make

Инсталлируем OSS

Мы можем установить OSS просто командой:

sudo make install

Но предпочтительно сначала собрать .deb-пакет и затем установить его стандартным способом (через dpkg или kpackage/gdebi) - в дальнейшем это облегчит жизнь при удалении OSS или откате на предыдущую версию:

sudo make deb
sudo dpkg -i oss*.deb

Обновляем вашу сборку OSS

Это сработает, если вы ранее брали исходный код из репозитория, с исходниками из тарбола - не получится

cd /usr/src/oss-devel
sudo hg pull
sudo hg update
cd ~/
sudo rm -rf oss41build
mkdir oss41build

Теперь переходим в секцию "Можем собирать!"

Настраиваем приложения для работы с OSS

Нам нужно настроить приложения, чтобы они использовали вывод звука через OSS, а не через ALSA Некоторые программ, например, аудиоплеер Audacious позволяют сделать это легко и просто. Для вразумления других может понадобится консоль, либо изменение в конфигурационных файлах. Смотри подробные инструкции в OSS wiki. Для некоторых популярных приложений инструкции представлены ниже.

Микшеры

"Родной" микшер

В комплекте с OSS идут два микшера: консольный ossmix и ossxmix с графической оболочкой на базе Gtk. Оба микшера можно запускать из консоли, но для ossxmix рекомендуется создать отдельный пункт в меню. Например в KDE это делается так: открыть KMenu: правый клик на любом элементе -> Изменить элемент -> Создать Новый элемент, вписываем в поле "Название" - ossxmix, в поле "Команда" - ossxmix -x, можно назначить горячую клавишу.

Микшер среды GNOME Mixer/апплет Управление Звуком

В Ubuntu 8.04.x апплет Управления звуком, основанный на gstreamer, не совместим с OSS, потому что в hardy используется старая версия gstreamer-plugins (в Ubuntu 8.10 всё работает), чтобы исправить эту ситуацию нужно подключить этот репозиторий:

deb http://ppa.launchpad.net/gstreamer-team/ubuntu hardy main

и установить из него пакеты gst-plugins-bad gst-plugins-base gst-plugins-good

kmix для KDE 3.5.9

Рекомендуется обновиться до версии KDE 3.5.10

kmix для KDE 3.5.10

Нужный патч уже применён, но чтобы kmix нашёл необходимые ему для работы данные, нужно скопировать файл /usr/lib/oss/include/sys/soundcard.h в папку /usr/include/sys, заменив soundcard.h уже имеющийся там. Это можно сделать командой в консоли:

sudo cp /usr/lib/oss/include/sys/soundcard.h /usr/include/sys

kmix для KDE 4.x

К сожалению, kmix-kde4 пока не работает с OSS. Вы можете пользоваться ossxmix, либо назначить команды на горячие клавиши. Здесь лежат полезные в этом случае скрипты

Flash

Скачайте файл install_flash_player_10_linux.tar.gz отсюда, распакуйте во временную папку, перейдите в неё и скопируйте файл libflashplayer.so в папку ~/.mozilla/plugins

Пользователям 64-битных систем

Нативный 64-битный Flash Player 10

Скачайте архив отсюда, распакуйте во временную папку, перейдите в неё и скопируйте файл libflashplayer.so в папку ~/.mozilla/plugins Так как нативная 64-битная версия Flash Player находится пока в альфа стадии, возможны ошибки и сбои в работе плеера, браузера или всей системы. Смотри, например, здесь

32-битный Flash Player в 64-битном окружении

Нужно скачать файл libflashsupport.so отсюда скопировать его в /usr/lib. Если вы сохранили libflashsupport.so в домашнюю папку, то команда будет выглядеть так:

sudo cp ~/libflashsupport.so /usr/lib32/
sudo ldconfig

Дополнительная настройка

Вы также можете собрать свою версию libflashsupport.c (Смотри как)

Решение проблем

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

Восстановление после неудачной установки .deb-пакета

Если вы устанавливали OSS из .deb-пакета и в процессе вас постигла неудача, выполните следующее (воспользуйтесь этим способом только в случае неудачной установки):

cd /var/lib/dpkg/info
rm oss-linux*

Откройте (с правами администратора) в любимом текстовом редакторе файл /var/lib/dpkg/status Вам нужно удалить секцию с примерно следующим содержанием:

Package: oss-linux
Status: install ok installed
Priority: extra
Section: alien
Installed-Size: 8440
Maintainer: root <[email protected]>
Architecture: amd64
Version: v4.0rc9-999
Depends: libatk1.0-0 (>= 1.12.1), libc6 (>= 2.4-1), libcairo2 (>= 1.2.4), libfontconfig1 (>= 2.3.0), libglib2.0-0 (>= 2.12.0), libgtk2.0-0 (>= 2.10.3), libpango1.0-0 (>= 1.14.5), libx11-6, libxcursor1 (>> 1.1.2), libxext6, libxfixes3, libxi6, libxinerama1, libxrandr2, libxrender1
Conffiles:
/etc/oss.conf 055432d38aaf37fc6de3dba4a95accc3
Description: Open Sound System sound drivers for Linux
Open Sound System for Linux (OSS/Linux) is a commercial quality sound driver
distributed by 4Front Technologies (http://www.opensound.com). OSS provides
support for practically all sound cards on the market including PnP and
many PCI ones. Installation and configuration is higly automated and easy to
perform. To obtain technical support and additional features, you will need to
order a license key from http://www.opensound.com/order.html
.
(Converted from a rpm package by alien version 8.64.) 

Консультация с официальной wiki OSS

Рекомендуется посетить официальную wiki проекта Open Sound System секцию Troubleshooting - возможно там находится ответ на ваш вопрос.

Дополнительная поддержка

Если вы установили драйвера OSS правильно, но у вас остались нерешенные проблемы у проекта OSS есть форум поддержки пользователей и IRC-канал. Прежде чем обращаться за помощью, выполните и сохраните, например, сюда вывод команд:

uname -a
ossmix
ossinfo -v3

это всё равно вам понадобится. Также сообщите о результатах работы команды osstest - есть ли звук вообще или какие ошибки она выдаёт.

Форумы

Вы можете спросить в этой теме на форуме forum.ubuntu.ru или открыть тему на форуме OpenSound.

IRC

Сервер Freenode, канал #oss. Не забудьте дать ссылку на pastebin.com с результатом диагностики.

Возвращаем назад ALSA

Здесь можно узнать как вернуть назад ALSA (проверено на ubuntu 8.10)

Содействие OSS

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

  • Оплатить лицензию на OSS. Таким образом вы получаете в течении двух лет техническую поддержку непосредственно от разработчиков
  • Сделать пожертвование посредством PayPal (любая сумма) на адрес [email protected]
  • Внести свой код через сообщество разработчиков. Подписаться на рассылку можно здесь
  • Дополняя и развиваю базу знаний - OSS wiki
  • Помогая другим пользователям на форуме и/или IRQ-канале #oss сервер Freenode
  • Распространяя информацию об OSS, там где пользователи сталкиваются с проблемами драйвера ALSA

Ссылки на другие ресурсы

  • www.opensound.com - домашняя страница проекта OpenSound
  • Пост в блоге Hannu касательно истории аудидрайверов в мире UNIX и Linux
  • OSS wiki
  • В этой теме на форуме forum.ubuntu.ru можно задать вопрос относительно OSS на русском языке

Page Maintainer(s)

seajey (Sergei Andreev)