Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: OSS4 и X-Fi Surround 5.1  (Прочитано 3644 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн rumaroder

  • Автор темы
  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
OSS4 и X-Fi Surround 5.1
« : 18 Августа 2010, 06:57:55 »
Ubuntu 10.04 + GNOME + OSS4 (quality fix) + Creative Sound Blaster X-Fi Surround 5.1
Минусы
(Нажмите, чтобы показать/скрыть)


1. Удаляем PulseAudio
sudo apt-get purge pulseaudio gstreamer0.10-pulseaudio

2. Удаляем ALSA
sudo /etc/init.d/alsa-utils stop
sudo apt-get remove alsa-base alsa-utils

3. Выбираем звуковую систему по умолчанию
sudo dpkg-reconfigure linux-sound-base
Откроется окно в терминале:
Сначала жмём [Enter], потом выбираем "OSS" и снова [Enter].


4. Перезагружаемся


5. Устанавливаем необходимые пакеты
sudo apt-get install -y binutils libgtk2.0-0 sed gcc libc6
sudo apt-get install -y build-essential linux-headers-`uname -r` gawk libtool libgtk2.0-dev
sudo apt-get install -y libesd0 libsdl1.2debian-oss
sudo apt-get install -y mercurial

6. Скачиваем исходники OSS
cd /opt
sudo hg clone http://opensound.hg.sourceforge.net:8000/hgroot/opensound/opensound oss-devel

7. Редактируем исходники
gksu gedit /opt/oss-devel/kernel/drv/oss_usb/ossusb_audio.c
ДО:
Цитировать
static int
write_control_value (ossusb_devc * devc, udi_endpoint_handle_t * endpoint,
           int ctl, int l, unsigned int v)
{
ПОСЛЕ:
Цитировать
static int
write_control_value (ossusb_devc * devc, udi_endpoint_handle_t * endpoint,
           int ctl, int l, unsigned int v)
{
  return 1;

gksu gedit /opt/oss-devel/configure
ДО:
Цитировать
#
# Set GRC3 min/max conversion quality setting to 3 to conserve space.
# TODO: Add support for configurable quality settings.
GRC_MIN_QUALITY=3
GRC_MAX_QUALITY=3
export GRC_MIN_QUALITY GRC_MAX_QUALITY
ПОСЛЕ:
Цитировать
#
# Set GRC3 min/max conversion quality setting to 3 to conserve space.
# TODO: Add support for configurable quality settings.
GRC_MIN_QUALITY=3
GRC_MAX_QUALITY=7
export GRC_MIN_QUALITY GRC_MAX_QUALITY
ДО:
Цитировать
   if ((p=getenv("GRC_MAX_QUALITY"))!= NULL)
   {
      if (sscanf(p, "%d", &q) != 1)
         {
            fprintf (stderr, "Bad GRC_MAX_QUALITY '%s'\n", p);
            exit (EXIT_FAILURE);
         }

      if (q >= 0 && q <= 6)
         grc_max = q;
   }
ПОСЛЕ:
Цитировать
   if ((p=getenv("GRC_MAX_QUALITY"))!= NULL)
   {
      if (sscanf(p, "%d", &q) != 1)
         {
            fprintf (stderr, "Bad GRC_MAX_QUALITY '%s'\n", p);
            exit (EXIT_FAILURE);
         }

      if (q >= 0 && q <= 7)
         grc_max = q;
   }


8. Создаем папку для сборки пакета
cd ~/
sudo rm -rf oss42build
mkdir oss42build
cd oss42build/

9. Собираем и устанавливаем
NO_WARNING_CHECKS=yes /opt/oss-devel/configure --enable-libsalsa=NO
make
sudo make deb
sudo dpkg -i oss*.deb

10. Добавим плагины
sudo apt-get install -y gstreamer0.10-plugins-bad

11. Настраиваем виртуальный микшер
gksu gedit /usr/lib/oss/soundon.user
Перед строкой "exit 0" добавляем строку вида "vmixctl attach device_pcm device_pcmin"
Вместо device_pcm и device_pcmin необходимо прописать путь до звуковых устройств (выхода и входа соответственно).
Устройства эти можно найти в папке /dev/oss/. Сорее всего, для X-Fi Surround 5.1 пути будут такие: /dev/oss/usb041e3042-1/pcm0 и /dev/oss/usb041e3042-2/pcmin0.
Ещё рекомендую добавить в начало эти строки, дабы не было ошибок при добавлении виртуальных устройств:
Цитировать
ossmix play-altset 1
ossmix rec-altset 1
И в конце, для восстановления уровня громкости при перезагрузке:
Цитировать
savemixer -L

В итоге должен получиться такой файл:
Цитировать
#!/bin/sh
#
# This script can be used to run programs every time OSS is started.
# By default, this script is disabled, and contains no commands.
# To enable, add executable permissions to this file, and edit below
# commands to be run.
ossmix play-altset 1
ossmix rec-altset 1
vmixctl attach '/dev/oss/usb041e3042-1/pcm0' '/dev/oss/usb041e3042-2/pcmin0'
savemixer -L
exit 0


12. Разрешаем исполнение файла soundon.user
sudo chmod +x /usr/lib/oss/soundon.user

13. Заодно его запустим
sudo /usr/lib/oss/soundon.user

14. Дабы подружить GNOME и OSS, добавляем репозиторий с фиксом и обновляемся
sudo add-apt-repository ppa:dtl131/ppa
apt-get update
sudo apt-get upgrade

15. Теперь можно добавить значок регулировки громкости на панель
нажать правой кнопкой на панель и выбрать "Регулятор громкости" ("Volume Control").

В зависимости от предпочтений, можно использовать gnome-volume-control, ossxmix, ossmix, установить xfce4-mixer, aumix-gtk или довольствоваться только значком громкости на панели.

16. В настройках приложений, по возможности, выбираем вывод звука через OSS


Послесловие
(Нажмите, чтобы показать/скрыть)

Оффлайн Adagumer

  • Новичок
  • *
  • Сообщений: 47
    • Просмотр профиля
Re: OSS4 и X-Fi Surround 5.1
« Ответ #1 : 03 Ноября 2010, 19:52:59 »
sudo hg clone http://opensound.hg.sourceforge.net:8000/hgroot/opensound/opensound oss-devel

Команда не выполняется пишет : abort: destination 'oss-devel' is not empty 
как быть ?

Оффлайн Adagumer

  • Новичок
  • *
  • Сообщений: 47
    • Просмотр профиля
Re: OSS4 и X-Fi Surround 5.1
« Ответ #2 : 06 Ноября 2010, 13:08:35 »
Прошел весь путь до данной фразы " Устройства эти можно найти в папке /dev/oss/."
И обнаружил что в папке /dev/ отсутствует папка /oss/ . Где теперь искать звуковые устройства ?

Оффлайн arzeth

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: OSS4 и X-Fi Surround 5.1
« Ответ #3 : 23 Января 2011, 15:48:02 »
перед самым наипоследнем в 7 шаге пропустили, что надо ввести $ gksu gedit /opt/oss-devel/setup/srcconf.c
Эта инструкция у меня заработала на Gentoo Linux (2.6.38-rc1) и Arch Linux (2.6.37), надо было только в 9 шаге вместо трех последних команд ввести make && sudo make install

Для тех кто имеет сразу две карты (например еще Realtek), надо в (обязательно предварительно забэкапив) /usr/lib/oss/etc/installed_drivers убрать не нужную карту.
Еще может быть когда-нибудь понадобится команда
# ossdevlinks -r
Инстркция работает (я проверял только 2.0) с недавно вышедшим X-Fi Surround 5.1 Pro. Поэтому у меня не /dev/oss/usb041e3042-число/, а /dev/oss/usb041e30df-число/
« Последнее редактирование: 23 Января 2011, 15:49:37 от arzeth »

 

Страница сгенерирована за 0.062 секунд. Запросов: 25.