Описание файла
mg_cfg.
# Показ EMM-cообщений. В качестве значения выбрать одно из трех:
# 00 не показывать никаких EMM
# 01 показывать только верные EMM
# 02 показывать верные и неверные сообщения EMM включая весь дамп
# Это дело нам не понадобится, поэтому выбираем "не показывать":
M: { 00 }# ECM messages
# Показ EСM-cообщений. В качестве значения выбрать одно из трех:
# 00 не показывать ничего
# 01 обычный режим: показывать PID, и декодированные ECM и CW
# 02 подробный режим: показывать всё подряд включая весь дамп
# Это дело лучше видеть, чтобы сразу было понятно, работает
# ш@рик или нет, поэтому включим обычный режим:
C: { 01 }# AU - автообновление. Выбрать одно из четырех:
# 00 выключить функцию AU - несли нет никаких собственных карт
# 01 включить обработку EMM для карт, если используется с другим Эму
# 02 авторежим, включать EMM только если канал не открывается
# 03 включить EMM обработку только для карт доступных по сети
# Насколько мне известно, это дело нужно было для пакета TPS на
# спутнике Hotbird, но теперь всё это дело прошлого. Поэтому выключаем.
A: { 00 }# Обновление ключей. Нужно выбрать 2 параметра, как сумму 01/02 плюс 04
# 01 обновлять только новые ключи
# 02 обновлять все ключи (для валидации PMK)
# 04 включить функцию TPS AU (в дополнительных параметрах указать
# SID, в котором pmt pid содержит au pid)
# Это дело работает вместе с предыдущим параметром "A".
# Поскольку мы вырубили "A", выключаем и это дело тоже:
U: { 01 }# Папка с файлами конфигурации (softcam, autoroll, ignore/priority)
# 00 файлы в папке /var/keys
# 01 файлы в /tmp
# Тут и так понятно, что нужно выбрать 00:
T: { 00 }# Сетевой протокол для ш@рика.
# Можно выбрать несколько значений, просуммировав отдельные опции.
# 00 сеть отсутствует (ш@рика не предвидится)
# 01 клиент newcamd
# 02 клиент radegast
# 04 клиент camd3
# 08 клиент gbox
# Как говорится, стандарт индустрии, протокол newcamd:
G: { 01 }# Повторная попытка при работе с сетью. Очень важный параметр!!!
# Можно выбрать несколько значений, просуммировав отдельные опции.
# 00 не пытаться повторить запрос
# 01 повторная попытка при каждом новом ECM
# 02 повторная попытка присоединиться к недоступному ранее серверу
# каждые Q секунд (Q дается как отдельный параметр "Q" ниже)
# 04 пробовать быстро пере-соединиться к отрубившемуся серверу:
# либо после XX ECM запросов без ответа от сервера,
# либо если нет ответа от сервера в течение YY секунд
# Числа XX и YY даются как дополнительные параметры
#
# Это самый важный параметр в этом файле. Рекомендую установить все опции
# 01 + 02 + 04, то есть их сумму = 07. В качестве дополнительных параметров
# XX и YY можно взять 2 запроса и 4 секунды:
N: { 07 }# Значение в секундах для тайм-аута сетевого запроса.
# Поставим 2 секунды, так как обычно сервер должен ответить
# гораздо быстрее. Если сервер не отвечает за это время, см. предыдущий
# параметр "N".
K: { 03 }# Пытаться коннектиться на "мертвый" сервер каждые 15 секунд.
Q: { 15 }# Приоритет протоколов (если у вас их несколько)
# 00 gbox, newcamd, radegast, camd3
# 01 camd3, radegast, newcamd, gbox
# 02 newcamd, camd3, gbox, radegast
# нас интересует newcamd, поэтому поставим его на первое место:
P: { 02 }# разновидность экранного интерфейса:
# 00 нет меню на экране
# 01 neutrino
# 02 enigma
# 03 relook
# + имя пароль (как дополнительные параметры для авторизации)
# Это для DreamBox'ов:
O: { 00 } username password
# Что показывать на экранном меню:
# 01 emu ecm
# 02 шару через сеть
# 04 показывать "некодированный канал" / "не могу открыть"
# 08 показывать обновление ключей EMM
# + web порт для экранного меню
# Это всё нам не понадобится. Это для DreamBox'ов:
S: { 03 }# Опции для лог файлов, можно выбрать несколько параметров как сумму:
# 00 не вести лог
# 01 лог через сеть (по протоколу UDP Syslog)
# 02 лог на консоль
# 04 лог в файл (который будет всё время расти, и поэтому он может забить
# всю память - его вам придется чистить вручную)
#
# дополнтельные параметры: IP-адрес + UDP порт для сетевого лога + имя лог-файла
#
# Это очень важная опция для того, чтобы сразу увидеть где грабли, если
# что-то не работает, или работает не так как надо. Идеальней всего использовать
# лог по сети. Эта процедура описана ниже подробнее. Здесь же нужно указать
# IP адрес вашего обычного компьютера в вашей локальной сети, UDP порт, который
# обычно должен быть 514 и если хотите включить лог-файл на самом ресивере, то
# имя файла, где-нибудь, например в папке /tmp. Для включения лога на самом ресивере
# нужно поменять { 01 } на { 04 } или { 05 }:
# вместо
192.168.1.5 - IP своего компа
L: { 03 } 192.168.1.5 514# кэширование ECM (в секундах)
# каждая запись в кэш отъедает 28 байт, поэтому 24 часа кэша отъест 240-400 КБ памяти
# вполне можно позволить себе такую роскошь, чтобы не обращаться заново к карте ш@рика
# если у вас есть записанный материал, который закодирован. Хотя это больше теория, чем
# практика. Как записать кодированный материал для раскодирования позже я так и не нашёл.
#
E: { 07 }# Что кэшировать? Значений может быть несколько как сумма следущих:
# 00 отключить кэширование
# 01 кэшировать Ecm pids, и сохранять в файле /tmp/ca_cache.list при перезапуске
# 02 вести кэш Ecm, и помнить значения столько секунд, сколько указано в опции "E" выше
# 04 вести кэш Emm для карт доступных по сети, чтобы не слать один и тот же EMM снова
# толку от этого достаточно мало, но со включенным кешем есть затыки:
H: { 07 }# Cчитывать файлы конфигурации повторно.
# Параметр может быть суммой следующих значений:
# 00 считывать все файлы конфигурации только раз при запуске mgcamd
# 01 считывать файлы каждый раз при смене канала
# 02 считывать файл SoftCam.Key каждый раз при смене канала
# 04 считывать файл SoftCam.Key, если он изменился
# Поскольку меняться конфиги будут крайне редко, установим 00:
R: { 00 }# Оладочная информация в лог-файле
# 00 off (default)
# 01 ecm
# 02 emm
# 04 network ecm
# 08 network emm
# 16 network login
# 32 показывать статистику загрузки памяти и CPU каждую минуту
# 64 добавить дату и время к каждой записи в лог
#
# обычно эту опцию включать не нужно, но ради интереса можно попробовать.
# в логе будет гораздо больше информации, чем обычно
D: { 00 }# Тип устройства
# 00 авто
# 01 dbox2
# 02 dreambox
# 03 triple-dragon
# 04 relook
# 05 openbox
# 06 dreambox 800
# 08 stapi/kathrein
# 09 stapi/ipbox
# 11 stapi/openbox
# рекомендуется оставить авто или (в крайнем случае)
06B: { 00 }# используется для карт нарга 1801
# по умолчанию 01
F: { 01 }
Добавлено 24 февраля | 2011г. | 09:47:11 priority.listДля чего?
Чтоб установить приоритет запроса. Зачем?
Вот пример канала ОРТ от НТВ+.
Feb 24 09:30:55 192.168.1.15 [mg0] service 277A index 0 pmt pid 69 (3), pids: video 0x0145, audio 0x019A 0x01FE
Feb 24 09:30:55 192.168.1.15 CaPID: 0x07D6 ProvID: 040600
Feb 24 09:30:55 192.168.1.15 CaPID: 0x1776 ProvID: 040620
Feb 24 09:30:55 192.168.1.15 CaPID: 0x0BBE ProvID: 030600
Feb 24 09:30:55 192.168.1.15 CaPID: 0x0FA6 ProvID: 023700
Feb 24 09:30:55 192.168.1.15 CaPID: 0x138E ProvID: 040610
Feb 24 09:30:55 192.168.1.15 [mg0] No viaccess key(s) found for id 40600 keynr 08
Feb 24 09:30:55 192.168.1.15 [mg0] network can't decode
Feb 24 09:30:55 192.168.1.15 [mg0] pid 0x07D6 failed to decode.
Feb 24 09:30:56 192.168.1.15 [mg0] No viaccess key(s) found for id 40620 keynr 08
Feb 24 09:30:56 192.168.1.15 [mg0] network can't decode
Feb 24 09:30:56 192.168.1.15 [mg0] pid 0x1776 failed to decode.
Feb 24 09:30:56 192.168.1.15 ECM to newcamd ***
Feb 24 09:30:57 192.168.1.15 [mg0] newcamd route *** cant decode (1102ms)
Feb 24 09:30:57 192.168.1.15 [mg0] network can't decode
Feb 24 09:30:57 192.168.1.15 [mg0] pid 0x0BBE failed to decode.
Feb 24 09:30:58 192.168.1.15 [mg0] No viaccess key(s) found for id 23700 keynr 08
Feb 24 09:30:58 192.168.1.15 ECM to newcamd ***
Feb 24 09:30:58 192.168.1.15 [mg0] <- CW from newcamd *** (62ms)
Feb 24 09:30:58 192.168.1.15 [mg0] 62 msec -- Thu Feb 24 09:24:07 2011
Feb 24 09:30:58 192.168.1.15 ===== Viaccess ECM on CaID 0x0500, pid 0x0fa6 ======
Feb 24 09:30:58 192.168.1.15 prov: 023700
Feb 24 09:30:58 192.168.1.15 cw0:0 8B BC 25 6C A7 47 FE EC
Feb 24 09:30:58 192.168.1.15 cw1:0 23 15 2B 63 D7 0C 0C EF Что видно из лога?
Для открытия данного канала используется 5 карт следующих серий: 040600, 040620, 030600, 023700, 040610.
Каждому типу карт соответствует свой пид - CaPID.
Конкретно у меня используется карта 023700.
Как работает мжкамд. Он последовательно перебирает пиды карт. Как видно из лога, нужный пид карты 023700 только 4 в списке.
То есть тратиться время работы эму, для того чтоб добраться до нужного пида.
Данный лог без применения файла
priority.list.
Ясно, что нужно сделать, чтоб мжкамд сразу "перескакивал" на нужную карту. Для это и нужен этот файл.
Его содержимое.
V: { 02 37 00 } И что теперь в логе?
Feb 24 09:51:17 192.168.1.15 [mg0] service 277A index 0 pmt pid 69 (3), pids: video 0x0145, audio 0x019A 0x01FE
Feb 24 09:51:17 192.168.1.15 CaPID: 0x0FA6 ProvID: 023700
Feb 24 09:51:17 192.168.1.15 CaPID: 0x0BBE ProvID: 030600
Feb 24 09:51:17 192.168.1.15 CaPID: 0x07D6 ProvID: 040600
Feb 24 09:51:17 192.168.1.15 CaPID: 0x1776 ProvID: 040620
Feb 24 09:51:17 192.168.1.15 CaPID: 0x138E ProvID: 040610
Feb 24 09:51:17 192.168.1.15 [mg0] No viaccess key(s) found for id 23700 keynr 08
Feb 24 09:51:17 192.168.1.15 ECM to newcamd ***
Feb 24 09:51:17 192.168.1.15 [mg0] <- CW from newcamd *** (57ms)
Feb 24 09:51:17 192.168.1.15 [mg0] 57 msec -- Thu Feb 24 09:44:28 2011
Feb 24 09:51:17 192.168.1.15 ===== Viaccess ECM on CaID 0x0500, pid 0x0fa6 ======
Feb 24 09:51:17 192.168.1.15 prov: 023700
Feb 24 09:51:17 192.168.1.15 cw0:0 FC 2F 91 BC 7B 86 BC BD
Feb 24 09:51:17 192.168.1.15 cw1:0 94 82 4E 64 84 F1 09 7E 023700 переместился на первое место. И естественно запрос идёт сразу на нужную карту.
Добавлено 24 февраля | 2011г. | 09:58:29 ignore.listЭтот файл для чего?
На примере видно, что для открытия канала используется 5 карт.
Но, чтоб мжкамд "не обращал внимание" на ненужные карты, то можно прописать в этом файле эти ненужные карты.
V: { 04 06 00 }
V: { 04 06 10 }
V: { 04 06 20 }
V: { 03 06 00 }И что теперь в логе?
Feb 24 10:02:41 192.168.1.15 [mg0] service 277A index 0 pmt pid 69 (3), pids: video 0x0145, audio 0x019A 0x01FE
Feb 24 10:02:41 192.168.1.15 CaPID: 0x0FA6 ProvID: 023700
Feb 24 10:02:41 192.168.1.15 [mg0] No viaccess key(s) found for id 23700 keynr 08
Feb 24 10:02:41 192.168.1.15 ECM to newcamd ***
Feb 24 10:02:41 192.168.1.15 [mg0] <- CW from newcamd *** (57ms)
Feb 24 10:02:41 192.168.1.15 [mg0] 57 msec -- Thu Feb 24 09:55:51 2011
Feb 24 10:02:41 192.168.1.15 ===== Viaccess ECM on CaID 0x0500, pid 0x0fa6 ======
Feb 24 10:02:41 192.168.1.15 prov: 023700
Feb 24 10:02:41 192.168.1.15 cw0:0 B4 22 82 58 AD 2D 1A F4
Feb 24 10:02:41 192.168.1.15 cw1:0 40 8F 32 01 28 4C B5 29 Всего одна карта 023700. И эмулю некуда "Ш@рахаться", выбирать, перебирать...
Добавлено 24 февраля | 2011г. | 10:35:14 Если используется всего одна карта, то всё просто, как на приведённых выше примере.
А если используется сразу две карты? Как указать каналу и серверу, какой картой открывать канал?
Естественно в
priority.list должны быть указаны эти карты.
Например так
V: { 02 37 00 }
V: { 03 06 00 } Естественно мжкамд согласно приоритету будет сначала использовать 023700, а если не откроет канал, то перейдёт к 030600.
Вот как пример лог канала Энимал Пленет HD.
Feb 24 10:16:00 192.168.1.15 [mg0] service 3718 index 0 pmt pid 57C (3), pids: video 0x0144, audio 0x0194 0x019E
Feb 24 10:16:00 192.168.1.15 CaPID: 0x0FA4 ProvID: 023700
Feb 24 10:16:00 192.168.1.15 CaPID: 0x0BBC ProvID: 030600
Feb 24 10:16:01 192.168.1.15 [mg0] No viaccess key(s) found for id 23700 keynr 08
Feb 24 10:16:01 192.168.1.15 ECM to newcamd **
Feb 24 10:16:02 192.168.1.15 [mg0] newcamd route ** cant decode (2112ms)
Feb 24 10:16:02 192.168.1.15 [mg0] network can't decode
Feb 24 10:16:02 192.168.1.15 [mg0] pid 0x0FA4 failed to decode.
Feb 24 10:16:02 192.168.1.15 ECM to newcamd **
Feb 24 10:16:02 192.168.1.15 [mg0] <- CW from newcamd 85.17.235.231:14008 (91ms)
Feb 24 10:16:02 192.168.1.15 [mg0] 91 msec -- Thu Feb 24 10:09:14 2011
Feb 24 10:16:02 192.168.1.15 ===== Viaccess ECM on CaID 0x0500, pid 0x0bbc ======
Feb 24 10:16:02 192.168.1.15 prov: 030600
Feb 24 10:16:02 192.168.1.15 cw0:0 A7 2D 61 35 31 82 D7 8A
Feb 24 10:16:02 192.168.1.15 cw1:0 83 32 07 BC A5 49 0E FC Сначала мжкамд использует пид
0FA4 от карты 023700. И естественно не открывает канал. Далее берёт пид
0bbc от карты 030600. Результат - положительный ответ от сервера.
То есть перебор пида и трата в пустую времени и ресурсов.
Вот для этого случая и помогает
replace.list.
Его содержание:
R:{{ sid } { caid } { provid } { ecmpid } { newcaid } { newprovid } { newecmpid }}Где брать эти данные? Из лога конечно.
sid -
servicecaid - тип кодировки (Viaccess - 0500)
И тогда для этого канала получается
R:{{3718}{0500}{023700}{0FA4}{0500}{030600}{0BBC}} #Animal Planet HDИ теперь в логе вот что
24 10:40:49 192.168.1.15 [mg0] service 3718 index 0 pmt pid 57C (5), pids: video 0x0144, audio 0x0194 0x019E
Feb 24 10:40:49 192.168.1.15 CaPID: 0x0BBC ProvID: 030600
Feb 24 10:40:49 192.168.1.15 ECM to newcamd ***
Feb 24 10:40:49 192.168.1.15 [mg0] <- CW from newcamd *** (95ms)
Feb 24 10:40:49 192.168.1.15 [mg0] 95 msec -- Thu Feb 24 10:34:01 2011
Feb 24 10:40:49 192.168.1.15 ===== Viaccess ECM on CaID 0x0500, pid 0x0bbc ======
Feb 24 10:40:49 192.168.1.15 prov: 030600
Feb 24 10:40:49 192.168.1.15 cw0:0 7F 22 73 14 96 99 79 A8
Feb 24 10:40:49 192.168.1.15 cw1:0 02 0D F6 05 13 E2 03 F8
Не смотря на то, что в прио листе первый 023700, мжкамд подменяет его на 030600. Результат - сразу выбор нужной карты.