Автобиография
Програми
Web Blog B
 
O Y A N   B O Y C H E
V Скинове & Fonts
Книга за Гости Игри
Лични Снимки Михаел Шумахер
Моите Приятели       Връзки
Меню
   
Инфо
 
Вашето IP:
 3.145.93.210
 
Дата и час:
20 Април 2024
14:00:45
 
Последна актуализация:
04 Януари 2024
 
Вие сте посетител №:
04.2024г. 1776
(2024г.) (0)

Посетители - ботове:
04.2024г. 1776
(2024г.) (11448)

 
 

Valid XHTML 1.0 Transitional

 
Новини
Gigabyte GT-PTV-AF-RH тв тунер
Работа под Линукс
Четвъртък, 15 Март 2007
Наскоро си закупих тв тунер Gigabyte GT-PTV-AF-RH. На сайта на производителя за този тунер не беше спомената никъде думата Линукс. Под Windows инсталацията на драйвери и софтуера от CD (PowerCinema и RemoteControl услугата) премина без проблем. Единственият проблем е със звука, който по някаква причина "гъгне". Инсталирах друг ТВ плейър - ChrisTV, но досадния проблем с неприятния звук остана. В крайна сметка не се зарових да търся кое точно предизвиква неприятния звук от тунера.

Но да се върнем на същината на статията, а тя е - Как накратко успях да подкарам тунера под Линукс и по-точно (Fedora Core 6, Fedora 13).

Малко повече технически данни за тв тунера:
Цитат
Tuner: Philips TDA8275A
Decoder chip: Philips SAA7131E
Interface: PCI
PCB size: Low profile with ATX bracket
Analog TV: NTSC / PAL / SECAM
FM radio: Yes
Remote sensor Interface: IR
Others: Supports Windows®XP MCE, ROHS model,


Най-важната част от тези данни е, че тунера е аналогов, предназначен за PCI слота и неговия чип е Philips SAA7131E.

При първоначалното стартиране на машината под Linux dmesg ми изпечата това (частта, която се отнася за тунера):
Цитат
Feb 14 08:25:08 boyan7640 kernel: saa7130/34: v4l2 driver version 0.2.14 loaded
Feb 14 08:25:08 boyan7640 kernel: ACPI: PCI Interrupt 0000:02:02.0[A] -> GSI 22 (level, low) -> IRQ 22
Feb 14 08:25:08 boyan7640 kernel: saa7133[0]: found at 0000:02:02.0, rev: 209, irq: 22, latency: 32, mmio: 0xfb000000
Feb 14 08:25:08 boyan7640 kernel: saa7133[0]: subsystem: 1458:9003, board: UNKNOWN/GENERIC [card=0,autodetected]
Feb 14 08:25:08 boyan7640 kernel: saa7133[0]: board init: gpio is c040000
Feb 14 08:25:08 boyan7640 kernel: saa7133[0]: i2c eeprom 00: 58 14 03 90 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
Feb 14 08:25:08 boyan7640 kernel: saa7133[0]: i2c eeprom 10: ff ff ff 0f ff 20 ff ff ff ff ff ff ff ff ff ff
Feb 14 08:25:08 boyan7640 kernel: saa7133[0]: i2c eeprom 20: 01 40 01 02 02 01 01 03 08 ff 00 c2 ff ff ff ff
Feb 14 08:25:08 boyan7640 kernel: saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Feb 14 08:25:08 boyan7640 kernel: saa7133[0]: i2c eeprom 40: ff 22 00 c2 96 ff 02 30 15 50 ff ff ff ff ff ff
Feb 14 08:25:08 boyan7640 kernel: saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Feb 14 08:25:08 boyan7640 kernel: saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Feb 14 08:25:08 boyan7640 kernel: saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Feb 14 08:25:08 boyan7640 kernel: saa7133[0]: registered device video0 [v4l2]
Feb 14 08:25:08 boyan7640 kernel: saa7133[0]: registered device vbi0


Това показва, че тв картата е непозната за v4l2 драйвера saa7134.

Започнах да ровя в google.com и къде ли не още и намерих значително количество информация. Част от страниците, които съм посетил са посочени най-отдолу в статията.

Указа се, че тв картата Gigabyte GT-PTV-AF-RH не е описана в saa7134 драйвера, но тя много наподобява Avermedia AVerTV GO 007 FM.

Реших да пробвам и за целта добавих следните редове в /etc/modprobe.conf (/etc/modprobe.d/saa7134.conf при Fedora 13):
Цитат
alias char-major-81 videodev
alias char-major-81-0 saa7134
options saa7134 card=57 tuner=54 gbuffers=4
install saa7134 /sbin/modprobe --ignore-install saa7134; /sbin/modprobe saa7134-alsa
# Fedora 13:
#install saa7134 /sbin/modprobe --ignore-install saa7134; /sbin/modprobe saa7134_alsa


Следва рестартиране на машината и dmesg, за да открием необходимата ни информация за тунера:
Цитат
Feb 15 23:39:29 boyan7640 kernel: saa7130/34: v4l2 driver version 0.2.14 loaded
Feb 15 23:39:30 boyan7640 kernel: ACPI: PCI Interrupt 0000:02:02.0[A] -> GSI 22 (level, low) -> IRQ 22
Feb 15 23:39:30 boyan7640 kernel: saa7133[0]: found at 0000:02:02.0, rev: 209, irq: 22, latency: 32, mmio: 0xfb000000
Feb 15 23:39:30 boyan7640 kernel: saa7133[0]: subsystem: 1458:9003, board: Avermedia AVerTV GO 007 FM [card=57,insmod option]
Feb 15 23:39:30 boyan7640 kernel: saa7133[0]: board init: gpio is c040700
Feb 15 23:39:30 boyan7640 kernel: input: saa7134 IR (Avermedia AVerTV GO as /class/input/input3
Feb 15 23:39:30 boyan7640 kernel: FDC 0 is a post-1991 82077
Feb 15 23:39:30 boyan7640 kernel: saa7133[0]: i2c eeprom 00: 58 14 03 90 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
Feb 15 23:39:30 boyan7640 kernel: saa7133[0]: i2c eeprom 10: ff ff ff 0f ff 20 ff ff ff ff ff ff ff ff ff ff
Feb 15 23:39:30 boyan7640 kernel: saa7133[0]: i2c eeprom 20: 01 40 01 02 02 01 01 03 08 ff 00 c2 ff ff ff ff
Feb 15 23:39:30 boyan7640 kernel: saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Feb 15 23:39:30 boyan7640 kernel: saa7133[0]: i2c eeprom 40: ff 22 00 c2 96 ff 02 30 15 50 ff ff ff ff ff ff
Feb 15 23:39:30 boyan7640 kernel: saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Feb 15 23:39:30 boyan7640 kernel: saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Feb 15 23:39:30 boyan7640 kernel: saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Feb 15 23:39:30 boyan7640 kernel: tuner 1-004b: chip found @ 0x96 (saa7133[0])
Feb 15 23:39:30 boyan7640 kernel: tuner 1-004b: setting tuner address to 61
Feb 15 23:39:30 boyan7640 kernel: tuner 1-004b: type set to tda8290+75a
Feb 15 23:39:30 boyan7640 kernel: tuner 1-004b: setting tuner address to 61
Feb 15 23:39:30 boyan7640 kernel: tuner 1-004b: type set to tda8290+75a
Feb 15 23:39:30 boyan7640 kernel: sd 0:0:0:0: Attached scsi generic sg0 type 0
Feb 15 23:39:30 boyan7640 kernel: saa7133[0]: registered device video0 [v4l2]
Feb 15 23:39:30 boyan7640 kernel: saa7133[0]: registered device vbi0
Feb 15 23:39:30 boyan7640 kernel: saa7133[0]: registered device radio0


От сега нататък нашия Gigabyte GT-PTV-AF-RH за Линукс-а ни е Avermedia AVerTV GO 007 FM, т.е. карта номер 57 от поддържаните карти от saa7134 драйвера. За звука използваме доплълнителен модул saa7134-alsa (saa7134_alsa при Fedora 13).

От тук нататък започнах с конфигуриране на софтуери за гледане на телевизията (tvtime и mplayer). Няма да изпадам в подробности само ще дам най-важните настройки необходими за гледане на ефирна телевизия (по въздух - гр. София):

~/.tvtime/tvtime.xml
Цитат
<?xml version="1.0"?>
<!DOCTYPE tvtime PUBLIC "-//tvtime//DTD tvtime 1.0//EN" "http://tvtime.sourceforge.net/DTD/tvtime1.dtd">
<tvtime xmlns="http://tvtime.sourceforge.net/DTD/">
<option name="DefaultBrightness" value="-1"/>
<option name="DefaultContrast" value="-1"/>
<option name="DefaultSaturation" value="-1"/>
<option name="DefaultHue" value="-1"/>
<option name="Norm" value="PAL"/>
<option name="PrevChannel" value="1"/>
<option name="Channel" value="2"/>
<option name="FramerateMode" value="0"/>
<option name="OverScan" value="3.5"/>
<option name="CheckForSignal" value="1"/>
<option name="AudioBoost" value="-1"/>
<option name="AlwaysOnTop" value="0"/>
<option name="QuietScreenshots" value="0"/>
<option name="UnmuteVolume" value="20817"/>
<option name="Muted" value="0"/>
<option name="V4LInput" value="0"/>
<option name="AudioMode" value="stereo"/>
<option name="PalDKMode" value="0"/>
<option name="Frequencies" value="custom"/><option name="FullScreen" value="0"/><option name="WideScreen" value="0"/><option name="DeinterlaceMethod" value="AdaptiveAdvanced"/></tvtime>


~/.tvtime/stationlist.xml
Цитат
<?xml version="1.0"?>
<!DOCTYPE stationlist PUBLIC "-//tvtime//DTD stationlist 1.0//EN" "http://tvtime.sourceforge.net/DTD/stationlist1.dtd">
<stationlist xmlns="http://tvtime.sourceforge.net/DTD/">
<list norm="PAL" frequencies="Custom" audio="bg">
<station name="Канал 1" active="1" position="1" band="Custom" channel="183.50MHz" finetune="0" norm="PAL" audio="auto"/>
<station name="bTV" active="1" position="2" band="Custom" channel="511.50MHz" finetune="0" norm="PAL" audio="auto"/>
<station name="NOVA" active="1" position="3" band="Custom" channel="591.50MHz" finetune="0" norm="PAL" audio="auto"/>
<station name="GTV" active="1" position="4" band="Custom" channel="631.25MHz" finetune="0" norm="PAL" audio="auto"/>
<station name="7 дни" active="1" position="5" band="Custom" channel="727.50MHz" finetune="0" norm="PAL" audio="auto"/>
<station name="CTN" active="1" position="6" band="Custom" channel="742.75MHz" finetune="0" norm="PAL" audio="auto"/>
</list>
</stationlist>


А това е скрипта, който използвам за стартиране на tvtime:
Цитат
#!/bin/bash
# Boyan B. Boychev
# Version 1.0

#
# Configurations
#
TVTIME="/usr/bin/tvtime"
SOX="/usr/bin/sox"

#
# Actions
#

$SOX -c 2 -s -w -r 32000 -t ossdsp /dev/dsp1 -t ossdsp -w -r 32000 /dev/dsp &
# Fedora 13:
#$SOX -r 32000 -t alsa hw:1,0 -t alsa hw:0,0 &
$TVTIME --mixer=/dev/mixer:pcm &

TVTIME_PID=$(/sbin/pidof tvtime)
SOX_PID=$(/sbin/pidof sox)

wait $TVTIME_PID
/usr/bin/kill $SOX_PID
/usr/bin/amixer -c 0 sset PCM 80%,80% unmute

Други варианти за подкарване на звука може да намерите описано на първия линк в края на статията.

При mplayer настройките са значително по-малко, но има допълнителни проблеми с активирането на screensaver-а, ако използвате такъв. Тук е даден пример с gnome-screensaver:
Цитат
#!/bin/bash
# Boyan B. Boychev
# Version 1.1

#
# Configurations
#
MPLAYER="/usr/bin/mplayer"
SCREENSAVER="/usr/bin/gnome-screensaver"
SCREENSAVER_CMD="/usr/bin/gnome-screensaver-command"

#
# Actions
#
$SCREENSAVER_CMD --exit &

$MPLAYER tv:// -tv \
driver=v4l2:\
device=/dev/video0:\
input=0:\
chanlist=europe-east:\
channels=R7-Канал_1,26-bTV,36-NOVA,41-GTV,53-7_дни,55-CTN:\
alsa:adevice=hw.1,0:\
amode=1:\
audiorate=32000:\
forceaudio:\
volume=100:\
immediatemode=0:\
norm=PAL &

MPLAYER_PID=$(/sbin/pidof mplayer)

wait $MPLAYER_PID
$SCREENSAVER &


И малко настройки за смяна на каналите в mplayer:
~/.mplayer/input.conf
Цитат
UP tv_step_channel 1
DOWN tv_step_channel -1
MOUSE_BTN0 vo_fullscreen
JOY_BTN1 tv_step_channel 1


До тук дадох основните базови настройки, за да подкарате тунера да работи и да гледате телевизия.

Запис на аудио и видео с помощта на mencoder:
Благодарение на Иван Тончев и с малко добавки от мен ще покажем как да записваме от тв тунера. На първо място трябва да инсталираме mencoder, като във Fedora това става с:
Примерен код
yum install mencoder

За правилното инсталиране на mencoder трябва предварително да сте си конфигурирали livna хранилището. В Debian базираните дистрибуции (като Ubuntu) трябва да използвате apt-get.
Ето и командата за запис от bTV:
Цитат
mencoder -tv driver=v4l2:width=768:height=576:channels=26-bTV:alsa:adevice=hw.1,0:audiorate=32000 -oac mp3lame -lameopts cbr:br=64 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900 -vf pp=lb -o output.avi tv://


Ако искате да записвате от Канал 1 да речем, сменете 26-bTV с R7-Канал_1. Аналогично за останалите програми. Използвайте vcodec=msmpeg4v2, ако имате проблеми с някои Windows плейъри, които не разбират mpeg4.

За съжаление нито аз, нито Иван Тончев до момента сме имали достатъчно време, за да разберем как едновременно със записа от тунера, да гледаме какво все пак се записва. Но това предстои. Всеки, който желае да помогне с обогатяването на статията може да ми пише на електронната поща.

Ако имате проблеми със звука като цяло или настройката на KDETV плейъра за KDE десктоп среда може да прочете настройките на Иван Тончев под KUBUNTU 7.04.

За мое и може би ваше съжаление не съм се занимавал с радиото и малко съм си играл с lirc за дистационното управление. Идеята е да добавя поддръжката за тази карта директно в saa7134 драйвера, да подкарам дистанционното управление и малко занимавка с радиото, но засега толкова от мен.

Полезни връзки по темата:

Публикувано в Софтуер, ХардуерРедактирана на 13 Септември 2020


<< Назад
© Боян Бойчев