LINUX.ORG.RU

Итак, я купил PCMCIA ТВ-тюнер =)


0

0

На свой страх и риск решился... Кто если не мы ;)
AverTV Cardbus Plus. Hybryd брать не стал, ибо все равно в нашем городе
цифровым телевидением даже не пахнет....
Что имеем: все каналы показывает отлично (кабельное)!!!
Что не имеем: звук и пульт... Правда всего час еще работает =)

Debian unstable. Ядро 2.6.16-2.
Модули загруженны со следующими параметрами:
options saa7134 card=46 tuner=12
options tda9887 secam=d pal=d

Будем биться дальше =) Сюда буду писать об успехах =)

Звук удалось получить с помощью такого костыля:

sox -t ossdsp -w -c2 -r 32000 /dev/dsp2 -t ossdsp /dev/dsp

Работает конечно, но криво это как-то =) Будем продолжать =)

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

Еще один способ получить звук: mplayer -vo xv -ao alsa \ -tv driver=v4l2: \ device=/dev/video0: \ width=720:height=576: \ normid=1:chanlist=russia: \ immediatemode=0:alsa:adevice=hw.1,0:audiorate=32000: \ channels=<list_of_channels> tv://

Хотя фильмы смотрю mplayer'ом, для просмотра ТВ предпочитаю tvtime, который пока к сожалению только через SOX redirect работает.

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

> который пока к сожалению только через SOX

Думаю, так и будет. У меня по-другому не получилось на USB тюнере.

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

> Думаю, так и будет.

Раз mplayer умеет - значит проблема только программная =) А это уже решаемо... Вот донастрою, заставлю работать радио и пульт, а там уж можно будет за твтайм взяться ;)

hayova
() автор топика

Молодец, продолжай писать дальше. Просто все собираюсь купить ТВ-тюнер, а тут такое мини-HOWTO =)

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

Патч послать не слабо, но хотелось бы прежде доделать все до конца (пульт и радио) ;)

> На самом деле .radio_type должен быть TUNER_ABSENT

Тогда радио откуда взять? (правда оно пока и так не работает, но с TUNER_ABSENT его не будет точно)

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

TUNER_ABSENT не значит, что радио нет. Это значит, что нет специального тюнера для радио. Во многих других картах можно посмотреть пример.

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

Насчёт радио - при переключении на него слышно шум или просто тишина? Если полная тишина, то вполне вероятно, нужно ещё gpio переключать. Нужно подобрать правильные значения для .gpiomask и .gpio. Сделать это можно, собрав вывод программы RegSpy из dscaler под Win.

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

TEA5767 там точно есть (см. http://www.ixbt.com/monitor/aver-cardbus-plus.shtml).

> при переключении на него слышно шум или просто тишина?

шум слышно...

> Нужно подобрать правильные значения для .gpiomask и .gpio. Сделать это можно, собрав вывод программы RegSpy из dscaler под Win.

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

Кстати, интересный факт: в настоящий момент в модуле saa7134 есть еще две карты с этим фм-тюнером (62 и 63, если память не изменяет). Так вот если при загрузке saa7134 указать принудительно опцию card=62 (ну или 63), то tea5767 даже сам определяется (правда по i2c-адресу 0xc0/0x60). И крадио даже себя ведет как будто бы что-то ловит (значек приема в стерео моргает периодически), чего нет при попытке посадить его на 0xc2/0x61.

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

Результаты работы RegSpy (привожу только нужные параметры):

Во всех режимах:
SAA7134_GPIO_GPMODE:  0c440003   (00001100 01000100 00000000 00000011)                 
SAA7134_AUDIO_CLOCK:  00187de7   (00000000 00011000 01111101 11100111)                 

В режиме TV:
SAA7134_GPIO_GPSTATUS:  0c400001   (00001100 01000000 00000000 00000001)                 
SAA7134_ANALOG_IN_CTRL1: 81  (10000001)                                            
SAA7134_ANALOG_IO_SELECT: 32  (00110010)                                            
 
В режиме Composite:
SAA7134_GPIO_GPSTATUS:  0c400002   (00001100 01000000 00000000 00000010)                 
SAA7134_ANALOG_IN_CTRL1:  83  (10000011)                                            
SAA7134_ANALOG_IO_SELECT:  20  (00100000)                                            

В режиме S-Video:
SAA7134_GPIO_GPSTATUS: 0c400002   (00001100 01000000 00000000 00000010)                 
SAA7134_ANALOG_IN_CTRL1:  86  (10000110)                                            
SAA7134_ANALOG_IO_SELECT:  20  (00100000)

В режиме FM-Radio:
SAA7134_GPIO_GPSTATUS: 04400001  (00000100 01000000 00000000 00000001)                 
SAA7134_ANALOG_IN_CTRL1:  81 (10000001)                                            
SAA7134_ANALOG_IO_SELECT:  19  (00011001)                                            

В режиме выключено (после выключения АверТВ в оффтопике):
SAA7134_GPIO_GPSTATUS:  0c400000  (00001100 01000000 00000000 00000000)                 
SAA7134_ANALOG_IN_CTRL1:  81  (10000001)                                            
SAA7134_ANALOG_IO_SELECT:  0a  (00001010)

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

Из инструкции к DSacler'у:

;The value for 'GPIOMask' is available at the same time 'AudioCrystal' above
; is.  Its value is that of SAA7134_GPIO_GPMODE bit masked (bitwise AND) with
; 0x0EFFFFFF and '0x' stuck in front of the result.  The value shown by RegSpy
; is in hexadecimal.  More often than not, all that is necessary to get the
; correct value is to drop the left most digit and put '0x' in the front.
; e.g. "8018e700" becomes 0x018e700.  Unnecessary bits left in the value will
; be internally removed during actual use.
;
; The rest of the settings are input specific.  To work out their values, choose
; an input in the _other program_.  For that input, the correct values are:
;
; - For 'VideoPin', looking at the last digit of "SAA7134_ANALOG_IN_CTRL1".
; If it is between 0 and 4 (inclusive), that digit is used.  If it is 6 or 8,
; the value used is 0 and the input is probably s-video.  If it is 7 or 9, the
; value used is 1 and the input is probably s-video.  Any other value is
; unexpected.
;
; - For 'AudioPin', looking at the last digit of "SAA7134_ANALOG_IO_SELECT"
; masked (bitwise AND) with 3.  If it is between 0 and 2, this digit is used.
; Any other value is unexpected.  The conversion to textual representation
; (although this is not necessary) is 0 = "line1", 1 = "line2", 2 = "dac".
;
; - For 'GPIOSet', 'bits' is the value of "SAA7134_GPIO_GPSTATUS" bit masked
; (bitwise AND) with the value of GPIOMask determined earlier.  'mask' can be
; same as the value of GPIOMask.  The value shown by RegSpy is in hexadecimal.
; Some values for 'mask' in the cards already in this file differ from their
; respective GPIOMask values but those are the result of some guesswork by me.

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

Таким образом имеем:
gpiomask - это SAA7134_GPIO_GPMODE (0c440003) & 0x0EFFFFFF.

Получаем:
.audioclock = 0x00187de7
.gpiomask = 0xc440003

Значения для режима TV:
VideoPin (.vmux) = 1
AudioPin (.amux) = 2 & 3 = 2 = TV
.gpio = 0xc400001 & 0xc440003 = 0xc400001

Значения для режима Composite:
VideoPin (.vmux) = 3
AudioPin (.amux) = 0 & 3 = 0 = LINE1
.gpio = 0xc400002 & 0xc440003 = 0xc400002

Значения для режима S-Video:
VideoPin (.vmux) = 6 = 0
AudioPin (.amux) = 0 & 3 = 0 = LINE1
.gpio = 0xc400002 & 0xc440003 = 0xc400002

Значения для режима Radio:
AudioPin (.amux) = 9 & 3 = 1 = LINE2
.gpio = 0x4400001 & 0xc440003 = 0x4400001

Значения для режима Mute (по докам к 7134 я понял что эта
секция нужна вроде как только для 7130):
VideoPin (.vmux) = 1
AudioPin (.amux) = a & 3 = 2 (TV)
.gpio = 0xc400000 & 0xc440003 = 0xc400000

Вот, вроде все, поправьте если где ошибся =)

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

С этими настройками ТВ работает так же как и без них (композит и с-видео не проверить - не на чем).

А вот при влючении радио лампочка на тюнере гаснет :( И датчик приема в крадио тоже на ноль показывает :( При выключении крадио лампочка включается.

Я так понимаю, что где-то все-таки в моих расчетах есть ошибка :(

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

Попробовал поставить gpio = 0x4400001 (которое получилось для радио) для режима TV, получилось тоже самое - это значение gpio полностью выключает тюнер.

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

Так, попробовал в оффтопике... Там лампочка тоже гаснет при переключении в режим радио =)))

Значит все правильно... =)))

Поменял местами адреса тюнеров... тв на 61, фм на 60. Запускаю крадио и вуаля! Индикатор приема показывает полный прием! Правда звука нет все равно... Подозреваю что тюнер работает, просто каким-то образом нужно получить звук =)))

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

>тв на 61, фм на 60

это, скорее всего, правильно. Ещё драйвера должны tea5767 автодетектить и в логах должно быть об этом сообщение.

.tda9887_conf = TDA9887_PRESENT,

А вот это неправильно, я думаю, нужно убрать.

Я бы всё-таки сделал .gpiomask = 0x3 и поставил для радио .gpio = 0x1

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

> драйвера должны tea5767 автодетектить

Странно, но в этом раскладе автодетект не работает :( Не пойму почему... Если поставить опцией card к saa7134 одну из имещихся карт с tea5767 (62 и 63) то детектится на 0x60 без проблем...

> .tda9887_conf = TDA9887_PRESENT, А вот это неправильно

Не знаю, но если модуль TDA9887 загружен, но он автодетектится на 0х42...

> Я бы всё-таки сделал .gpiomask = 0x3 и поставил для радио .gpio = 0x1

На чем основаны Ваши предположения? Думаю что с gpiomask и gpio я как раз не ошибся...

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

Автодетект tea5767 работает только если убрать секцию инициализации карты из
функции saa7134_board_init1:
case SAA7134_BOARD_AVERMEDIA_CARDBUS_PLUS:
/* power-up tuner chip */
saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x08400000, 0x08400000);
saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08400000, 0x08400000);
msleep(1);
break;

Но в таком режиме мы получаем полное отсутствие ТВ-тюнера.

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

Итак на данный момент имеем, либо "признаки жизни" радио, но полное отсутствие этих признаков от ТВ, либо нормальную работу ТВ но полное отсутствие "признаков жизни" радио :((( Пульта нет во всех случаях :((((

Эх, кто-нибудь хоть подказал бы куда еще можно копнуть....

Написал, кстати, на суппорт авермедии, ждемс, может чего и дождемся =)

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