LINUX.ORG.RU

Aver 507 и звук через DMA


0

0

В общем гуглил-гуглил, но так и не смог понять, как заюзать звук через
ДМА, везде упоминается опция alsa=1 и модуль saa7134-alsa, но его 
я так и не нашёл. Через линейку всё шоколадно работает. Гружу модуль 
так:

modprobe saa7134 card=35 tuner=38 alsa=1 secam=d

dmesg выдаёт:

saa7130/34: v4l2 driver version 0.2.14 loaded
saa7133[0]: found at 0000:02:09.0, rev: 209, irq: 23, latency: 64, mmio: 0xfeafb800
saa7133[0]: subsystem: 1461:a11b, board: AverMedia AverTV Studio 305 [card=35,insmod option]
saa7133[0]: board init: gpio is 60c
input: saa7134 IR (AverMedia AverTV St as /class/input/input89
tuner 1-0043: chip found @ 0x86 (saa7133[0])
tda9887 1-0043: tda988[5/6/7] found @ 0x43 (tuner)
tuner 1-0061: chip found @ 0xc2 (saa7133[0])
tuner 1-0061: type set to 38 (Philips PAL/SECAM multi (FM1216ME MK3))
tuner 1-0061: type set to 38 (Philips PAL/SECAM multi (FM1216ME MK3))
saa7133[0]: i2c eeprom 00: 61 14 1b a1 ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 20: ff f1 f7 ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: registered device video0 [v4l2]
saa7133[0]: registered device vbi0
saa7133[0]: registered device radio0

Что делать, как заюзать звук через DMA?!

Заранее спасибо!!!
★★★★★

кажется, я сейчас скажу глупость %)

когда я пишу/смотрю видео с тюнера mplayer, к примеру, звук хватается directly; тем же tvtime - исключительно через линейный выход. может тут не в модуле дело?

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

Я тут покопался и вот что выяснил, что бы включить ДМА, надо врубить альсу в ядре, и к нему же, в той же ядерной альсе, включить SND_PCM. После этого в секции где располагается включение модуля для saa7134 появляется пункт позволяющий включить ДМА saa7134-alsa. Но это не даёт в дальнейшем использовать отдельные (не ядерные) дрова альсы. Вообщем такой замкнутый круг, хочешь ДМА включай ядерную альсу и не пользуй внешнюю, хочешь внешнюю альсу, не получится использовать ДМА ибо такая опция не появится в конфиге.

Может есть какой способ, врубить ДМА и не использовать ядерную альсу :((((

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

> Может есть какой способ, врубить ДМА и не использовать ядерную альсу :((((

Передать параметр модулю?

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

> Передать параметр модулю?

эмм... поясню ещё разок... что бы была возможность включить модуль saa-7134-alsa, который собственно и отвечает за передачу звука через DMA, 
надо включить поддержку альсы в ядре, иначе в конфиге ядра данный модуль
не доступен. Если же я включаю в ядре поддержку альсы, то я уже не могу
поставить внешнюю альсу, вот что говорит emerge alsa-driver по этому поводу:

 * Found kernel source directory:
 *     /usr/src/linux
 * Found sources for kernel version:
 *     2.6.20-gentoo-r1
 * Checking for suitable kernel configuration options...
 *   ALSA is already compiled into the kernel.
 * Please check to make sure these options are set correctly.
 * Failure to do so may cause unexpected problems.
 * Once you have satisfied these options, please try merging
 * this package again.

По поводу параметра я знаю, это modprobe saa-7134 alsa=1, но это работает,
только когда имеется модуль saa-7134-alsa, но он будет только при включённой
ядерной альсе, а при этом невозможно поставить внешнюю альсу...получается
вот такой замкнутый цикл :((((

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

в ядре включаю так:

#
# Sound
#
CONFIG_SOUND=m

#
# Advanced Linux Sound Architecture
#
CONFIG_SND=m

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

/usr/src/linux-2.6.20.1/drivers/media/video/saa7134/Kconfig:

config VIDEO_SAA7134_ALSA
        tristate "Philips SAA7134 DMA audio support"
        depends on VIDEO_SAA7134 && SND
        select SND_PCM
        ---help---
          This is a video4linux driver for direct (DMA) audio in
          Philips SAA713x based TV cards using ALSA

          To compile this driver as a module, choose M here: the
          module will be called saa7134-alsa.

Попробуй сделать так:

-depends on VIDEO_SAA7134 && SND
+depends on VIDEO_SAA7134

Вдруг полегчает?

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

PS: А чем ядерная алса не устраивает? Она даже очень оперативно сынкается с версией разработчиков.

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

> PS: А чем ядерная алса не устраивает? Она даже очень оперативно сынкается с версией разработчиков.

Да просто на 2.6.20-gentoo-r1 она валится в кору при загрузке snd-emu10k1 :(

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

Понятно. У меня кстати SBLive5.1, надо будет попробовать ядерную алсу погонять. Ты лучше скажи, полегчает или нет, если Kconfig подправить.

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

не собирается :(

Root device is (8, 2)
Boot sector 512 bytes.
Setup is 6630 bytes.
System is 2751 kB
Kernel: arch/i386/boot/bzImage is ready  (#5)
  Building modules, stage 2.
  MODPOST 640 modules
WARNING: "snd_pcm_lib_ioctl" [drivers/media/video/saa7134/saa7134-alsa.ko] undefined!
WARNING: "snd_pcm_format_big_endian" [drivers/media/video/saa7134/saa7134-alsa.ko] undefined!
WARNING: "snd_pcm_format_signed" [drivers/media/video/saa7134/saa7134-alsa.ko] undefined!
WARNING: "snd_pcm_format_width" [drivers/media/video/saa7134/saa7134-alsa.ko] undefined!
WARNING: "snd_pcm_period_elapsed" [drivers/media/video/saa7134/saa7134-alsa.ko] undefined!
WARNING: "snd_pcm_stop" [drivers/media/video/saa7134/saa7134-alsa.ko] undefined!
WARNING: "snd_pcm_format_physical_width" [drivers/media/video/saa7134/saa7134-alsa.ko] undefined!
WARNING: "snd_pcm_hw_constraint_integer" [drivers/media/video/saa7134/saa7134-alsa.ko] undefined!
WARNING: "snd_pcm_new" [drivers/media/video/saa7134/saa7134-alsa.ko] undefined!
WARNING: "snd_card_register" [drivers/media/video/saa7134/saa7134-alsa.ko] undefined!
WARNING: "snd_pcm_set_ops" [drivers/media/video/saa7134/saa7134-alsa.ko] undefined!
WARNING: "snd_ctl_add" [drivers/media/video/saa7134/saa7134-alsa.ko] undefined!
WARNING: "snd_ctl_new1" [drivers/media/video/saa7134/saa7134-alsa.ko] undefined!
WARNING: "snd_card_new" [drivers/media/video/saa7134/saa7134-alsa.ko] undefined!
WARNING: "snd_card_free" [drivers/media/video/saa7134/saa7134-alsa.ko] undefined!
make[1]: *** [__modpost] Ошибка 1
make: *** [modules] Ошибка 2

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

Так ядерную алсу надо тоже модулями скомпилировать. Потом эти модули поудалять и прикрутить внешнюю.

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

99 строчка ебилда, убери восклицательный знак перед SND. Сейчас сам попробую, будет ли работать корректно таким образом подменённый модуль emu10k1.

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

в общем решил временно положить на идею с внешней альсой и собрал 
2.6.19-gentoo-r6 со встроенной, в итоге в kmix появился второй миксер
saa7134. Вот только из всего что он меняет, так это шаманским образом
отключает звук по линейному входу. При этом никакого саунд овер dma 
нет и в помине :(

hcyclon / # cat /proc/asound/cards
 0 [Audigy2        ]: Audigy2 - Audigy 2 ZS [SB0350]
                      Audigy 2 ZS [SB0350] (rev.4, serial:0x20021102) at 0xdf00, irq 19
 1 [SAA7134        ]: SAA7134 - SAA7134
                      saa7133[0] at 0xfeafb800 irq 23

hcyclon / # dmesg | grep saa
saa7130/34: v4l2 driver version 0.2.14 loaded
saa7133[0]: found at 0000:02:09.0, rev: 209, irq: 23, latency: 64, mmio: 0xfeafb800
saa7133[0]: subsystem: 1461:a11b, board: AverMedia AverTV Studio 305 [card=35,insmod option]
saa7133[0]: board init: gpio is 5c8
input: saa7134 IR (AverMedia AverTV St as /class/input/input2
saa7133[0]: i2c eeprom 00: 61 14 1b a1 ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 20: ff f1 f7 ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tuner 1-0043: chip found @ 0x86 (saa7133[0])
tuner 1-0061: chip found @ 0xc2 (saa7133[0])
saa7133[0]: registered device video0 [v4l2]
saa7133[0]: registered device vbi0
saa7133[0]: registered device radio0
saa7134 ALSA driver for DMA sound loaded
saa7133[0]/alsa: saa7133[0] at 0xfeafb800 irq 23 registered as card 1

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

хотел поставить 2.6.20-gentoo-r2 так на нём, мало того что Х-ы заводятся только после того как покликаешь мышью быстро (вот буквально, надо кликать мышкой, что бы Х-ы включились, иначе будут включаться отключаться, включаться отключаться, нвидия-9755), так и ещё через некоторое время произвольно падают.

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

хм а звук по дма оказывается есть, вот только когда делаешь:

sox -r 32000 -w -t alsa hw:1,0 -t alsa default

для того что бы убедиться отключал линейку, звук оставался.

Вот теперь вопрос, а как сделать что бы звук бы и без sox'a ?!

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

Подшаманить с подменой не получилось. Собираться собирается, но при попытке загрузки ругается. Остальное почитал, стало интересно. У меня тюнер старенький, звук через шнурок заводится, тут я видимо совсем не помошник. А вот иксы на -р1 надо посмотреть. На ванилле с этим драйвером работает как обычно.

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