Artikel arkivet's artikelkategori: ��vrigt
Skriven av tyfon 2003-12-14 20:35 url: 

Wintv PVR 250

WinTV PVR 250 i Linux.
======================

Den här texten skall hjälpa dig att få igång ditt wintv pvr 250 kort i linux.
Detta kan vara lite knepigt men om du följer denna text så borde det gå bra.

*Följande installation av wintv pvr 250 har gjorts på min dator poseidon.

poseidon:

System:
=======

Linux poseidon 2.4.23, Slackware 9.1.0.

Hårdvara:
=========

Intel Pentium 2GHz.
256DDR RAM.
WinTv PVR 250.*

1)Kärnan.
2)Installation.
3)Spela in och se på tv.
4)Kopiera och automatisera.
5)Avslutning.

1)Kärnan.

Jag tar för givet att du har lite grundläggande kunskaper om hur man kompilerar kärnan.

Följ mig:

tyfon@poseidon:~$ cd /usr/src/linux
tyfon@poseidon:/usr/src/linux$su
Password:
root@poseidon:/usr/src/linux#make mrproper
root@poseidon:/usr/src/linux#make menuconfig //xconfig, menuconfig || config

Nu skall vi kompilera in följande stöd i kärnan:

Character devices->I2C support->

[*] I2C support
[*] I2C bit-banging interfaces
[*] I2C /proc interface

Multimedia devices

[*] Video For Linux

->Video For Linux

[*]V4L information in proc filesystem
[M]BT484 Video for linux

Då var det klart, nu avslutar vi och sparar inställningarna.
Sätt igång och kompilera:

root@poseidon:/usr/src/linux# make dep clean bzImage modules
root@poseidon:/usr/src/linux# mv /boot/System.map /boot/System.map.old
root@poseidon:/usr/src/linux# cp System.map /boot/System.map
root@poseidon:/usr/src/linux# mv /boot/vmlinuz /boot/vmlinuz.old
root@poseidon:/usr/src/linux# cp arch/i386/boot/bzImage /vmlinuz

Redigera /etc/lilo.conf efter behov och uppdatera.

root@poseidon:/usr/src/linux# lilo

Reboota och boota den nya kärnan.

2)Installation.

Börja med att dra hem de senaste drivrutinerna på:

http://ivtv.sourceforge.net/ //Latest CVS Tarball

Packa upp dem på lämpligt ställe:

root@poseidon:/tmp# tar zxvf ivytvtar.gz

Flytta dig till ivtv/utils/:

root@poseidon:/tmp# cd ivtv/utils/

Kopiera videodev2.h till ivtv/driver/:

root@poseidon:/tmp/ivtv/utils#cp videodev2.h ../driver/

Flytta nu dig till ivtv/driver/ och kör sen make:

root@poseidon:/tmp/ivtv/utils# cd ../driver/
root@poseidon:/tmp/ivtv/driver# make

Då var modulerna kompilerade och klara. Vi fortsätter med att ladda dem:

root@poseidon:/tmp/ivtv/driver# modprobe tuner type=2
root@poseidon:/tmp/ivtv/driver# modprobe msp3400 once=1 simple=1 standard=0x60
root@poseidon:/tmp/ivtv/driver# insmod saa7115.o
root@poseidon:/tmp/ivtv/driver# insmod ivtv.o
root@poseidon:/tmp/ivtv/driver# insmod tveeprom.o
root@poseidon:/tmp/ivtv/driver# insmod ivtv-i2c.o

Hepp, då var det klart.

3)Spela in och se på Tv.

För att spela in så måste vi använda oss av lite program från ivtv/utils så vi kompilerar dem:

root@poseidon:/tmp/ivtv/driver# cd ../utils/

Redigera nu Makefile med din favorit editor:

root@poseidon:/tmp/ivtv/utils# nano Makefile

Redigera nu raden:

KERNELDIR = /lib/modules/'uname -r'/build

till:

KERNELDIR = /lib/modules/2.4.23/build //Dvs om ni har 2.4.23 versionen av kärnan annars får ni skriva in er
version här. Spara och avsluta.
Kör nu make:

root@poseidon:/tmp/ivtv/utils# make

Nu stoppar vi i vår skiva med drivrutiner som vi fick med när vi köpte kortet och mount:ar cdromen:

root@poseidon:/tmp/ivtv/utils# mount /dev/cdrom /mnt/cdrom/

Använd nu programmet ivtvfwextract.pl:

root@poseidon:/tmp/ivtv/utils# ./ivtvfwextract.pl --use-encoder-image=2 /mnt/cdrom/Pvr/pvr48xxx.EXE

Då var det klart och vi kan ta ur vår skiva igen:

root@poseidon:/tmp/ivtv/utils# eject

Nu lite kvicka inställningar och vi kan börja spela in om allt går väl:

root@poseidon:/tmp/ivtv/utils# ./test_ioctl -u 0xff // PAL standard.
root@poseidon:/tmp/ivtv/utils# ./test_ioctl -p 4 //Tuner input; Funkar inte detta värdet för dig så prova lite finns
0-9 värden, bara att leta.

root@poseidon:/tmp/ivtv/utils# ./test_ioctl -f width=720,height=576 //Upplösningen för inspelning.

Då var det dags att spela in då, det gör vi så här:

root@poseidon:/tmp/ivtv/utils# cat /dev/video0 > test.mpg

Avsluta med ctrl+c. Då kollar vi om det blev nåt, det gör vi lättast med ett program som kan spela upp mpg filer såsom
mplayer:

root@poseidon:/tmp/ivtv/utils# mplayer -vo xv test.mpg

Japp vackert är det :-P, nä skämt och sido. Vi måste ställa in en kanal med. Det gör vi lättast följande:

root@poseidon:/tmp/ivtv/utils# ./test_ioctl --set-freq=tuner=tuner,freq=X // där X är frekvensen gånger 16.

Dessa värden är olika beroende på din tv leverantör, jag har själv sydantenn vilka levererar tv via ett kabelnät.
Deras tv4 ligger på frekvens:

196Mhz. Då multiplicerar vi 196 x 16 = 3136.

Detta värde använder vi sen där X stod i föregående rad:

root@poseidon:/tmp/ivtv/utils# ./test_ioctl --set-freq=tuner=tuner,freq=3136

Då provar vi igen och spelar in:

root@poseidon:/tmp/ivtv/utils# cat /dev/video0 > test.mpg

Och stoppar med Ctrl+c och ser hur resultatet av denna inspelning blev:

root@poseidon:/tmp/ivtv/utils# mplayer -vo xv test.mpg

Denna inspelning resulterar i att jag har spelat in något som just då sändes ut på tv4. Vad du har spelat in beror på
vilken kanal du valt och om du multiplicerat rätt osv.

Då skall jag visa hur man ser på tv utan att behöva spela in det och se det i efterhand.
Det e väldigt enkelt och du borde kunna lista ut det själv...

Precis!!! Eftersom /dev/video0 sänder sitt utformat i mpg så kan man inte se det med ett vanligt tvprogram såsom
xawtv eller liknande, utan man använder sig av ett program som kan spela upp mpg filer igen. Dvs jag använder mig
av mplayer igen:

root@poseidon:/tmp/ivtv/utils# mplayer -vo xv /dev/video0

Åh titta nu ser vi på Tv4 i mitt fall och den kanal du valt i ditt. Vill vi byta kanal så är det bara att
stänga ner ditt program som spelar upp mpg filen och byta frekvens på samma sätt som vi gjort innan.

4)Kopiering och Automatisering.

Vi skall först kopiera våra moduler och de program vi behöver lite snabbt:

root@poseidon:/tmp/ivtv/utils# cd ../driver/ //förutsatt att du står kvar här sen tidigare.

Kopiera följande moduler:

root@poseidon:/tmp/ivtv/driver# cp msp3400.o /lib/modules/2.4.23/kernel/drivers/media/video/ //2.4.23 beroende på
kernel version.
root@poseidon:/tmp/ivtv/driver# cp saa7115.o /lib/modules/2.4.23/kernel/drivers/media/video/
root@poseidon:/tmp/ivtv/driver# cp ivtv.o /lib/modules/2.4.23/kernel/drivers/media/video/
root@poseidon:/tmp/ivtv/driver# cp tveeprom.o /lib/modules/2.4.23/kernel/drivers/media/video/
root@poseidon:/tmp/ivtv/driver# cp ivtv-i2c.o /lib/modules/2.4.23/kernel/drivers/media/video/

Bra då har vi det gjort, nu skall vi kopiera programmet test_ioctl till /usr/local/bin, eller var du
nu väljer att ha det:

root@poseidon:/tmp/ivtv/driver# cd ../utils/
root@poseidon:/tmp/ivtv/utils# cp test_ioctl /usr/local/bin/

Så där ja då var kopieringen klar. Vi kör vidare.
Editera /etc/rc.d/rc.local. //Tar för givet att du kör slackware, annars får du välja ett annat script som körs vid
uppstart.

root@poseidon:/tmp/ivtv/utils#nano /etc/rc.d/rc.local

Klistra in följande: //redigera efter behov.

modprobe tuner type=2

insmod /lib/modules/2.4.23/kernel/drivers/media/video/msp3400.o once=1 simple=1 standard=0x60
insmod /lib/modules/2.4.23/kernel/drivers/media/video/saa7115.o
insmod /lib/modules/2.4.23/kernel/drivers/media/video/ivtv.o
insmod /lib/modules/2.4.23/kernel/drivers/media/video/tveeprom.o
insmod /lib/modules/2.4.23/kernel/drivers/media/video/ivtv-i2c.o

Avsluta och spara.

Då kommer modulerna laddas automatiskt varje gång du startar ditt system eller kör scriptet.

5)Avslutning.

Bra länk:
http://ivtv.writeme.ch/tiki-view_faq.php?faqId=1

-tyfon