[linux-dvb] How to run ca_zap?

Manu Abraham manu at kromtek.com
Sat Jun 25 00:06:15 CEST 2005


Einar Bjarni Halldórsson wrote:
> One silly question...how do you use ca_zap? I've tried every combination
> of tzap and ca_zap and got nothing to show for it and I have no idea what
> I'm looking for...
> 
> Here's the output from ca_zap -c channels.conf -t ter -n "MTV" & tzap -c
> channels.conf -r "MTV"
>


  ca_zap -h or running ca_zap alone will show you all the options ..

I use something like this ..

# ca_zap -a 0 -c ~/channels.conf -t sat -d 0 -s 0 -f 0 -n TMC2


Here  a, d, s, f are optional parameters, need to use it only if you 
want anything other than the defaults..

so a minimal ca_zap

# ca_zap -c channels.conf -t ter -n MTV would

use, adapter0, slot0, demux0, frontend0

> Using Adpater=[/dev/dvb/adapter0]
>  Frontend=[/dev/dvb/adapter0/frontend0]
>  Demux=[/dev/dvb/adapter0/demux0]
>  Slot=[/dev/dvb/adapter0/ca0]
> Parsing ../../../channels.conf
> Terrestrial frontend
> Service ID=[63]
> parse_pat: ----------------->parse PAT section
> parse_pat: PAT => Section Length=[33], TS ID=[8462]
> parse_si: PMT PID = [1781]
> parse_si: PAT: Close Demux /dev/dvb/adapter0/demux0
> parse_pmt: PMT Words=[ 02 b0 22 00 3f c5 00 00 e6 05 f0 06 09 04 0b 00 e6
> e5 02 e6 05 f0 00 06 e6 e5 f0 00 04 e6 a5 f0 00 d4 f2 3a b8 ]
> 
> parse_pmt: ----------->parse PMT section, PMT PID=[1781], bytes=[37]
> parse_pmt_header: Table ID=[2], Section Length=[34], Program Number=[63],
> Section Number=[0], PCR PID=[1541], Program info length=[6]
> parse_pmt: Program info length=[6]
> INFO:: Parsing descriptor: parse_ca_descriptor, Tag=[09], Length=[4]
> parse_ca_descriptor: Tag=[09], Length=[04], CA System=[b00], CA PID=[6e5]
> parse_ca_descriptor: CA Private Data=[ ]
> parse_ca_descriptor: Pos=[18]
> parse_pmt: Count=[18], Position=[18], Program descriptor count=[6]
> 
>         parse_streams: Elements=[ 02 e6 05 f0 00]
>         parse_streams: Stream=[0], Stream Type=[2], Elementary PID=[1541],
> ES info length=[0]
> 
>         parse_streams: Elements=[ 06 e6 e5 f0 00]
>         parse_streams: Stream=[1], Stream Type=[6], Elementary PID=[1765],
> ES info length=[0]
> 
>         parse_streams: Elements=[ 04 e6 a5 f0 00]
>         parse_streams: Stream=[2], Stream Type=[4], Elementary PID=[1701],
> ES info length=[0]
> 
> copy_en50221_pmt_object: Copying EN50221 Header
> copy_en50221_pmt_object: Program Number=[63], Program info length=[6]
> copy_en50221_pmt_object: Program level descriptor count=[1]
> copy_en50221_pmt_object: CA descriptor=[09] found, @ [0xbffea5a0],
> descriptor length=[04]
>         copy_en50221_descriptor_object: Tag=[09], Length=[04], CA system
> ID=[b00], CA PID=[6e5]
> copy_en50221_descriptor_object: Private bytes=[0] [ ]
> copy_en50221_pmt_object: [0] CA descriptor copied
> copy_en50221_stream_object: Stream Type=[2], Elementary PID=[1541], ES
> length=[0], Number of descriptors=[0]
> copy_en50221_stream_object: Stream Type=[6], Elementary PID=[1765], ES
> length=[0], Number of descriptors=[0]
> copy_en50221_stream_object: Stream Type=[4], Elementary PID=[1701], ES
> length=[0], Number of descriptors=[0]
> do_en50221_pmt_object: CA PMT List Management=[03]
> set_pmt_command: Setting PMT Command
> set_pmt_command: CA descriptor found @ PROGRAM Level, Setting CA PMT
> command=[01]
> do_en50221_pmt_object: Object length=[224], Total length=[28]
> asn_1_encode: Length=[28]
> asn_1_encode: length indicator=[1c]
> do_en50221_pmt_object: ASN.1 words=[1], Length Array=[  28 ]
> en50221_encode_header: CA PMT List Mgmt=[3], Program Number=[63], Program
> info length=[6]
> write_en50221_pmt_object: EN50221 header encoded
> write_en50221_pmt_object: Program level descriptor @ [0x804e088],
> count=[1], tag=[09], length=[04]
> encode_ca_pmt_command: Encoding SCRAMBLING @ PROGRAM Level, Command=[01]
> en50221_encode_descriptor: Tag=[09], length=[04], CA system id=[b00], CA
> PID=[6e5]
> en50221_encode_descriptor: Private Bytes=[0] [ ]
> en50221_encode_streams: Stream type=[02], ES PID=[605], ES Info length=[00]
> en50221_encode_streams: Stream type=[06], ES PID=[6e5], ES Info length=[00]
> en50221_encode_streams: Stream type=[04], ES PID=[6a5], ES Info length=[00]

This looks very much correct, if i am not mistaken .. So the parsing 
handled looks very much fine ..

> debug_message: CA MESSAGE=[ 9f 80 32 1c 03 00 3f 09 10 06 01 09 04 0b 00
> e6 e5 02 e6 05 f0 00 06 e6 e5 f0 00 04 e6 a5 f0 00  ]
> 
> ES Info Length looks funny, but I still need to know how to work these
> things and what signals success.
> 

ES info length is correct as per your PMT it is 0 only.

 > parse_pmt: PMT Words=[ 02 b0 22 00 3f c5 00 00 e6 05 f0 06 09 04 0b 00 e6
 > e5 02 e6 05 f0 00 06 e6 e5 f0 00 04 e6 a5 f0 00 d4 f2 3a b8 ]


The message that get's written to the driver seems okay.
But the driver parsing the EN50221 message doesn't seem to be okay, in 
certain cases..

When the message is sent to the driver, what does the driver verbose out  ?

Manu






More information about the linux-dvb mailing list