LINUX.ORG.RU

Звуковуха и дублекс


0

0

Проблема такая: при работе aRts нет возможности использовать звуковуху другими приложениями - говорят что занята. Например мне хотелось бы слушать музыку через Rhythmbox, сидя в KDE, но для этого приходится выключать aRts сервер...:(

Если я не ошибаюсь, то решение кроется во включениее дублекса (дуплекса? как правильно?)... Хотя я ничего в этом не понимаю..

В BDS все работало... Может в драйверах alsa все нормально было бы?

FC1, VIA82xx

Для начала нужно ответить на вопрос - может ли твоя звуковуха
многопоточность. full duplex, если мне не изменяет память, это когда
ты можешь записывать звук и что-то в параллель воспроизводить (т.е.
к данном случаю не подходит - если не прав, поправьте).

У тебя AC'97, если я ничего не путаю.

Попробуй настроить альсу как здесь и вырубить arts:

http://alsa-project.org/alsa-doc/doc-php/template.php?module=via82xx

P.S. Возможно, что arts тебе не нужен (это, кстати, не драйвер, а звуковой
сервер для совсем убогих карт, поэтому сравнивать его с alsa некорректно).
Дело в том, что с arts умеют работать далеко не все.

jackill ★★★★★
()
Ответ на: комментарий от jackill

Дык arts мне нужен - все кде-шные приложения ведь через него работают... ???

Вариант - если будет работать дуплекс - заставить aRts работать через альсу... я прав?

Зы. ща попробую настроить альсу...

vector_d
() автор топика
Ответ на: комментарий от sS

Пытался альсу последнюю постави пользуясь предложенным руководством - чето с модулями не так... точнее с их зависимостями. просто не загружаются..

В итоге поставил ядро 2.6 со всроенной альсой - все заработало, только модули сами не загружаются... вкомпилил их в ядро - все типа хорошо, а звука не слышно..

vector_d
() автор топика
Ответ на: комментарий от sS

> Попробуй ядерную эмуляцию многоканальности
# make
gcc -D__KERNEL__ -DCPU=586 -DMODULE -DLINUX -I/usr/src/linux/include -Wall -Wstrict-prototypes -O3 -c kmixer.c
In file included from /usr/src/linux/include/asm/semaphore.h:39,
from /usr/src/linux/include/linux/fs.h:202,
from /usr/src/linux/include/linux/devfs_fs_kernel.h:4,
from kmixer.c:60:
/usr/src/linux/include/asm/system.h: In function `__set_64bit_var':
/usr/src/linux/include/asm/system.h:189: warning: dereferencing type-punned pointer will break strict-aliasing rules
/usr/src/linux/include/asm/system.h:189: warning: dereferencing type-punned pointer will break strict-aliasing rules
kmixer.c: At top level:
kmixer.c:101: warning: function declaration isn't a prototype
kmixer.c: In function `thread':
kmixer.c:141: error: structure has no member named `sigmask_lock'
kmixer.c:143: error: too many arguments to function `recalc_sigpending'
kmixer.c:194: warning: concatenation of string literals with __FUNCTION__ is deprecated
kmixer.c:224: warning: label `sleep_continue' defined but not used
kmixer.c: In function `kmixer_open':
kmixer.c:257: warning: assignment from incompatible pointer type
kmixer.c: At top level:
kmixer.c:560: warning: function declaration isn't a prototype
kmixer.c: In function `init_module':
kmixer.c:568: warning: concatenation of string literals with __FUNCTION__ is deprecated
kmixer.c:575: warning: concatenation of string literals with __FUNCTION__ is deprecated
kmixer.c:582: warning: concatenation of string literals with __FUNCTION__ is deprecated
kmixer.c:589: warning: concatenation of string literals with __FUNCTION__ is deprecated
kmixer.c:599: warning: concatenation of string literals with __FUNCTION__ is deprecated
kmixer.c: At top level:
kmixer.c:621: warning: function declaration isn't a prototype
kmixer.c: In function `cleanup_module':
kmixer.c:627: warning: concatenation of string literals with __FUNCTION__ is deprecated
kmixer.c:641: warning: concatenation of string literals with __FUNCTION__ is deprecated
kmixer.c: At top level:
kmixer.c:649: warning: function declaration isn't a prototype
kmixer.c:649: warning: `is_sig' defined but not used
make: *** [kmixer.o] Ошибка 1

В чем дело?

vector_d
() автор топика
Ответ на: комментарий от vector_d

>kmixer.c:141: error: structure has no member named `sigmask_lock' >kmixer.c:143: error: too many arguments to function `recalc_sigpending'

Версия ядра какая ? Я последний раз собирал его для 2.4.21 - все работало

В любом случае можешь обратится к автору ;)

sS ★★★★★
()
Ответ на: комментарий от sS

Версия 2.4.22 - дефолтная из FC1, сегодня пересобрал (т.е. исходники именно от рабочего ядра..).

Пробовал собрать старые версии - тоже самое.

А вообще идея мне понравилась, а то альса толком не работает - переодически скорость меняется (видимо с буфером как-то связано), а то иногода и вообще слетает - вместо желаемых звуков - жуткое шипение и треск...:(

vector_d
() автор топика
Ответ на: комментарий от vector_d

>Версия 2.4.22 - дефолтная из FC1,

тогда точно к автору - как я понял эта штука собиралась для vanill-ы ... ну или разобраться с некомпилирующимся куском самому .. это по моему какой то спинлок не компиляется (исходников на домашней машинке нет под рукой)

sS ★★★★★
()
Ответ на: комментарий от sS

Точно. Взял vanill'у 2.4.20 - все собралось... А вообще я думаю используются ли какие-то особо специфичные функции ядра? может попробовать полученые модули загрузить в рабочее ядро? (я мало в этом понимаю вообщето..:()

>ну или разобраться с некомпилирующимся куском самому .. это по моему какой то спинлок не компиляется

Я в C только основы знаю: как переменную объявить, как ей значение присвоить и т.п. В том что там написано я не разберусь!:((((

А вообще: Спасибо!

vector_d
() автор топика
Ответ на: комментарий от vector_d

Вдогонку

>Точно. Взял vanill'у 2.4.20 - все собралось... А вообще я думаю используются ли какие-то особо специфичные функции ядра? может попробовать полученые модули загрузить в рабочее ядро? (я мало в этом понимаю вообщето..:()

Нет - модуль можно поставить только в то ядро для которого он собирался ImHO проще переписать модуль.

sS ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.