LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   I'd like to use my Pinnacle pctv stereo/Philips SAA7134 tuner card... (https://www.linuxquestions.org/questions/linux-hardware-18/i%27d-like-to-use-my-pinnacle-pctv-stereo-philips-saa7134-tuner-card-388203/)

noware 12-01-2005 04:09 AM

I'd like to use my Pinnacle pctv stereo/Philips SAA7134 tuner card...
 
Hi All!

I'm quite a noobee here... I bought a Pinnacle PCTV stereo TV tuner card, it uses the Philips SAA7134 chip, which is said to be supported by kernels higher then 2.4.x. Because of this fact I build the latest stable kernel (2.6.14.3), and I found my chip when I made the XConfig thing, but unfortunetly I cannot make my tuner card work.

I wonder if there is some way to check that I have made everything correctly when I built my kernel and thus my kernel uses that module.

The other thing is : If my os uses the right module (at least it should do so , I think), why can't I use my tuner card with any app ? I tried xawTV , KDETV , and a lot of MPlayer frontends , but none of them worked.

Please someone help me! I don't wanna by a nother tuner card just because of I'm unable to set it up. I f somebody has a working Pinnacle PCTV stereo with P SAA7134 chip, please let me know.

Any suggestions can be helpful!

THX.

Electro 12-01-2005 10:00 PM

It will not detect the tuner so you need to specify a tuner model while loading saa7134 module. To do this in /etc/modules.conf or /etc/modprobe.conf add "options saa7134 tuner=X". Place a number where X is. It is a trial and error. I used tuner number 17 but it is for my LifeView Flyvideo 3000. Also it does not hurt to include card=X on the same line. MPlayer should of worked if you specify either S-Video or Composite.

Quote:

supported by kernels higher then 2.4.x
Well the saa7134 works with 2.4.x kernels, but only with work arounds. Kernel version 2.6.x supports it well with out any work arounds.

noware 12-06-2005 03:56 PM

You mean if I use kernel 2.6.x it should detect my card with no hacking?

Goofy180173 12-30-2005 05:28 AM

I have the same problem but i found a patch.
My problem is, what should i do with it. I´m a newbee, but maybe you can help me to run this patch and solve all our problems.
Here is the patch, i hope it works.

- Supports the Pinnacle PCTV 110i board, video inputs, and remote.

Signed-off-by: Ricardo Cerqueira <v4l@cerqueira.org>
Signed-off-by: Nickolay V. Shmyrev <nshmyrev@yandex.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>

-----------------

Index: hg/Documentation/video4linux/CARDLIST.saa7134
===================================================================
--- hg.orig/Documentation/video4linux/CARDLIST.saa7134
+++ hg/Documentation/video4linux/CARDLIST.saa7134
@@ -75,3 +75,4 @@
74 -> LifeView FlyTV Platinum Mini2 [14c0:1212]
75 -> AVerMedia AVerTVHD MCE A180 [1461:1044]
76 -> SKNet MonsterTV Mobile [1131:4ee9]
+ 77 -> Pinnacle PCTV 110i (saa7133) [11bd:002e]
Index: hg/drivers/media/video/ir-kbd-i2c.c
===================================================================
--- hg.orig/drivers/media/video/ir-kbd-i2c.c
+++ hg/drivers/media/video/ir-kbd-i2c.c
@@ -122,6 +122,64 @@ static IR_KEYTAB_TYPE ir_codes_purpletv[

};

+static IR_KEYTAB_TYPE ir_codes_pinnacle[IR_KEYTAB_SIZE] = {
+ [ 0x59 ] = KEY_MUTE,
+ [ 0x4a ] = KEY_POWER,
+
+ [ 0x18 ] = KEY_TEXT,
+ [ 0x26 ] = KEY_TV,
+ [ 0x3d ] = KEY_PRINT,
+
+ [ 0x48 ] = KEY_RED,
+ [ 0x04 ] = KEY_GREEN,
+ [ 0x11 ] = KEY_YELLOW,
+ [ 0x00 ] = KEY_BLUE,
+
+ [ 0x2d ] = KEY_VOLUMEUP,
+ [ 0x1e ] = KEY_VOLUMEDOWN,
+
+ [ 0x49 ] = KEY_MENU,
+
+ [ 0x16 ] = KEY_CHANNELUP,
+ [ 0x17 ] = KEY_CHANNELDOWN,
+
+ [ 0x20 ] = KEY_UP,
+ [ 0x21 ] = KEY_DOWN,
+ [ 0x22 ] = KEY_LEFT,
+ [ 0x23 ] = KEY_RIGHT,
+ [ 0x0d ] = KEY_SELECT,
+
+
+
+ [ 0x08 ] = KEY_BACK,
+ [ 0x07 ] = KEY_REFRESH,
+
+ [ 0x2f ] = KEY_ZOOM,
+ [ 0x29 ] = KEY_RECORD,
+
+ [ 0x4b ] = KEY_PAUSE,
+ [ 0x4d ] = KEY_REWIND,
+ [ 0x2e ] = KEY_PLAY,
+ [ 0x4e ] = KEY_FORWARD,
+ [ 0x53 ] = KEY_PREVIOUS,
+ [ 0x4c ] = KEY_STOP,
+ [ 0x54 ] = KEY_NEXT,
+
+ [ 0x69 ] = KEY_KP0,
+ [ 0x6a ] = KEY_KP1,
+ [ 0x6b ] = KEY_KP2,
+ [ 0x6c ] = KEY_KP3,
+ [ 0x6d ] = KEY_KP4,
+ [ 0x6e ] = KEY_KP5,
+ [ 0x6f ] = KEY_KP6,
+ [ 0x70 ] = KEY_KP7,
+ [ 0x71 ] = KEY_KP8,
+ [ 0x72 ] = KEY_KP9,
+
+ [ 0x74 ] = KEY_CHANNEL,
+ [ 0x0a ] = KEY_BACKSPACE,
+};
+
/* ----------------------------------------------------------------------- */
/* insmod parameters */

@@ -245,6 +303,58 @@ static int get_key_purpletv(struct IR_i2
*ir_raw = b;
return 1;
}
+
+/* The new pinnacle PCTV remote (with the colored buttons)
+ *
+ * Ricardo Cerqueira <v4l@cerqueira.org>
+ */
+
+static int get_key_pinnacle(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw)
+{
+ unsigned char b[4];
+ unsigned int start = 0,parity = 0,code = 0;
+
+ /* poll IR chip */
+ if (4 != i2c_master_recv(&ir->c,b,4)) {
+ dprintk(1,"read error\n");
+ return -EIO;
+ }
+
+ for (start = 0; start<4; start++) {
+ if (b[start] == 0x80) {
+ code=b[(start+3)%4];
+ parity=b[(start+2)%4];
+ }
+ }
+
+ /* Empty Request */
+ if (parity==0)
+ return 0;
+
+ /* Repeating... */
+ if (ir->old == parity)
+ return 0;
+
+
+ ir->old = parity;
+
+ /* Reduce code value to fit inside IR_KEYTAB_SIZE
+ *
+ * this is the only value that results in 42 unique
+ * codes < 128
+ */
+
+ code %= 0x88;
+
+ *ir_raw = code;
+ *ir_key = code;
+
+ dprintk(1,"Pinnacle PCTV key %02x\n", code);
+
+ return 1;
+}
+
+
/* ----------------------------------------------------------------------- */

static void ir_key_poll(struct IR_i2c *ir)
@@ -350,6 +460,12 @@ static int ir_attach(struct i2c_adapter
ir_type = IR_TYPE_OTHER;
ir_codes = ir_codes_empty;
break;
+ case 0x47:
+ name = "Pinnacle PCTV";
+ ir->get_key = get_key_pinnacle;
+ ir_type = IR_TYPE_OTHER;
+ ir_codes = ir_codes_pinnacle;
+ break;
case 0x7a:
name = "Purple TV";
ir->get_key = get_key_purpletv;
@@ -426,7 +542,7 @@ static int ir_probe(struct i2c_adapter *
*/

static const int probe_bttv[] = { 0x1a, 0x18, 0x4b, 0x64, 0x30, -1};
- static const int probe_saa7134[] = { 0x7a, -1 };
+ static const int probe_saa7134[] = { 0x7a, 0x47, -1 };
static const int probe_em2820[] = { 0x30, 0x47, -1 };
const int *probe = NULL;
struct i2c_client c;
Index: hg/drivers/media/video/saa7134/saa7134-cards.c
===================================================================
--- hg.orig/drivers/media/video/saa7134/saa7134-cards.c
+++ hg/drivers/media/video/saa7134/saa7134-cards.c
@@ -2391,6 +2391,33 @@ struct saa7134_board saa7134_boards[] =
.amux = LINE1,
}},
},
+ [SAA7134_BOARD_PINNACLE_PCTV_110i] = {
+ .name = "Pinnacle PCTV 110i (saa7133)",
+ .audio_clock = 0x00187de7,
+ .tuner_type = TUNER_PHILIPS_TDA8290,
+ .radio_type = UNSET,
+ .tuner_addr = ADDR_UNSET,
+ .radio_addr = ADDR_UNSET,
+ .gpiomask = 0x080200000,
+ .inputs = {{
+ .name = name_tv,
+ .vmux = 4,
+ .amux = TV,
+ .tv = 1,
+ },{
+ .name = name_comp1,
+ .vmux = 1,
+ .amux = LINE2,
+ },{
+ .name = name_svideo,
+ .vmux = 8,
+ .amux = LINE2,
+ }},
+ .radio = {
+ .name = name_radio,
+ .amux = LINE1,
+ },
+ },
};

const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
@@ -2809,6 +2836,12 @@ struct pci_device_id saa7134_pci_tbl[] =
.subdevice = 0x4ee9,
.driver_data = SAA7134_BOARD_MONSTERTV_MOBILE,
},{
+ .vendor = PCI_VENDOR_ID_PHILIPS,
+ .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
+ .subvendor = 0x11bd,
+ .subdevice = 0x002e,
+ .driver_data = SAA7134_BOARD_PINNACLE_PCTV_110i,
+ },{
/* --- boards without eeprom + subsystem ID --- */
.vendor = PCI_VENDOR_ID_PHILIPS,
.device = PCI_DEVICE_ID_PHILIPS_SAA7134,
Index: hg/drivers/media/video/saa7134/saa7134.h
===================================================================
--- hg.orig/drivers/media/video/saa7134/saa7134.h
+++ hg/drivers/media/video/saa7134/saa7134.h
@@ -203,6 +203,7 @@ struct saa7134_format {
#define SAA7134_BOARD_FLYTVPLATINUM_MINI2 74
#define SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180 75
#define SAA7134_BOARD_MONSTERTV_MOBILE 76
+#define SAA7134_BOARD_PINNACLE_PCTV_110i 77

#define SAA7134_MAXBOARDS 8
#define SAA7134_INPUT_MAX 8
Index: hg/drivers/media/video/tda8290.c
===================================================================
--- hg.orig/drivers/media/video/tda8290.c
+++ hg/drivers/media/video/tda8290.c
@@ -487,7 +487,7 @@ static void tda8290_init_tuner(struct i2
unsigned char tda8275a_init[] = { 0x00, 0x00, 0x00, 0x00, 0xdC, 0x05, 0x8b,
0x0c, 0x04, 0x20, 0xFF, 0x00, 0x00, 0x4b };
struct i2c_msg msg = {.addr = t->tda827x_addr, .flags=0,
- .buf=tda8275_init, .len = 14};
+ .buf=tda8275_init, .len = 14};
if (t->tda827x_ver != 0)
msg.buf = tda8275a_init;

Electro 12-31-2005 03:47 PM

A kernel patch will only work on only one kernel version. If you do not know the kernel version the patch is for, forget applying the patch.

Pinnacle PCTV is card number 26 but the TV tuner is unknown. By just doing, modprobe saa7134 card=26 should make the card work. If mplayer or tvtime is used, specify either S-Video or Composite (RCA). For the TV tuner, you have to do trial and error to find out what tuner number works. After you are done you should add the following lines to either /etc/modules.conf or /etc/modprobe.conf.

alias char-major-81-0 saa7134
options saa7134 card=26 tuner=X

Jykke 01-01-2006 02:46 PM

Err...I am having a sort of similar problem with my DVB-T card it is a card with analog and digital tuner (Kworld DVB-T 220). It is recognised as Philips something and dmesg answers something intelligent. Yet tvtime says no signal? I found some sort of script with which I can try all tuners but I don't know when I find a right one or at all? Is the "no signal" indication of wrong tuner or do I need to tune the channels for each and every tuner trial? Should take eternity to go through this one - any easier way?

magicsam 01-19-2006 04:57 PM

I had a lot of problems configuring my Pinnacle PCTV 50i card in Suse 10.
It was detected in YaST2 but I couldn't find any channels.

Got it working after installing: v4l-kernel-20051118 updated drivers
modprobe saa7134 card=77

The remote control should be supported, but I can't get it to work arggg

cat /proc/bus/input/devices gives this info:
I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="Pinnacle PCTV"
P: Phys=i2c-2/2-0047/ir0
H: Handlers=kbd event2
B: EV=100003
B: KEY=108fc010 2100802 0 0 0 0 48000 2180 c0000801 9e1680 7bb80 0 4000

Where should I start looking...?

Electro 01-20-2006 12:48 PM

You will also need to include tuner in the options line for saa7134 that is stated in either /etc/modules.conf or /etc/modprobe.conf. You have to go through each tuner to find out which one works the best for television. For remote control, you will need lirc.

I recommend you do not use those drivers. The latest software is in 2.6.x kernels.

anoopkjm 09-26-2006 09:51 AM

Quote:

Originally Posted by noware
Hi All!

I'm quite a noobee here... I bought a Pinnacle PCTV stereo TV tuner card, it uses the Philips SAA7134 chip, which is said to be supported by kernels higher then 2.4.x. Because of this fact I build the latest stable kernel (2.6.14.3), and I found my chip when I made the XConfig thing, but unfortunetly I cannot make my tuner card work.

I wonder if there is some way to check that I have made everything correctly when I built my kernel and thus my kernel uses that module.

The other thing is : If my os uses the right module (at least it should do so , I think), why can't I use my tuner card with any app ? I tried xawTV , KDETV , and a lot of MPlayer frontends , but none of them worked.

Please someone help me! I don't wanna by a nother tuner card just because of I'm unable to set it up. I f somebody has a working Pinnacle PCTV stereo with P SAA7134 chip, please let me know.

Any suggestions can be helpful!

THX.

I am also facing the same problem. I note that the above mentioned problem was posted a few months before. So I believe that you have been get positive results for your problem. So please send me ideas for the above problem.


All times are GMT -5. The time now is 03:49 PM.