|
Candidate for Deletion |
Введение
Проект 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 моё оборудование?
Возможно. Проверьте список здесь - 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 <root@dev-desktop> 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 (любая сумма) на адрес hannu@opensound.com
Внести свой код через сообщество разработчиков. Подписаться на рассылку можно здесь
Дополняя и развиваю базу знаний - OSS wiki
Помогая другим пользователям на форуме и/или IRQ-канале #oss сервер Freenode
- Распространяя информацию об OSS, там где пользователи сталкиваются с проблемами драйвера ALSA
Ссылки на другие ресурсы
www.opensound.com - домашняя страница проекта OpenSound
Пост в блоге Hannu касательно истории аудидрайверов в мире UNIX и Linux
В этой теме на форуме forum.ubuntu.ru можно задать вопрос относительно OSS на русском языке
Page Maintainer(s)
seajey (Sergei Andreev)