Предлагам да си направим малка „база данни“ , с данните на TV тунерите ,който използваме . Така всеки , ще може да провери първо дали не може да ползва тези параметри .
Параметрите modul (driver) ,card ,tuner би трябвало да са за работеща карта ,ако нещо не е на ред или е особенно ,също би трябвало да се спомене.
Ето за моята (
lspci -nnv ):
Multimedia controller [0480]: Philips Semiconductors SAA7130 Video Broadcast Decoder [1131:7130] (rev 01)
Subsystem: Philips Semiconductors Unknown device [1131:0000]
saa7134 card=27 tuner=2
И една голяма "галерия" с тунери :
"bttv (and more) tv,video and radio card gallery."
http://www.bttv-gallery.de/PC TV картите ( TV тунерите ) се включват към компютъра чрез някой PCI слот , или по друг начин (
USB ,
PCMCIA ) . Самият сигнал , освен през съответния интерфейс , може да има и директен кабел , свързващ го с звуковата карта ( за звука ) и с видеокартата ( за видеото ) .
Макар ,че често им казваме „ TV тунерите“ , в действителност самият тунер е нещо друго , както се вижда от
блоковата диаграма Tунера е входната част на TV картата (реализиран на отделен чип ) , приема телевизионния сигнал , избира и усилва канала , така че на неговия изход да имаме един стандартизиран ( около 1 Волт ниво ) , комплексен TV сигнал. Картите , с повече възможности , подържащи повече телевизионни стандарти , могат да имат и по няколко тунера.
На схемата , чипа saa7134 осигурява декодирането на сигнала ,преобразуването му в цифрови данни , и предаването им по PCI шината , като подържа огромно количество компютърни и телевизионни стандарти.
Разбира се , този схема е просто пример , сега има голямо разнобразие от чипове с препокриващи се функции , така че конкретната реализация си зависи изцяло от производителя . И тъй ката този чип е програмируем , няма начин да разгадаем
точно конкретната хардуерна реализация .
saa7134 има 28 програмируеми входа/изхода ( GPIO , General Purpose Input/Output ) , и за това как се използват , обикновенно няма информация . То информация няма за почти нищо , повечето ,което е направено за подръжката на ТВ картите в Линукс е с реверсивно инжинерство и експерименти.
Дали нашата карта ще се разпознае или не от ядрото , в голяма степен зависи и от наличието на ЕЕПРОМ , в който в записана доста важна информация. Много от по-ефтините ( особенно китайските ) карти , нямат ЕЕПРОМ , В такъв случай , зареждането на драйвера saa7134 издава съобщението (/var/log/messages ):
„Congratulations! Your TV card vendor saved a few
cents for a eeprom, thus your pci board has no
subsystem ID and I can't identify it automatically“
Въпреки поздравленията ,това си е много лошо! Следва :
„ I feel better now. Ok, here are the good news:
You can use the card=<nr> insmod option to specify
which board do you have. The list:
card=0 -> UNKNOWN/GENERIC
card=1 -> Proteus Pro [philips reference design] 1131:2001 1131:2001
card=2 -> LifeView FlyVIDEO3000 5168:0138 4e42:0138
......................“
Т.е. ,ние все пак можем да заредим драйвера , като му укажем коя е точно нашата карта с парамерура „card=“ :
modprobe saa7134 card=<номер>
Съобщението:
„ board init: gpio is хххх “( board init: gpio is 4000 при мен ) е за споменатите преди GPIO. Просто прочитане на тяхното състовние . Полезната информация от това е малко , ( наличието на „ 1“ показва ,че съответния бит е вързан някъде ,не е свободен и можеби се използва ) . Така че , може единствено да сравните състоянието , (дали става дума за същата платка , но гаранция няма...).
Пак от горната блокова диаграма , виждаме една шина ,
I2C ,която обикаля навсякъде . И през нея се чете eeprom-a ( дали се и програмира ? ) , тунера , всичко. Това е една много икономична шина ( само две линии ) , и е основна , отновно с параметри ,можем да кажем на драйвера , да я сканира:
saa7134 i2c_scan=1
Ако успее да извлече необходимата информация , драйвера ще се конфигурира автоматично.
Описание на параметрите на драйвера можем да получим с:
modinfo saa7134
......................
i2c_scan:scan i2c bus at insmod time (int)
...........................
Има много ценни параметри , дано обаче не ви трябват.
Параметъра „tuner“ е един от тях. Ако знаем „card“ и „tuner“ ,май сме подкарали картата.Но ще трябва да зареждаме драйвера така:
modprobe saa7134
card=xxx tuner=yyyАко модула saa7134 е зареден при зареждането на Линукс ( което си е нормалният случай ) , и а ако той се използва ( от програма или друг модул ) , може да не ви се разреши да го премахнете ( с „modprobe -r saa7134 „).
Проверете дали не е зареден :
# lsmod | grep saa7134
................
saa7134 139544 1 saa7134_alsa
.....................................
В случея saa7134 се използва от saa7134_alsa , начи първо махаме saa7134_alsa (modprobe -r saa7134 _alsa или rmmod saa7134 _alsa) или дори да приложите "force" параметъра: rmmod
-f saa7134_alsa
Модула saa7134 е за чиповете saa7130/7133/7134/7135. ( saa7130 не подържа звук през PCI шината , само кабелче към звуковата карта ) Проекта , който подържа този модул е
http://www.linuxtv.org/ . Освен модули за ядрото , проекта изработва API -тата , има различни „utilitis“ , документация , но е за по напредналите. От там може да си свалите и „Mercurial“ клона с най – последните поправки .
И отново изкам да спомена , името на картата не е надежна информация , това е тектов файл и може да си напищете каквото искате в него , номерата се четат от хардуера.
card=2 -> LifeView FlyVIDEO3000 5168:0138 4e42:0138
Система ->5168:0138 и Подсистема ->4e42:0138
А тази информация може да получите с „lspci -nnv“ например.