€•8Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ(/translations/zh_CN/admin-guide/media/ci”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/zh_TW/admin-guide/media/ci”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/it_IT/admin-guide/media/ci”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/ja_JP/admin-guide/media/ci”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/ko_KR/admin-guide/media/ci”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/pt_BR/admin-guide/media/ci”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/sp_SP/admin-guide/media/ci”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒB/var/lib/git/docbuild/linux/Documentation/admin-guide/media/ci.rst”h´KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ'Digital TV Conditional Access Interface”h]”hŒ'Digital TV Conditional Access Interface”…””}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒnote”“”)”}”(hŒThis documentation is outdated.”h]”hŒ paragraph”“”)”}”(hháh]”hŒThis documentation is outdated.”…””}”(hhåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´K hhßubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝhhÊh²hh³hÇh´Nubhä)”}”(hŒ£This document describes the usage of the high level CI API as in accordance to the Linux DVB API. This is a not a documentation for the, existing low level CI API.”h]”hŒ£This document describes the usage of the high level CI API as in accordance to the Linux DVB API. This is a not a documentation for the, existing low level CI API.”…””}”(hhøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´K hhÊh²hubhÞ)”}”(hŒÎFor the Twinhan/Twinhan clones, the dst_ca module handles the CI hardware handling. This module is loaded automatically if a CI (Common Interface, that holds the CAM (Conditional Access Module) is detected.”h]”hä)”}”(hŒÎFor the Twinhan/Twinhan clones, the dst_ca module handles the CI hardware handling. This module is loaded automatically if a CI (Common Interface, that holds the CAM (Conditional Access Module) is detected.”h]”hŒÎFor the Twinhan/Twinhan clones, the dst_ca module handles the CI hardware handling. This module is loaded automatically if a CI (Common Interface, that holds the CAM (Conditional Access Module) is detected.”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝhhÊh²hh³hÇh´NubhÉ)”}”(hhh]”(hÎ)”}”(hŒca_zap”h]”hŒca_zap”…””}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjh²hh³hÇh´Kubhä)”}”(hŒYA userspace application, like ``ca_zap`` is required to handle encrypted MPEG-TS streams.”h]”(hŒA userspace application, like ”…””}”(hj/h²hh³Nh´NubhŒliteral”“”)”}”(hŒ ``ca_zap``”h]”hŒca_zap”…””}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j7hj/ubhŒ1 is required to handle encrypted MPEG-TS streams.”…””}”(hj/h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´Khjh²hubhä)”}”(hŒˆThe ``ca_zap`` userland application is in charge of sending the descrambling related information to the Conditional Access Module (CAM).”h]”(hŒThe ”…””}”(hjQh²hh³Nh´Nubj8)”}”(hŒ ``ca_zap``”h]”hŒca_zap”…””}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j7hjQubhŒz userland application is in charge of sending the descrambling related information to the Conditional Access Module (CAM).”…””}”(hjQh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´Khjh²hubhä)”}”(hŒGThis application requires the following to function properly as of now.”h]”hŒGThis application requires the following to function properly as of now.”…””}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´Khjh²hubhŒenumerated_list”“”)”}”(hhh]”hŒ list_item”“”)”}”(hŒ$Tune to a valid channel, with szap. ”h]”hä)”}”(hŒ#Tune to a valid channel, with szap.”h]”hŒ#Tune to a valid channel, with szap.”…””}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´K!hj†ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„hjh²hh³hÇh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œ loweralpha”Œprefix”hŒsuffix”Œ)”uh1jhjh²hh³hÇh´K!ubhŒ block_quote”“”)”}”(hŒ(eg: $ szap -c channels.conf -r "TMC" -x ”h]”hä)”}”(hŒ'eg: $ szap -c channels.conf -r "TMC" -x”h]”hŒ+eg: $ szap -c channels.conf -r “TMC†-x”…””}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´K#hj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1j©h³hÇh´K#hjh²hubj€)”}”(hhh]”j…)”}”(hŒ+a channels.conf containing a valid PMT PID ”h]”hä)”}”(hŒ*a channels.conf containing a valid PMT PID”h]”hŒ*a channels.conf containing a valid PMT PID”…””}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´K%hjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1j„hjÃh²hh³hÇh´Nubah}”(h]”h ]”h"]”h$]”h&]”j¤j¥j¦hj§j¨Œstart”Kuh1jhjh²hh³hÇh´K%ubjª)”}”(hŒeg: TMC:11996:h:0:27500:278:512:650:321 here 278 is a valid PMT PID. the rest of the values are the same ones that szap uses. ”h]”(hä)”}”(hŒ'eg: TMC:11996:h:0:27500:278:512:650:321”h]”hŒ'eg: TMC:11996:h:0:27500:278:512:650:321”…””}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´K'hjåubhä)”}”(hŒUhere 278 is a valid PMT PID. the rest of the values are the same ones that szap uses.”h]”hŒUhere 278 is a valid PMT PID. the rest of the values are the same ones that szap uses.”…””}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´K)hjåubeh}”(h]”h ]”h"]”h$]”h&]”uh1j©h³hÇh´K'hjh²hubj€)”}”(hhh]”j…)”}”(hŒOafter running a szap, you have to run ca_zap, for the descrambler to function, ”h]”hä)”}”(hŒNafter running a szap, you have to run ca_zap, for the descrambler to function,”h]”hŒNafter running a szap, you have to run ca_zap, for the descrambler to function,”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´K,hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j„hj h²hh³hÇh´Nubah}”(h]”h ]”h"]”h$]”h&]”j¤j¥j¦hj§j¨jäKuh1jhjh²hh³hÇh´K,ubjª)”}”(hŒ!eg: $ ca_zap channels.conf "TMC" ”h]”hä)”}”(hŒ eg: $ ca_zap channels.conf "TMC"”h]”hŒ$eg: $ ca_zap channels.conf “TMC—…””}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´K/hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j©h³hÇh´K/hjh²hubj€)”}”(hhh]”j…)”}”(hŒMHopefully enjoy your favourite subscribed channel as you do with a FTA card. ”h]”hä)”}”(hŒLHopefully enjoy your favourite subscribed channel as you do with a FTA card.”h]”hŒLHopefully enjoy your favourite subscribed channel as you do with a FTA card.”…””}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´K1hjGubah}”(h]”h ]”h"]”h$]”h&]”uh1j„hjDh²hh³hÇh´Nubah}”(h]”h ]”h"]”h$]”h&]”j¤j¥j¦hj§j¨jäKuh1jhjh²hh³hÇh´K1ubhÞ)”}”(hŒ‡Currently ca_zap, and dst_test, both are meant for demonstration purposes only, they can become full fledged applications if necessary.”h]”hä)”}”(hŒ‡Currently ca_zap, and dst_test, both are meant for demonstration purposes only, they can become full fledged applications if necessary.”h]”hŒ‡Currently ca_zap, and dst_test, both are meant for demonstration purposes only, they can become full fledged applications if necessary.”…””}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´K6hjeubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝhjh²hh³hÇh´Nubeh}”(h]”Œca-zap”ah ]”h"]”Œca_zap”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒ Cards that fall in this category”h]”hŒ Cards that fall in this category”…””}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj…h²hh³hÇh´K;ubhä)”}”(hŒ—At present the cards that fall in this category are the Twinhan and its clones, these cards are available as VVMER, Tomato, Hercules, Orange and so on.”h]”hŒ—At present the cards that fall in this category are the Twinhan and its clones, these cards are available as VVMER, Tomato, Hercules, Orange and so on.”…””}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´K=hj…h²hubeh}”(h]”Œ cards-that-fall-in-this-category”ah ]”h"]”Œ cards that fall in this category”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K;ubhÉ)”}”(hhh]”(hÎ)”}”(hŒCI modules that are supported”h]”hŒCI modules that are supported”…””}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj¬h²hh³hÇh´KBubhä)”}”(hŒïThe CI module support is largely dependent upon the firmware on the cards Some cards do support almost all of the available CI modules. There is nothing much that can be done in order to make additional CI modules working with these cards.”h]”hŒïThe CI module support is largely dependent upon the firmware on the cards Some cards do support almost all of the available CI modules. There is nothing much that can be done in order to make additional CI modules working with these cards.”…””}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´KDhj¬h²hubhä)”}”(hŒ;Modules that have been tested by this driver at present are”h]”hŒ;Modules that have been tested by this driver at present are”…””}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´KIhj¬h²hubj€)”}”(hhh]”(j…)”}”(hŒIrdeto 1 and 2 from SCM”h]”hä)”}”(hjÞh]”hŒIrdeto 1 and 2 from SCM”…””}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´KKhjÜubah}”(h]”h ]”h"]”h$]”h&]”uh1j„hjÙh²hh³hÇh´Nubj…)”}”(hŒViaccess from SCM”h]”hä)”}”(hjõh]”hŒViaccess from SCM”…””}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´KLhjóubah}”(h]”h ]”h"]”h$]”h&]”uh1j„hjÙh²hh³hÇh´Nubj…)”}”(hŒ Dragoncam”h]”hä)”}”(hj h]”hŒ Dragoncam”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãh³hÇh´KMhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j„hjÙh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j¤Œarabic”j¦Œ(”j§j¨uh1jhj¬h²hh³hÇh´KKubeh}”(h]”Œci-modules-that-are-supported”ah ]”h"]”Œci modules that are supported”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KBubeh}”(h]”Œ'digital-tv-conditional-access-interface”ah ]”h"]”Œ'digital tv conditional access interface”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j\Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j6j3j‚jj©j¦j.j+uŒ nametypes”}”(j6‰j‚‰j©‰j.‰uh}”(j3hÊjjj¦j…j+j¬uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”(hŒsystem_message”“”)”}”(hhh]”hä)”}”(hŒ:Enumerated list start value not ordinal-1: "b" (ordinal 2)”h]”hŒ>Enumerated list start value not ordinal-1: “b†(ordinal 2)”…””}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÀubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”hÇŒline”Kuh1j¾hjh²hh³hÇh´K%ubj¿)”}”(hhh]”hä)”}”(hŒ:Enumerated list start value not ordinal-1: "c" (ordinal 3)”h]”hŒ>Enumerated list start value not ordinal-1: “c†(ordinal 3)”…””}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÜubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”jÙŒsource”hÇŒline”Kuh1j¾hjh²hh³hÇh´K,ubj¿)”}”(hhh]”hä)”}”(hŒ:Enumerated list start value not ordinal-1: "d" (ordinal 4)”h]”hŒ>Enumerated list start value not ordinal-1: “d†(ordinal 4)”…””}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj÷ubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”jÙŒsource”hÇŒline”Kuh1j¾hjh²hh³hÇh´K1ubeŒtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.