[linux-dvb] Pinnacle PCTV sat CI and DST module

Marko Poikonen mtp_valid_2005 at nic.fi
Sat Sep 24 17:37:25 CEST 2005


> > I have Pinnacle PCTV sat CI with conax cam and valid subscriber
> > card. I can watch FTA channels with Kaffeine but when I try to see
> > scrambled channel I get nothing (except next output).
>
> This card is a Twinhan DST-CI clone whose comon interace is handled by
> dst-ci module. So far the status is:
> - the dst-ci api is different from the ci api of Hauppauge card (high
>   level vs low level)
> - the only application handling dst-ci api is ca_zap which does not
>   work for everybody
> - vdr handles only low-level ci API and will not work with dst-ci
>   module (AFAIK, vdr is the only linux application that can handle
>   decryption)

Unfortunately you seem to be right I can't tune using ca_zap. I also found next
lines from my dmesg output.

dst_command: checksum failure
dst_get_mac: Unsupported Command

I am little suspicious that those lines relates to some problem. I also had some
minor problems with scanning of channels . I used atscscan to scan some
channels. The problem with atscscan was that in the result which it gave
frequency and polarization was wrong. I correct them manually and then I was
able to tune in to channel with szap. But I didn't succeed with ca_zap I only
got next output.

Using Adpater=[/dev/dvb/adapter0]
 Frontend=[/dev/dvb/adapter0/frontend0]
 Demux=[/dev/dvb/adapter0/demux0]
 Slot=[/dev/dvb/adapter0/ca0]
Parsing chan.conf
Satellite frontend
parse_sat_channel_list: Channel=[BBCW], Frequency=[11325], Satellite=[0],
	Symbol Rate=[24500], Video=[513], Audio=[644], Service=[577]
Service ID=[577]
parse_pat: ----------------->parse PAT section
parse_pat: PAT => Section Length=[65], TS ID=[1]
parse_si: PAT: Close Demux /dev/dvb/adapter0/demux0

I might even consider to help implement some support for cicam to Kaffeine. I
said consider because currently I don't have any clue what to do and how big
effort it will take. But first of all I like to get this thing to work.

Lastly here is complete output of my dmesg and modprobe commands what I gave:

modprobe bttv i2c_hw=1 card=0x71
modprobe dst verbose=5
modprobe dvb-bt8xx

 16 (level, low) -> IRQ 17
aty128fb: Found Intel x86 BIOS ROM Image
aty128fb: Rage128 BIOS located
aty128fb: Rage128 TF Ultra AGP [chip rev 0x4] 32M 128-bit SDR SGRAM (1:1)
Console: switching to colour frame buffer device 80x30
fb0: ATY Rage128 frame buffer device on Rage128 TF Ultra AGP
aty128fb: Rage128 MTRR set to ON
b44.c:v0.95 (Aug 3, 2004)
PCI: Enabling device 0000:02:05.0 (0004 -> 0006)
ACPI: PCI Interrupt 0000:02:05.0[A] -> GSI 20 (level, low) -> IRQ 21
eth0: Broadcom 4400 10/100BaseT Ethernet 00:e0:18:bd:af:01
bttv: driver version 0.9.16 loaded
bttv: using 8 buffers with 2080k (520 pages) each for capture
bttv: Bt8xx card found (0).
PCI: Enabling device 0000:02:09.0 (0004 -> 0006)
ACPI: PCI Interrupt 0000:02:09.0[A] -> GSI 21 (level, low) -> IRQ 23
bttv0: Bt878 (rev 17) at 0000:02:09.0, irq: 23, latency: 32, mmio: 0xdb000000
bttv0: detected: Pinnacle PCTV SAT CI [card=113], PCI subsystem ID is 11bd:0026
bttv0: using: Twinhan DST + clones [card=113,autodetected]
bttv0: gpio: en=00000000, out=00000000 in=00fb09fd [init]
bttv0: using tuner=4
bttv0: add subdevice "dvb0"
bt878: AUDIO driver version 0.0.0 loaded
bt878: Bt878 AUDIO function found (0).
PCI: Enabling device 0000:02:09.1 (0004 -> 0006)
ACPI: PCI Interrupt 0000:02:09.1[A] -> GSI 21 (level, low) -> IRQ 23
bt878(0): Bt878 (rev 17) at 02:09.1, irq: 23, latency: 32, memory: 0xda800000
Real Time Clock Driver v1.12
ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is on for TX and on for RX.
NET: Registered protocol family 10
Disabled Privacy Extensions on device c0414260(lo)
IPv6 over IPv4 tunneling driver
Linux agpgart interface v0.101 (c) Dave Jones
[drm] Initialized drm 1.0.0 20040925
ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 17
[drm] Initialized r128 2.5.0 20030725 on minor 0:
eth0: no IPv6 routers present
DVB: registering new adapter (bttv0).
rdc_8820_reset: Resetting DST
dst_gpio_outb: mask=[0004], enbb=[0004], outhigh=[0000]
dst_gpio_outb: mask=[0004], enbb=[0004], outhigh=[0004]
dst_comm_init: Initializing DST.
dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
rdc_reset_state: Resetting state machine
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
writing [ 00 06 00 00 00 00 00 fa ]
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
read_dst: reply is 0xff
dst_wait_dst_ready: dst wait ready after 1
read_dst: reply is 0x0
 0x44 0x53 0x54 0x4d 0x43 0x49 0x3c
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
dst_get_device_id: Recognise [DSTMCI]

dst_type_print: DST type: satellite
DST type flags : 0x1 newtuner 0x10 firmware version = 2
dst_comm_init: Initializing DST.
dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
rdc_reset_state: Resetting state machine
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
writing [ 00 0a 00 00 00 00 00 f6 ]
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
read_dst: reply is 0xff
dst_wait_dst_ready: dst wait ready after 0
read_dst: reply is 0x1c
 0x0 0x0 0x0 0x5 0x0 0x0 0x0
dst_command: checksum failure
dst_get_mac: Unsupported Command
dst_probe: MAC: Unsupported command
dst_ca_attach: registering DST-CA device
DVB: registering frontend 0 (DST DVB-S)...
dst_comm_init: Initializing DST.
dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
rdc_reset_state: Resetting state machine
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
writing [ 00 09 03 b6 00 00 00 3e ]
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
read_dst: reply is 0xff
dst_wait_dst_ready: dst wait ready after 1
read_dst: reply is 0x0
 0x9 0x3 0xb6 0x0 0x0 0x0 0x3e
dst_comm_init: Initializing DST.
dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
rdc_reset_state: Resetting state machine
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
writing [ 00 09 ff b6 01 00 00 41 ]
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
read_dst: reply is 0xff
dst_wait_dst_ready: dst wait ready after 1
read_dst: reply is 0x0
 0x9 0xff 0xb6 0x1 0x0 0x0 0x41
dst_comm_init: Initializing DST.
dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
rdc_reset_state: Resetting state machine
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
writing [ 00 09 ff b6 01 00 00 41 ]
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
read_dst: reply is 0xff
dst_wait_dst_ready: dst wait ready after 1
read_dst: reply is 0x0
 0x9 0xff 0xb6 0x1 0x0 0x0 0x41
dst_comm_init: Initializing DST.
dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
rdc_reset_state: Resetting state machine
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
writing [ 00 08 04 e0 10 38 f2 da ]
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
read_dst: reply is 0xff
dst_wait_dst_ready: dst wait ready after 13
read_dst: reply is 0x0
 0x8 0x4 0xe0 0x10 0x38 0xf2 0xda
dst_comm_init: Initializing DST.
dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
rdc_reset_state: Resetting state machine
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
writing [ 00 09 ff 02 01 00 00 f5 ]
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
read_dst: reply is 0xff
dst_wait_dst_ready: dst wait ready after 4
read_dst: reply is 0x0
 0x9 0xff 0x2 0x1 0x0 0x0 0xf5
dst_comm_init: Initializing DST.
dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
rdc_reset_state: Resetting state machine
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
writing [ 00 09 ff 02 01 00 00 f5 ]
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
read_dst: reply is 0xff
dst_wait_dst_ready: dst wait ready after 4
read_dst: reply is 0x0
 0x9 0xff 0x2 0x1 0x0 0x0 0xf5
dst_set_freq: set Frequency 1575000
dst_set_frontend: Set Frequency=[1575000]
dst_set_symbolrate: set symrate 24500000
dst_set_polarization: Polarization=[Horizontal]
dst_set_frontend: Set Symbolrate=[24500000]
dst_write_tuna: type_flags 0x151
dst_comm_init: Initializing DST.
dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
rdc_reset_state: Resetting state machine
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
writing [ 09 00 06 27 01 00 5f b4 40 76 ]
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
read_dst: reply is 0xff
dst_wait_dst_ready: dst wait ready after 27
read_dst: reply is 0x9
 0x0 0x6 0x27 0x18 0x64 0x0 0x3d 0x3 0xe
dst_comm_init: Initializing DST.
dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
rdc_reset_state: Resetting state machine
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
writing [ 00 05 00 00 00 00 00 fb ]
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
read_dst: reply is 0xff
dst_wait_dst_ready: dst wait ready after 2
read_dst: reply is 0x6
 0x27 0x19 0xb5 0x80 0x3d 0x3 0x45
dst_comm_init: Initializing DST.
dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
rdc_reset_state: Resetting state machine
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
writing [ 00 05 00 00 00 00 00 fb ]
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
read_dst: reply is 0xff
dst_wait_dst_ready: dst wait ready after 2
read_dst: reply is 0x6
 0x27 0x19 0xc9 0x80 0x3d 0x3 0x31
dst_comm_init: Initializing DST.
dst_gpio_outb: mask=[ffffffff], enbb=[0001], outhigh=[0000]
rdc_reset_state: Resetting state machine
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0000]
dst_gpio_outb: mask=[0002], enbb=[0002], outhigh=[0002]
writing [ 00 05 00 00 00 00 00 fb ]
dst_gpio_outb: mask=[ffffffff], enbb=[0000], outhigh=[0000]
read_dst: reply is 0xff
dst_wait_dst_ready: dst wait ready after 2
read_dst: reply is 0x6
 0x27 0x18 0xa4 0x80 0x3d 0x3 0x57
dst_comm_init: Initializing DST.
...



More information about the linux-dvb mailing list