Re: Pinnacle PCTV pro

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Sun, Dec 28, 2003 at 02:55:46AM +0100, Bent Larsen wrote:
> 
> Have anybody succeeded  in getting the Pinnacle PCTV Pro up running under linux?


Here's my 13+ stage step-by-step that works for me and hopefully
for you too.

Note: This is for a recent PCTV Pro card, a version 2.4
(EMPTYV-51015403-2.4).  Older/newer cards may have a different tuner.
There is no way to tell the tuner-type from looking at the outside
of the card.


1.
Download Linux kernel 2.6.0 from kernel.org, Gerd Knorr's video4linux
patch at
http://bytesex.org/patches/2.6.0-1/patch-2.6.0-kraxel.gz, untar
kernel and apply patch to same.


2.
Patch /usr/src/linux/drivers/media/video/tuner.c with courtesy Gerd
Knorr:

--- video4linux/tuner.c.orig	2003-12-17 11:32:01.000000000 +0100
+++ video4linux/tuner.c	2003-12-21 18:46:07.161379609 +0100
@@ -745,7 +745,8 @@
 	company_code = buf[0x11] << 8 | buf[0x12];
         printk("tuner: microtune: companycode=%04x part=%02x rev=%02x\n",
 	       company_code,buf[0x13],buf[0x14]);
-        if (company_code != 0x4d54) {
+        if (company_code != 0x4d54 &&
+	    company_code != 0x3cbf) {
 		printk("tuner: microtune: unknown companycode\n");
 		return 0;
} 		 	


3.
Patch /usr/src/linux/drivers/media/video/tda9887.c with courtesy Gunther
Mayer:

*** tda9887.c.orig	Sun Dec 28 23:33:46 2003
--- tda9887.c	Sun Dec 28 23:33:35 2003
***************
*** 25,31 ****
  
  /* Addresses to scan */
  static unsigned short normal_i2c[] = {I2C_CLIENT_END};
! static unsigned short normal_i2c_range[] = {0x86>>1,0x86>>1,I2C_CLIENT_END};
  I2C_CLIENT_INSMOD;
  
  /* insmod options */
--- 25,31 ----
  
  /* Addresses to scan */
  static unsigned short normal_i2c[] = {I2C_CLIENT_END};
! static unsigned short normal_i2c_range[] = {0x96>>1,0x96>>1,I2C_CLIENT_END};
  I2C_CLIENT_INSMOD;
  
  /* insmod options */


4.
Recompile kernel, WITH i2c as modules, WITH video4linux as modules, make
modules, make modules_install, run lilo etc.


5.
Reboot


6.
Remove /lib/modules/2.6.0/kernel/drivers/media/video/tvaudio.ko or make
it a dotfile.


7.
To be sure, run tv-off:
$> cat tv-off
#!/bin/sh

modprobe --quiet --remove bttv
modprobe --quiet --remove btcx_risc
modprobe --quiet --remove tvaudio
modprobe --quiet --remove tuner
modprobe --quiet --remove videodev
modprobe --quiet --remove tda9887
modprobe --quiet --remove msp3400
modprobe --quiet --remove video_buf
modprobe --quiet --remove v4l1-compat
modprobe --quiet --remove v4l2-common
modprobe --quiet --remove i2c-algo-bit
modprobe --quiet --remove i2c-piix4
modprobe --quiet --remove i2c-dev
modprobe --quiet --remove i2c-core


8.
Edit /etc/modrobe.conf:
Remove old conflicting references to i2c stuff and bttv, vtx, vbi stuff,
then add this piece:

alias char-major-81 vtx
alias char-major-89 i2c-dev
alias char-major-81 videodev
alias char-major-81-0 bttv
alias char-major-81-1 bttv

# NORMAL:
options bttv radio=1 gbuffers=8 autoload=1
install bttv \
	/sbin/modprobe --quiet tda9887 pal=b ; \
	/sbin/modprobe --quiet tuner   pal=b ; \
	/sbin/modprobe --quiet msp3400 simple=1 once=1 ; \
	/sbin/modprobe --quiet --ignore-install bttv

# DEBUG:
#options i2c-core i2c_debug=1
#options i2c-algo-bit bit_test=0 i2c_debug=1
#
#options bttv radio=1 gbuffers=4 autoload=1 bttv_debug=1 vbi_debug=1 bttv_verbose=1
#install bttv \
#	/sbin/modprobe --quiet tda9887 debug=1 pal=b ; \
#	/sbin/modprobe --quiet tuner debug=1 pal=b ; \
#	/sbin/modprobe --quiet msp3400 debug=1 simple=1 once=1 ; \
#	/sbin/modprobe --quiet --ignore-install bttv



9.
Get latest MAKEDEV-3.3.8-2.tar.gz, and in /dev/ run 'makedev i2c' and
'makedev v4l'


10.
Run tv-init
$> cat tv-init
#!/bin/sh

# mightily important:
depmod -a

modprobe --quiet i2c-piix4
modprobe --quiet i2c-core
modprobe --quiet i2c-dev
modprobe --quiet i2c-algo-bit

modprobe --quiet videodev
modprobe --quiet v4l2-common
modprobe --quiet v4l1-compat
modprobe --quiet video-buf

modprobe --quiet bttv


11.
Inspect dmesg output: should say something to the effect:
Linux video capture interface: v1.00
bttv: driver version 0.9.12 loaded
bttv: using 8 buffers with 2080k (520 pages) each for capture
bttv: Bt8xx card found (0).
bttv0: Bt878 (rev 17) at 0000:02:0d.0, irq: 21, latency: 32, mmio: 0xf3000000
bttv0: detected: Pinnacle PCTV [card=39], PCI subsystem ID is 11bd:0012
bttv0: using: Pinnacle PCTV Studio/Rave [card=39,autodetected]
bttv0: gpio: en=00000000, out=00000000 in=00fffbff [init]
tda9887: chip found @ 0x96
registering 0-004b
tuner: chip found @ 0xc0
registering 0-0060
msp34xx: init: chip=MSP3410G-B11 +nicam +simple +radio
msp3410: daemon started
registering 0-0040
bttv0: i2c: checking for MSP34xx @ 0x80... found
bttv0: pinnacle/mt: id=2 info="PAL+SECAM / stereo" radio=yes
bttv0: using tuner=33
tuner: type set to 33 (MT20xx universal)
tuner: microtune: companycode=3cbf part=42 rev=2f
tuner: microtune MT2050 found, OK
bttv0: i2c: checking for MSP34xx @ 0x80... found
bttv0: i2c: checking for TDA9875 @ 0xb0... not found
bttv0: i2c: checking for TDA7432 @ 0x8a... not found
bttv0: registered device video0
bttv0: registered device vbi0
bttv0: registered device radio0
bttv0: PLL: 28636363 => 35468950 . ok


12.
Run /usr/local/bin/xawtv $@ >/var/log/xawtv.log 2>&1 &
Be sure ~/.xawtv has a line
norm = PAL
or whatever is appropriate for you.
Play with finding stations with up/down-arrow and/or play with
'capture = overlay', 'capture = grabdisplay', 'capture = off', etc.


13.
Maybe apply patch courtesy me to tuner.c to get radio working from
video4linux mailing list, recompile that module, install etc.


13+.
Mail me 'thank you' message.


-- 
 typos hapen




[Index of Archives]     [Linux DVB]     [Video Disk Recorder]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Free Photo Albums]     [Fedora Users]     [Fedora Women]     [ALSA Users]     [ALSA Devel]     [Linux USB]

Powered by Linux