Skriven av tyfon 2003-12-14 20:35 url: 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