€•*7Œ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Œ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.”…””}”(hhöhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhŸh³h Khhòubah}”(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¹hj hž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 ”…””}”(hjhžhhŸNh NubhŒliteral”“”)”}”(hŒ ``ca_zap``”h]”hŒca_zap”…””}”(hj%hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjubhŒ1 is required to handle encrypted MPEG-TS streams.”…””}”(hjhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÏhŸh³h Khj hž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 ”…””}”(hj=hžhhŸNh Nubj$)”}”(hŒ ``ca_zap``”h]”hŒca_zap”…””}”(hjEhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj=ubhŒz userland application is in charge of sending the descrambling related information to the Conditional Access Module (CAM).”…””}”(hj=hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÏhŸh³h Khj hž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.”…””}”(hj]hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhŸh³h Khj hž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.”…””}”(hjvhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhŸh³h K!hjrubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjmhžhhŸh³h Nubah}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œ loweralpha”Œprefix”hŒsuffix”Œ)”uh1jkhj hž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#hj hžhubjl)”}”(hhh]”jq)”}”(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&]”uh1jphj¯hžhhŸh³h Nubah}”(h]”h ]”h"]”h$]”h&]”jj‘j’hj“j”Œstart”Kuh1jkhj hž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'hj hžhubjl)”}”(hhh]”jq)”}”(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,”…””}”(hjþhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhŸh³h K,hjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj÷hžhhŸh³h Nubah}”(h]”h ]”h"]”h$]”h&]”jj‘j’hj“j”jÐKuh1jkhj hž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—…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhŸh³h K/hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j•hŸh³h K/hj hžhubjl)”}”(hhh]”jq)”}”(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.”…””}”(hj7hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhŸh³h K1hj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj0hžhhŸh³h Nubah}”(h]”h ]”h"]”h$]”h&]”jj‘j’hj“j”jÐKuh1jkhj hž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.”…””}”(hjUhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhŸh³h K6hjQubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhj hž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”…””}”(hjthžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjqhž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=hjqhž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žhubjl)”}”(hhh]”(jq)”}”(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&]”uh1jphjÅhžhhŸh³h Nubjq)”}”(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&]”uh1jphjÅhžhhŸh³h Nubjq)”}”(hŒ Dragoncam”h]”hÐ)”}”(hjøh]”hŒ Dragoncam”…””}”(hjúhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÏhŸh³h KMhjöubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjÅhžhhŸh³h Nubeh}”(h]”h ]”h"]”h$]”h&]”jŒarabic”j’Œ(”j“j”uh1jkhj˜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”jHŒ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”}”(j"jjnjkj•j’jjuŒ nametypes”}”(j"‰jn‰j•‰j‰uh}”(jh¶jkj j’jqjj˜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ªhj hž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ªhj hž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ªhj hžhhŸh³h K1ubeŒtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.