Перейти к содержанию

mgcamd - настройка и чтение логов


Рекомендуемые сообщения

mgcamd на IPBox: общая информация

Внимание! Здесь пойдет речь не о конкретной прошивке для IPBox, а именно о настройках самого софта mgcamd и о том, как читать и понимать логи!

Пожалуйста помните, здесь представлена информация о том как настроить этот софт, как оптимизировать настройки и как научиться распознавать проблемы. Также обсуждаются ГЛОБАЛЬНЫЕ глюки и баги софта которые затрагивают всех пользователей IPBox (например разница в конфигах для разных версий или улучшение работы при помощи параметров).

Здесь НЕ обсуждаются ПРОБЛЕМЫ с настройками или проблемы в работе шары! Имеется в виду, если у вас что-то не сработало, в то время как у других всё работает.

Подобные сообщения будут удаляться. Обращайтесь с подобными проблемами (и с логами) к своему шародателю!

Эта тема о том, что делают те или иные параметры в конфигах, как читать логи и как распознавать проблемы, а не тема службы тех. поддержки шары.

Пожалуйста, не задавайте здесь вопросы типа "как мне запустить mgcamd на такой-то прошивке" или "сделал все, как вы написали, но ничего не работает, каналы не показывают". Для этого есть другие темы: поддержка пользователей, вопросы начинающих, азбука по IPBox и т.д.

Хотя 99% всей информации будет полезно не только пользователям IPBox, но и пользователям любых других ресиверов, на которых работает mgcamd, просьба не писать вопросы по другим ресиверам - имеются отдельные темы по Дримам, Опенам и т.д.

Также не будут приниматься к публикации или удовлетворяться просьбы выслать файлы типа ignore.list, priority.list или replace.list - их полно на аплоаде, а также во всяких других местах. Здесь чистая теория, здесь не сами файлы, а о том КАК их сделать. Потому что то, что работает у одного человека с его провайдером и набором пакетов совсем не значит, что будет работать у другого.

Предполагается, что:

  • вы полностью знакомы со стандартным управлением ресивера и уже настроили его IP адрес
  • вы имеете представление о том как пользоваться FTP и Telnet
  • у ресивера есть доступ в Интернет
  • mgcamd уже установлен и запускается автоматически при старте ресивера

Если вы не уверены в чём-либо из вышеперечисленного,то смотрите ответы на следующие вопросы:

Как правильно настроить IP адрес ресивера?

Нужно почитать инструкцию. Все настройки осуществляются через главное меню ресивера. Ресивер может получить свой адрес динамически используя протокол DHCP или вы можете задать фиксированный адрес в вашей домашней сети. Чтобы проверить "виден" ли ваш ресивер в сети, можно использовать несколько способов. Например, можно использовать команду ping из командной строки Windows (DOS-окно), которая шлет тестовый запрос "есть ли кто по этому адресу?" и показывает ответ. Правильно настроенный адрес будет выдавать нечто похожее (в этом примере адрес ресивера 192.168.1.100):

C:\>ping 192.168.1.100

Pinging 192.168.1.100 with 32 bytes of data:

Reply from 192.168.1.100: bytes=32 time=1ms TTL=255
Reply from 192.168.1.100: bytes=32 time<1ms TTL=255
Reply from 192.168.1.100: bytes=32 time<1ms TTL=255
Reply from 192.168.1.100: bytes=32 time<1ms TTL=255

Ping statistics for 192.168.1.100:
	Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
	Minimum = 0ms, Maximum = 1ms, Average = 0ms

Обратите, что в конце показано 0% потерь тестовых пакетов. Значит все работает ок. Также у ресивера имеется свой web-интерфейс, который обычно должен работать при включенном ресивере. На своем компьютере попробуйте открыть в браузере страницу с адресом: http://ip.адрес.вашего.ресивера/ Вы тут же должны будете получить запрос имени и пароля, и это тоже будет означать, что ваш ресивер в сети.

Что такое FTP и Telnet и как этим пользоваться?

Здесь нет необходимости опускаться в такие основы Unix/Linux. Если вы действительно не знаете, что это такое, то, наверное, лучше всего начинать отсюда и отсюда.

Для входа на IPBox по FTP используйте FTP клиент типа FileZilla Client, Far или Total Commander. Для работы по Telnet или SSH лучше всего подходит PuTTY.

Как проверить есть ли у моего ресивера доступ в Интернет?

Нужно зайти на ресивер по Telnet и дать команду ping адрес, где адрес - это или IP-адрес или имя сервера шары. Чтобы прервать исполнение команды, нужно нажать CTRL+C. Вот пример, где сервер зовется myserver1.xyz.com:

ping myserver1.xyz.com
PING myserver1.xyz.com (172.17.67.232) 56(84) bytes of data.
64 bytes from 172.17.67.232: icmp_seq=1 ttl=63 time=12.797 ms
64 bytes from 172.17.67.232: icmp_seq=2 ttl=63 time=12.778 ms
64 bytes from 172.17.67.232: icmp_seq=3 ttl=63 time=12.774 ms

--- myserver1.xyz.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.774/0.783/0.797/0.010 ms
Здесь видно, что всё работает правильно, так как нет потерь (0% packet loss).

Как проверить запущен/работает ли mgcamd при старте ресивера?

Нужно зайти на ресивер по Telnet и дать команду ps afx | grep mgcamd | grep -v grep

Если вы увидите нечто вроде:

-sh-3.00# ps | grep mgcamd | grep -v grep
  557 ? Sl 0:12 /var/bin/mgcamd
значит mgcamd запущен и работает (осталось только его настроить :) )

Изменено пользователем дядя Фёдор

IPBox 9000HD | IPBox 910HD | IPBox 100 HD | Dreambox DM 800HD se | WaveFrontier Toroidal T90

28.2°E + 23.5°E + 19.2°E + 16.0°E + 13.0°E + 9.0°E + 7.0°E + 4.8°E + 0.8°W + 4.0°W + 5.0°W

Ссылка на комментарий
Поделиться на другие сайты

Файлы конфигурации MGCAMD

Все файлы которые нужны для правильной работы mgcamd должны быть в папке /var/keys и ни в какой другой. Также обратите внимание, что заглавные/прописные буквы в именах файлов должны быть как указано ниже, поскольку для Linux это имеет значение. Все файлы - это обычные текстовые файлы, которые можно редактировать любым редактором, который сохраняет файлы как обычный текст (plain text).

Перво-наперво обратим внимание файл настроек:

  • /var/keys/SoftCam.Key
В этом файле хранятся ключи для эмуляционной части mgcamd. Для работы с сервером шары этот файл НЕ НУЖЕН. Если поместить в него правильные ключи, то можно открыть некоторые каналы со "взломанными" кодировками вообще без шары. Подробнее об этом файле ниже, в отдельном разделе по эмуляции.

Супер ценный совет:

Если вы собрались использовать файл SoftCam.Key для одних каналов и шару для других, убедитесь, что в SoftCam.Key НЕТ ключей на те каналы, которые вы собираетесь шарить. mgcamd всегда смотрит сначала в SoftCam.Key и если находит там ключ (хоть и устаревший) он будет использовать его, и только его. Естественно, что если ключ устаревший, то ничего работать не будет, даже если у вас есть коннект на сервер, где все работает. Поэтому очень рекомендую сначала временно убрать SoftCam.Key из /var/keys (или переименовать его в файл с другим расширением), настроить все остальное, убедиться, что всё работает как нужно, а потом уже смотреть, что можно дополнительно открыть, используя SoftCam.

Для собственно шары по сети понадобятся файлы:

  • /var/keys/mg_cfg
  • /var/keys/newcamd.list
  • /var/keys/ignore.list
  • /var/keys/priority.list
  • /var/keys/replace.list
Если у вас остались ещё какие-то файлы в папке /var/keys и вы больше не пользуетесь никаким другим софтом, кроме mgcamd - можете все остальное переместить в другое место, чтобы не мозолило глаза. Итак, в файле mg_cfg содержится основная системная конфигурация mcgamd, типа настроек таймаутов при работе с сетью, опции отладки и лог-файлов. В файле newcamd.list прописываются параметры для коннекта на сервер(ы), то есть сюда заносятся все параметры, полученные вами от конкретного провайдера. Файлы ignore.list, priority.list и replace.list позволяют произвести "тонкую настройку", параметров, чтобы каналы которые идут в нескольких кодировках открывались быстрее. Без этих трёх последних файлов можно обойтись если вас устраивает скорость открывания кодированных каналов. Этих трех файлов часто вообще не существует после установки новой прошивки (или они пустые), и их при желании нужно создавать с нуля самому (см. ниже).

Ценный совет:

Если содержимое файла mg_cfg, можно сказать, стандартно с очень малыми изменениями, то содержимое остальных файлов целиком зависит от принимаемых пакетов и настроек на отдельно взятом сервере. Поэтому, если у кого-то есть "100% рабочие" файлы конфигурации, то это не значит, что они подойдут лично вам. Лучше всего понимать самому, что именно в этих файлах написано и какой смысл это имеет.

Разберём теперь главный конфигурационный файл mg_cfg. Каждая строка, начинающаяся с символа # в э том файле - это комментарий, который только для вас. Программа эти строки игнорирует. Параметры, считываемые программой при запуске имеют следующий вид:

буква: { цифра } дополнительные параметры

Буква означает тот или иной параметр, как описано ниже. Цифра означает одно из возможных значений параметра. Дополнительные параметры должны присутствовать только там, где это необходимо.

Вот пример этого файла (без комментариев, которые обычно занимают в 10 раз больше места чем сами параметры). Реально, вам (возможно) понадобится подкрутить параметры B, L, К и N. Всё остальное можно смело ставить как здесь. Подробное описание всех параметров смотрите сразу ниже, а отдельную информацию по настройке параметров К и N - немного дальше, в разделе о логах и оптимизации mgcamd.

mg_cfg:

A:{0}
B:{12}				  # 12=DGS, 11=Enigma, 0=mgcamd1.31
C:{1}
D:{0}
E:{15}
F:{0}				   # Beta*crypt tunnelling
G:{1}
H:{6}
K:{3}				   # ECM timeout
L:{1} 192.168.1.1 514   # Logging
M:{0}
N:{7} 4 30			  # Reconnect options
P:{2}
Q:{30}
R:{4}
T:{0}
U:{0}

Если интересно, что означает каждый параметр, вот переведенный на русский язык файл-шаблон (плюс мои комментарии):

mg_cfg c комментариями
# AU - автообновление. Выбрать одно из четырех:
#	0 выключить функцию AU
#	1 включить обработку EMM для софт-эмулятора и карт шаринга
#	2 авторежим, включать EMM только если канал не открывается
#	3 включить EMM обработку только для карт доступных по сети
# Обычно эта опция нужна только если у вас свои официальные карты для авто-апдейта подписки (AU).
# Для работы в режиме обычного клиента это можно выключить.
A: { 0 }

# Тип устройства.
# Внимание!!! Крайне важный параметр!!!
#	 0 авто (подходит только для старых версий ниже 1.31)
#	11 для Enigma 2 (только для версии mgcamd 1.33 и выше)
#	12 для прошивок на основе DGS (ABcom/NLB/SifTeam/UFM/PGI) и версии mgcamd 1.33 и выше
# 
B: { 12 }

# ECM messages
# Показ EСM-cообщений. В качестве значения выбрать одно из трех:
#	0 не показывать ничего
#	1 обычный режим: показывать PID, и декодированные ECM и CW
#	2 подробный режим: показывать всё подряд включая весь дамп
# Это дело лучше видеть, чтобы сразу было понятно, работает
# сервер или нет, поэтому включим обычный режим:
C: { 1 }

# Отладочная информация в лог-файле
#	  0 off (default)
#	  1 ecm
#	  2 emm
#	  4 network ecm
#	  8 network emm
#	16 network login
#	32 показывать статистику загрузки памяти и CPU каждую минуту
#	64 добавить дату и время к каждой записи в лог
# обычно эту опцию включать не нужно, но ради интереса можно попробовать.
# в логе будет гораздо больше информации, чем обычно
D: { 0 }

# кэширование ECM (в секундах)
# каждая запись в кэш отъедает всего 28 байт памяти.
# Этот параметр бесценен для тех, у кого работает тайм-шифт или запись на mgcamd 1.33+
# Параметр должен быть включен обязательно во избежание двойных запросов на сервер, за
# которые можно быстро схлопотать бан!
E: { 15 }

# Переключает режим тунеллирования для кодировки награ в бетакрипт
# Нужен для определенных пакетов и значение 0 или 1 зависит от типа картсервера
# По-умолчанию стоит 1 (включен режим маппинга всех CAID 0x180x в 0x1801),
# но для правильной работы некоторых пакетов с кодировкой награ часто нужно 0
F: { 0 }

# Сетевой протокол для шаринга.
# Можно выбрать несколько значений, просуммировав отдельные опции.
#	0 сеть отсутствует (шаринга не предвидится)
#	1 клиент newcamd
#	2 клиент radegast
#	4 клиент camd3
#	8 клиент gbox
# Чаще всего используется протокол newcamd.
# Протокол camd3 сломан в версии mgcamd 1.31
G: { 1 }

# Что кэшировать? Значений может быть несколько как сумма следущих:
#	0 отключить кэширование
#	1 кэшировать Ecm pids, и сохранять в файле /tmp/ca_cache.list при перезапуске
#	2 вести кэш Ecm, и помнить значения столько секунд, сколько указано в опции "E" выше
#	4 вести кэш Emm для карт доступных по сети, чтобы не слать один и тот же EMM снова
# Лучше всего вести только кэш ECM/EMM, без особой надобности в файле /tmp/ca_cache.list
H: { 6 }

# Значение в секундах для тайм-аута сетевого запроса.
# Поставим 3 секунды, так как обычно сервер должен ответить в этих пределах.
# Для некоторых глючных пакетов, типа Nova, этот параметр можно и увеличить до 5.
# Но помните, чем больше этот параметр, тем медленней mgcamd будет
# обращаться к серверу если от сервера не пришел ответ во время.
# Если сервер не отвечает за это время, см. параметр "N".
K: { 3 }

# Опции для лог файлов, можно выбрать несколько параметров как сумму:
#	0 не вести лог
#	1 лог через сеть (по протоколу UDP Syslog)
#	2 лог на консоль
#	4 лог в файл (который будет всё время расти, и поэтому он может забить
#		 всю флеш-память - его вам придется чистить вручную)
#  дополнтельные параметры: IP-адрес + UDP порт для сетевого лога + имя лог-файла
#
# Это очень важная опция для того, чтобы сразу увидеть где грабли, если
# что-то не работает, или работает не так как надо. Идеальней всего использовать
# лог по сети. Эта процедура описана ниже подробнее. Здесь же нужно указать
# IP адрес вашего обычного компьютера в вашей локальной сети, UDP порт, который
# обычно должен быть 514 и если хотите включить лог-файл на самом ресивере, то
# имя файла, где-нибудь, например в папке /tmp. Для включения лога в файл,
# нужно поменять { 1 } на { 4 } или { 5 }. Если параметр не 4 и не 5, то имя лог файла
# можно не писать.
L: { 1 } 192.168.1.1 514 /tmp/mgcamd.log

# Показ EMM-cообщений. В качестве значения выбрать одно из трех:
#	0 не показывать никаких EMM
#	1 показывать только верные EMM
#	2 показывать верные и неверные сообщения EMM, включая весь дамп
# Это дело нам не понадобится, поэтому выбираем "не показывать":
M: { 0 }

# Повторная попытка подсоединения к серверу при работе с сетью.
# Можно выбрать несколько значений, просуммировав отдельные опции.
#	 0 не пытаться повторить запрос
#	 1 повторная попытка при каждом новом ECM
#	 2 повторная попытка присоединиться к недоступному ранее серверу
#	   каждые Q секунд (Q дается как отдельный параметр "Q" ниже)
#	 4 пробовать быстро пере-соединиться к отрубившемуся серверу:
#	   либо после XX ECM запросов без ответа от сервера,
#	   либо если нет ответа от сервера в течение YY секунд
#  Числа XX и YY даются как дополнительные параметры
#  Относительно числа XX - mgcamd будет ждать ответа от сервера столько
# секунд, сколько указано в параметре "К"	  
#
# Рекомендую установить все опции 01 + 02 + 04, то есть их сумму = 07.
# В качестве дополнительных параметров XX и YY можно взять 5 запросов без
# ответа или, скажем, 30 секунд. Хотя, наилучшие значения будут напрямую
# зависеть от качества вашего Интернета и провайдера шары.
N: { 7 } 4 30

# разновидность экранного интерфейса:
#	0 нет меню на экране
#	1 neutrino
#	2 enigma
#	3 relook
#		  + имя пароль (как дополнительные параметры для авторизации)
# Это всё нам вообще не понадобится. Это для других ресиверов:
O: { 0 } username password

# Приоритет протоколов (если у вас их несколько)
#  0 gbox, newcamd, radegast, camd3
#  1 camd3, radegast, newcamd, gbox
#  2 newcamd, camd3, gbox, radegast
# нас интересует newcamd, поэтому поставим его на первое место
P: { 2 }

# Пытаться коннектиться на "мертвый" сервер каждые 30 секунд
# (если включено в опции "N" выше)
Q: { 30 }

# Cчитывать файлы конфигурации повторно.
# Параметр может быть суммой следующих значений:
#	0 считывать все файлы конфигурации только раз при запуске mgcamd
#	1 считывать файлы каждый раз при смене канала
#	2 считывать файл SoftCam.Key каждый раз при смене канала
#	4 считывать файл SoftCam.Key, если он изменился
# Поскольку меняться будет потенциально только SoftCam.Key (и то редко), установим 04:
R: { 4 }

# Что показывать на экранном меню:
#	1 emu ecm
#	2 шару через сеть
#	4 показывать "некодированный канал" / "не могу открыть"
#	8 показывать обновление ключей EMM
#	+ web порт для экранного меню
# Это всё нам не понадобится. Это для для других ресиверов:
S: { 0 } 80
  
# Папка с файлами конфигурации (softcam, autoroll, ignore/priority)
#	0 файлы в папке /var/keys
#	1 файлы в /tmp
# Тут и так понятно, что нужно выбрать 0:
T: { 0 }

# Обновление ключей. Нужно выбрать 2 параметра, как сумму 01/02 плюс 04
#	1 обновлять только новые ключи
#	2 обновлять все ключи (для валидации PMK)
#	4 включить функцию TPS AU (в дополнительных параметрах указать
#			SID, в котором pmt pid содержит au pid):  U: { 5 }  0x1234
# Это дело работает вместе с параметром "A".
# Поскольку мы вырубили "A", выключаем и это дело тоже:
U: { 0 }

Второй файл, который совершенно необходим для шаринга: newcamd.list. Он достаточно прост в своем синтаксисе - в нем указывается на какой сервер нужно коннектиться, с каки именем, паролем и по какому порту. Естественно, исходя из имени файла, всё это для коннекта на сервер(ы) по протоколу newcamd. Не пытайтесь вписать сюда серверы, которые не принимают клиентов по протоколу newcamd! Комментарии в файле newcamd.list, так же как и ранее, начинаются со знака #.

ВНИМАНИЕ: Грабли!

Строки с конфигурацией серверов в этом файле должны начинаться с CWS=.... То есть, не должно быть никаких других символов перед CWS, даже пробелов! Иначе mgcamd просто проигнорирует такие строки.

Вот пример:

# как часто (в секундах) проверять сервер шары на признаки жизни. Полезно, если долго сидите на некодированном канале.
CWS_KEEPALIVE = 300

# никаких других параметров в этом файле больше не нужно, кроме указания серверов шары ниже!

# каждая последущая строка описывает ваш коннект на тот или иной пакет шаринга.
# если у вас несколько разных пакетов, на каждый пакет идет своя строчка конфигурации.
# даже если сервер один и тот же, на каждый пакет может быть свой отдельный порт, поэтому 
# нужно прописать всё отдельно. Вся информация от провайдера. Формат строки следующий:
# CWS = адрес-сервера порт-сервера логин-биллинга пароль-биллинга 14-цифр-ключа-шифрования
# для примера, у вас имеется доступ к двум пакетам по разным портам, значит у вас будет 2 строки
# (вcе параметры ниже ненастоящие, вам нужно подставить вашу личную инфу:

CWS = server1.com 1234 username password 0102030405060708091011121314 # пакет X
CWS = server2.com 5678 username password 0102030405060708091011121314 # пакет Y

В принципе, по-минимуму - это всё. Перегружайте ресивер и если у вас правильно настроена домашняя сеть, выход в Интернет и настройки файлов приведенных выше совпадают с настройками на сервере, то всё должно заработать.

Можно пойти дальше и настроить mgcamd самым оптимальным образом. Особенно, если вы заметите, что некоторые каналы открываются гораздо дольше других. Для этого нам понадобятся файлы ignore.list, priority.list и replace.list. Но для того, чтобы понять что туда писать, лучше сначала понять что именно происходит при работе mgcamd. Поэтому сначала запустим всё как есть без этих файлов, и посмотрим в лог, где мы найдем информацию, которая поможет нам создать эти три файла. Как читать лог описано ниже. После этого описано как настроить файлы ignore.list, priority.list и replace.list.

Суперценный совет для избежания бана на шаринге!!!

В некоторых прошивках есть возможность запустить сразу три эмулятора mgcamd одновременно: один для просмотра каналов, второй для записи и третий для функции картинка-в-картинке для кодированных каналов (до этого такое не работало, если все три канала были кодированными). Для работы в таком режиме используется дополнительный софт mg_launcher, который плодит несколько процессов mgcamd. Поэтому в папке /var/keys вы увидите целых три файла newcamd.list (для каждого из трех процессов). Всё работает прекрасно (если скопировать содержимое из первого файла во второй и третий), но проблема в том, что теперь у вас на сервер шары пойдет в 3 раза больше запросов. В результате, скорее всего вы получите бан. Или просто не сможете подсоединиться к серверу больше раза. Если вы НЕ отредактируете все три файла, а только один (чтобы попытаться избежать бана), то вы не сможете записывать кодированные каналы. Самый частый вопрос, который задают после запуска mgcamd в связке с mg_launcher: "почему у меня перестала работать запись и тайм-шифт кодированных каналов?" Поэтому, если только у вас нет специального соглашения с провайдером шары, это дело нужно отключить! Как отключить mg_launcher зависит от конкретной прошивки.

Изменено пользователем дядя Фёдор

IPBox 9000HD | IPBox 910HD | IPBox 100 HD | Dreambox DM 800HD se | WaveFrontier Toroidal T90

28.2°E + 23.5°E + 19.2°E + 16.0°E + 13.0°E + 9.0°E + 7.0°E + 4.8°E + 0.8°W + 4.0°W + 5.0°W

Ссылка на комментарий
Поделиться на другие сайты

Настройка эмуляции с использованием SoftCam.Key

Как уже упоминалось выше, эмулятор mgcamd может брать ключи из файла /var/keys/SoftCam.Key и работать в режиме эмулятора официальной карты. Речь идет не о шаре или работе по сети. Всё происходит на самом ресивере, без выхода в Интернет. Если поместить в файл SoftCam.Key правильные ключи, то можно открыть некоторые каналы со "взломанными" кодировками. Правда таких каналов становится всё меньше и меньше, потому как все провайдеры постепенно уходят со сломанных систем кодирования.

Кроме сломанных кодировок старых версий, некоторые провайдеры иногда перестают менять ключи каждые несколько секунд и используют один и тот же неменяющийся ключ (именуемый "статика"). Если такой ключ имеется в наличии то можно открыть такие каналы с любой кодировкой. Но обычно статика не живет долго - считанные часы, в лучшем случае - дни.

Где брать свежие файлы? Мест полно. Только сразу учтите, не надо качать всю ерунду подряд. Нужен только SoftCam.Key и никакой больше! Не замусоривайте свою директорию конфигурации неизвестно чем.

Кроме того, даже в этих файлах, которые вы стянете из Интернета вам не понадобится 99.9% строк. Лучше всего будет найти ключи именно для тех каналов, которые вам нужны, а всё остальное выкинуть. Следует помнить, что BISS ключи меняются крайне редко (годами одни и те же), а статические ключи живут очень мало.

Что открывается? Открываетсякодировка БИСС, взломанный Виаксесс 2.3, Награвижн 2 и Криптоворкс (последние два только на паре пакетов со статическим мастер-ключом) плюс любая статика. Легче всего найти каналы по кодировкам на сайте kingofsat.net. Выбираете интересуемый спутник и систему кодирования и получаете список каналов. Правда, там нет информации по спутникам восточнее, чем 75E, 80Е и 90Е - их нужно смотреть на lyngsat.com и ему подобных.

Все строки в SoftCam.Key имеют одинаковый формат:

буква код номер ключ

буква обозначает кодировку (N=Nagra, V=Viaccsess, W=Cryptoworks, S=Seca/Mediaguard, F=BISS)

код - идентификатор провайдера и (иногда) карты

номер - порядковый номер ключа для данного канала

ключ - собственно, сам ключ.

Дальше, в конце строк, часто пишут комментарии (к какому каналу ключ, и т.д). Ключи для разных кодировок могут быть разной длины.

Ключи могут идти парами или по одиночке, например пара ключей Награ2:

N 1101 00 12345678901234567890123456789012 # первый Награ2 ключ
N 1101 01 98765432109876543210987654321098 # второй Награ2 ключ

Самая большая ошибка при использовании файла SoftCam.Key - это то, когда люди бездумно загружают с Интернета всякий хлам в этот файл, а потом удивляются, почему не работает шара. Повторю ещё раз совет из раздела выше:

Если вы собрались использовать файл SoftCam.Key для одних каналов и шару для других, убедитесь, что в SoftCam.Key НЕТ ключей на те каналы, которые вы собираетесь шарить. mgcamd всегда смотрит сначала в SoftCam.Key и если находит там ключ (хоть и устаревший) он будет использовать его, и только его. Естественно, что если ключ устаревший, то ничего работать не будет, даже если у вас есть коннект на сервер, где все работает. Поэтому очень рекомендую сначала временно убрать SoftCam.Key из /var/keys (или переименовать его в файл с другим расширением), настроить все остальное, убедиться, что всё работает как нужно, а потом уже смотреть, что можно дополнительно открыть, используя SoftCam.

Особая заметка по ключам BISS. Бывает, что некоторые каналы в кодировке BISS не открываются хоть и прописан правильный ключ и другие BISS каналы работают нормально. Проблема заключается в следующем. Обычно ключи в софткаме должны быть привязаны к конкретному провайдеру. Для привязки используется второе число в строке с ключом, обозначающее Provider ID для таких кодировок как Viaccess или Nagra или CardID+ProviderID для Cryptoworks. Для BISS каналов такая последовательность неприменима, так как нет ни конкретной "карты", ни ID провайдера (все Биссы одинаковые, хоть в Африке, хоть в Европе). Поэтому, для привязки конкретного ключа к конкретному каналу обычно используют "порядковый номер" канала на транспондере (этот номер известен как SID) . Всё бы ничего, если речь идет об одном и том же транспондере, где не может быть двух разных каналов с одним и тем же SID. А как быть если каналы вещают с разных транспондеров или даже с разных спутников, и у них по несчастному совпадению один и тот же SID? Если прописать два разных ключа с одинаковым SID, то mgcamd возьмет только первый попавшийся и проигнорирует второй ключ. В результате, из двух BISS каналов будет работать только какой-то один.

Что же делать? Привязываться к каналу по другим параметрам!

Для правильной привязки определенного ключа BISS к определённому каналу нужно знать не только SID, но и также VideoPID (идентификатор видео-дорожки для этого канала). Шансы того, что у двух отдельно взятых каналов совпадут оба параметра ничтожно малы. Проще всего показать процесс на наглядном примере. Для примера возьмем спутник 42E и канал Rustavi2, который иногда закрывают во время футбола кодировкой BISS.

1) Находим на сайте Lyngsat нужный спутник и канал (http://www.lyngsat.com/turk42.html)

2) Видим, что у канала Rustavi2 на сайте Lyngsat прописаны следующие параметры SR-FEC-SID-VPID: 2500 - 5/6 - 103 - 308. Нам как раз понадобятся два последних числа, так как это и есть нужные SID и VideoPID (или VPID).

3) Нужные нам числа 103 и 308 даны на сайте в десятиричной системе исчисления, а софткам понимает только шестнадцатиричную. Поэтому открываем обыкновенный калькулятор в Windows, выбираем режим "Scientific/Научный" и переводим оба числа в шестнадцатиричную систему. Получаем 103(dec) = 67(hex) и 308(dec) = 134(hex).

4) "Добиваем" каждое из полученных двух чисел нулями до 4 разрядов: 0067 и 0134. Получаем наш код привязки, который всегда должен быть восьмизначным: 00670134.

5) Для каждого из каналов BISS в SoftCam.Key должно быть две строки (с одинаковым ключом, но с разными ID: 00 и 01), поэтому финальный вариант для этого канала будет выглядеть в софткаме так:

F 00670134 00 XXXXXXXXXXXXXXXX Rustavi2 (42E)
F 00670134 01 XXXXXXXXXXXXXXXX Rustavi2 (42E)

Естественно, что XXXXXX нужно заменить на реальный ключ. Ключи всегда следует писать без пробелов между цифрами и в шестнадцатиричной системе (на некоторых сайтах публикуют ключи в десятиричной системе)

Изменено пользователем дядя Фёдор

IPBox 9000HD | IPBox 910HD | IPBox 100 HD | Dreambox DM 800HD se | WaveFrontier Toroidal T90

28.2°E + 23.5°E + 19.2°E + 16.0°E + 13.0°E + 9.0°E + 7.0°E + 4.8°E + 0.8°W + 4.0°W + 5.0°W

Ссылка на комментарий
Поделиться на другие сайты

Как снять лог от mgcamd?

Лог - это первое, что нужно исследовать, если что-то не работает. Лог - это первое, что от вас попросят на форуме, если вы захотите помощи. Поэтому, крайне важно знать как правильно и эффективно снять лог с ресивера.

Как уже было написано в примере конфига mg_cfg выше - есть 2 способа увидеть лог. Либо заставить mgcamd писать в файл прямо на самом ресивере, либо заставить mgcamd слать тот же лог по сети, скажем на ваш обычный компьютер.

В первом случае не понадобится никакого дополнительного софта, и для просмотра лога можно просто зайти на ресивер через Telnet и наблюдать за работой mgcamd в реальном времени, выводя содержимое файла на экран Linux командой tail -f имя-лога. Хотя это кажется самым log-ичным способом, это не совсем так. Это неудобно, потому как во-первых, нужно коннектиться к ресиверу и работать с командной строкой Linux, а во-вторых, лог будет все время расти (хотя и медленно). Если его своевременно не стирать, то в один день просто забъёт всю флеш-память, а это, мягко говоря, лишние хлопоты.

Гораздо более удобней просто напросто наблюдать за логом с компьютера, который находится в локальной сети с ресивером, без каких либо логинов в сам ресивер. Для этого нужно просто установить параметр L: { 01 } как показано выше в примере mg_cfg и запустить на вашем компьютере бесплатную программку (просмотрщик сообщений в формате syslog), которая будет принимать сообщения от mgcamd и выводить их в виде лога на экране компьютера.

Бесплатных программ для этой цели есть несколько. На большинстве сайтов рекомендуют древнюю программу 3CSyslog, которую можно взять здесь. Архив весит чуть меньше мегабайта и всё работает, в принципе ок. Хотя слишком уж эта программа древняя, без минимальных дополнительных функций. А самый главный её минус в том, что она показывает все сообщения "задом наперед", то есть самые новые сообщения всегда в самой верхней строке. Обычно это удобно, но вот в случае с mgcamd это как раз совсем неудобно (по крайней мере для тех, кто привык смотреть в обычный лог mgcamd). mgcamd выплёвывает в лог по нескольку сообщений на каждую смену ECM/CW и этот "блок" сообщений отображается "задом наперед", что может затруднить понимание происходящего.

Рекомендую попробовать другую софтину, написанную нашим человеком, chewbacca c форума sat-expert.com. Для работы, правда, требуется очень немаленькая (232 МБ) библиотека .Net 3.5 SP1, но работает программа ГОРАЗДО лучше и совершенно бесплатно. Можно взять софт здесь: traysyslog_setup.zip

Принцип действия этого типа логирования очень простой. mgcamd посылает текстовые сообщения (используя протокол UDP) на IP адрес и порт, который вы установили в параметре L: { 01 } в файле /var/keys/mg_cfg (к слову, стандартный порт для протокола Syslog - 514). Программка на вашем компьютере принимает сообщения с этого порта и выводит на экран. Если программка на компьютере не запущена, сообщения просто будут "растворяться" вникуда без побочных эффектов для ресивера или вашего компьютера (это свойство протокола UDP). Так что такую настройку можно сделать постоянной и просто включать на компьютере Tray Syslog, если понадобится посмотреть отчего там вдруг не работает (или насколько правильно работает) mgcamd.

Если вы только поменяли свой mg_cfg и прописали туда IP своего компьютера для отсылки лога, нужно перезапустить mgcamd (если не знаете как это сделать, просто перезагрузите ресивер).

Изменено пользователем дядя Фёдор

IPBox 9000HD | IPBox 910HD | IPBox 100 HD | Dreambox DM 800HD se | WaveFrontier Toroidal T90

28.2°E + 23.5°E + 19.2°E + 16.0°E + 13.0°E + 9.0°E + 7.0°E + 4.8°E + 0.8°W + 4.0°W + 5.0°W

Ссылка на комментарий
Поделиться на другие сайты

Что можно увидеть из лога?

Увидеть можно очень много! Практически всё! ;)

Для начала, собственно, старт mgcamd. В этом примере мы сделаем вид, что у нас прописано два разных сервера в newcamd.list. Первый сервер называется server1.com и у него порт 1234, второй - server2.com с портом 5678. Для логина на оба сервера используется имя username (пароль в логе не отображается). Итак, пример лога:

tuxbox mgcamd v1.3x by mixvt (compiled xxx xx xxxx xx:xx:xx)

[mg] Net:1:7:2:2s Show ecm:1, emm:0 Up:0 Au:0 Dir:0 Osd:no:80:0 Cache:7 Log:1:192.168.1.1:514 Reread:0

[mg] Ecm cache time: 36000

Box type: ipbox9000

Conax.Key error 2: No such file or directory

Keys readed

[config] newcamd route = username:server1.com:1234

[config] newcamd route = username:server2.com:5678

newcamd keep alive: 300, incoming port: 12000

[mgcam] emm thread started

[mgcamd] tps update started.

/var/keys/tps.bin error 2: No such file or directory

[newcamd] Connecting to server1.com:1234...

[newcamd] Connecting to server2.com:5678...

[newcamd] Login to server1.com:1234 as username accepted (19ms)

[newcamd] Card data from server1.com:1234 (171ms):

Userid 189 caid 500 providers 4

Idents: 020910 023b00 024400 021700

[newcamd] Login to server2.com:5678 as username accepted (21ms)

[newcamd] Card data from server2.com:5678 (123ms):

Userid 137 caid 654 providers 4

Idents: 000000 000001 000002 000003

Отсюда уже сразу видно много интересного. Во-первых, видны типы карт, которые шарятся (число сразу за "caid"). CAID - это идентификатор карты, а точнее идентификатор системы защиты, которую использует карта. Вот список наиболее часто используемых идентификаторов:

01xx = Mediaguard/Seca
05xx = Viaccess
06xx = Irdeto
09xx = NDS Videoguard
0Bxx = Conax
0Dxx = CryptoWorks
17xx = BetaCrypt
18xx = NagraVision
2600 = BISS
4Axx = DreCrypt  (который mgcamd обзывает как @Sky в своих логах)

Там где стоит xx может быть любое число, которое может обозначать версию системы защиты или, скажем так, разновидность этой системы защиты, иногда заточенную под определенную вещательную компанию.

Из примера выше видно, что мы подключились к двум серверам. Первый шарит несколько карточек с кодировкой Viaccess (потому что CaID 0500 начинается с 05xx). Также видно какие именно провайдеры карт шарятся - их 4 штуки. Это становится ясно из поля Idents, которое перечисляет все идентификаторы провайдеров Viaccess.

В чем смысл понятия "провайдер" и "Provider ID" (Ident) в этом контексте? Систем кодирования не так уж много (см. список выше для примера), но у каждой системы защиты есть разновидности (различные версии одной и той же системы защиты, различные виды карт определенных пакетов каналов и т.д.) Чтобы различать между такими картами, помимо основного CAID вводится еще один идентификатор, который обозначает уже вполне конкретную карту с конкретным пакетом каналов. Скажем так, "карта плюсовиков последнего выпуска", а не просто "карта Виаксесс". Впрочем, для некоторых кодировок провайдер (Ident) всегда равен 00000, и там обходятся только CAID (таким образом работают Видеогард и Конакс, например).

Для Ирдето вместо провайдеров или идентов показывают так называемые ChID (чиды). Видно, что второй сервер шарит карту в кодировке Ирдето (CaID 0654 начинается с 06xx). Выглядит так, что как будто бы тоже несколько провайдеров с идентами 0, 1, 2 и 3, но это только одна карта. Это особенность кодировки Irdeto (и Betacrypt, которая основана на Irdeto). Эти иденты называются чидами (ChID) и действуют также как и ProvID у других кодировок. Разница лишь только в том, что одна и та же Irdeto карта может иметь несколько ChID, а другие кодировки обычно имеют только один ProvID.

Говоря проще, отдельная карта всегда идентифицируется двумя числами: CaID и ProvID. И бывает нередко такое, что у одной и той же компании есть несколько разных карт на одни и те же каналы (например, выпущенные в разное время карты или карты на новые пакеты каналов).

Нужные комбинации CaID:ProvID для интересующих вас каналов всегда можно взять на сервере.

Итак, чтобы подвести предварительный итог, получается, что при включении кодированного канала, у него должен совпасть CaID:ProvID (или CaID:ChID для Irdeto) с теми, что прислал сервер при подключении к нему. Только в этом случае на сервер пойдет запрос "ключа". В такой ситуации mgcamd отошлёт на сервер так называемую последовательность Entitlement Control Message или ECM. Если на сервере всё впорядке, то он должен ответить на такой запрос последовательностью, которая называется Control Word или CW. Если вы получаете правильный код CW, то канал открывается. В зависимости от системы кодирования интервал смены ECM (живучесть ключа) может быть от 2-3 секунд до целой минуты. После чего повторяется ECM запрос и ответ CW и так далее.

Посмотрим как это выглядит в логе (важные цифры выделены):

[mg0] stoping camd..

[mg0] service 2EA index 0 pmt pid 0 (253)

ECM: CaID: 0x0500 -> CaPID: 0x040C ProvID: 022B00

ECM: CaID: 0x0654 -> CaPID: 0x07F4 ProvID: 000000

[mg1] service 2EA already started with index 0

[mg1] service 2EA index 1 pmt pid 0 (254)

[mg0] No viaccess key(s) found for id 22B00 keynr 08

[mg0] network can't decode

[mg0] pid 0x040C failed to decode.

[mg0] No irdeto key(s) found for id 0 keynr 00

[mg0] -> ECM to newcamd server2.com:5678

[mg0] <- CW from newcamd server2.com:5678 (481ms)

[mg0] 481 msec -- Wed Jun 10 01:32:49 2009

===== Irdeto ECM on CaID 0x0654, pid 0x07f4 ======

prov: 000000

cw0:0 A6 1E D2 96 57 62 A4 5D

cw1:0 32 2C 22 80 FA AB BA 5F

[mg0] irdeto using chid 0001 version C3

Пояснение к происходящему, где важна практически каждая строка.

Первые две строки - это стандартное сообщение при переключении канала. У каждого канала есть свой Service ID (SID), который уникален в пакете каналов. Из второй строки видно, что мы включили канал, у которого SID равен 2EA.

Дальше имеем две строки, начинающихся с ECM. В этих строках информация о кодировании канала (если канал открыт, то вы никаких ECM не увидите). В нашем примере мы включили кодированный канал, и открывается он либо картой Viaccess (CaID:500, ProvID:022B00) либо картой Irdeto (CaID:654, ProvID:000000). Каждой комбинации CaID и ProvID на каждом отдельно взятом канале присваевается свой уникальный идентификатор: PID. В нашем случае получается, что PID 040C "олицетворяет" SID=02EA, взятый вместе с CAID=0500, вместе с ProvID=022B00. Точно также, PID 07F4 обозначает SID=02EA вместе с CAID=0654 и ProvID=000000.

Посмотрим теперь в начало лога, где перечислены все CaID и ProvID, которые нам предлагают оба сервера. Есть ли там хотя бы одна из двух комбинаций CaID:ProvID, которая подходит ко включенному каналу? Есть одна, это - 654:000000, то есть то, что ответил нам server2.com при подключении к нему. К сожалению, у нас нет доступной карты Viaccess 0500:022B00, но mgcamd этого (ещё) не знает, поэтому он будет идти по списку кодировок, пока не наткнется на ту, которая подходит.

Из чего следует, что сначала мы смотрим, нет ли у нас уже ключа Viaccess (в кэше или в локальном файле SoftCam.Key): "No viaccess key(s) found for id 22B00 keynr 08". То есть, ключа нет. Дальше мы смотрим, не доступен ли ключ по сети. К сожалению, как мы уже установили, для Viaccess - у нас нет подходящего сервера. Поэтому мы получаем сообщение в логе "network can't decode". Теперь, когда все попытки исчерпаны mgcamd рапортует о том, что нам не удалось открыть канал, используя PID 040С (то есть комбинацию 0500:022B00). Это сообщение "pid 0x040C failed to decode", то есть канал не удалось открыть по кодировке Viaccess.

Переходим ко второму PID. Опять смотрим, нет ли у нас уже ключа Irdeto (в кэше или в локальном файле SoftCam.Key): "No irdeto key(s) found for id 0 keynr 00" - ключа нет. Теперь мы смотрим, доступен ли ключ по сети. У нас есть подходящая комбинация, объявленная сервером sever2.com при логине. Поэтому, следующая строка - это посылка ECM-запроса на сервер server2.com. Далее виден ответ от сервера с кодом CW. Ответ пришел за 481мс, на что стоит обратить внимание при проблемах (об этом ниже). Последние 5 строк - подтверждение проделанной работы по запросу на сервер. Показаны кодировка, которая окрылась (Ирдето), идентификатор карты (CaID), идентификатор кодировки (PID), идентификатор провайдера (ProvID), сама последовательность CW0 и CW1, то есть "ключик" к каналу, полученный от сервера и используемый этим каналом ChID (это дело присутствует только у Ирдето). Дальше всё повторяется снова и снова, каждый раз когда меняется ECM.

Изменено пользователем дядя Фёдор

IPBox 9000HD | IPBox 910HD | IPBox 100 HD | Dreambox DM 800HD se | WaveFrontier Toroidal T90

28.2°E + 23.5°E + 19.2°E + 16.0°E + 13.0°E + 9.0°E + 7.0°E + 4.8°E + 0.8°W + 4.0°W + 5.0°W

Ссылка на комментарий
Поделиться на другие сайты

Как увидеть и распознать проблему, используя лог

Рассмотрим теперь проблемные ситуации, когда все должно вроде бы работать, но не работает. Или работает, но не так как хотелось бы. Во первых, нужно убедиться, что mgcamd вообще для начала пытается подсоединиться к серверу при начальном запуске (обычно во время старта ресивера). Это должно выглядеть так:

[config] newcamd route = login:server1.com:1234

[newcamd] Connecting to server1.com:1234...

Этих строк должно быть по две на каждую строку "CWS=" из newcamd.list. Если таких строк нет, то проверяйте ваш файл newcamd.list. Проверьте, чтобы файл находился там, где ему положено и имел правильный формат.

Во-вторых, по какой угодно причине может отсутствовать доступ к серверу. Либо из-за проблем с Интернетом (включая неверные настройки вашей домашней сети), либо из-за глобальных проблем на сервере, либо из-за проблем лично с вашим логином (не на тот сервер или порт коннектитесь, отключены за неуплату или по причине бана из-за нарушения правил пользования). Во всех этих случаях вы получите в логе нечто вроде такого:

[config] newcamd route = login:server1.com:1234

[newcamd] Connecting to server1.com:1234...

[newcamd] Connection to server1.com:1234 failed (47ms)

Чтобы убедиться, что связь с сервером есть, нужно зайти на ресивер по Telnet и дать команду ping server1.com, где server1.com нужно поменять на имя или IP адрес вашего сервера. Остановить команду можно, нажав CTRL+C. Если ответа не придет, то нужно смотреть что у вас с Интернетом (в крайнем случае, если пингуются другие адреса, кроме вашего сервера, то скорее всего сервер мертв). Если ответ есть, то нужно выяснить почему вас сервер не пускает (не тот логин или пароль; не тот сервер, если их несколько у провайдера; повторный логин одновременно с уже активным логином, бан на сервере и т.д.)

В-третьих, допустим все заработало, вы смотрите канал, и вдруг, ни с того ни с сего картинка и звук останавливаются и продолжаются чере несколько секунд (или через несколько десятков секунд). Открываем лог, а там что-то вроде такого:

===== @Sky ECM on CaID 0x4AE1, pid 0x0078 ======

prov: 000000

cw0:0 0F 8B 67 01 27 0D 9E D2

cw1:0 58 07 6F CE 63 E3 2F 75

[mg0] -> ECM to newcamd server1.com:1234

[mg0] -> ECM to newcamd server1.com:1234

[mg0] -> ECM to newcamd server1.com:1234

[mg0] -> ECM to newcamd server1.com:1234

[mg0] <- CW from newcamd server1.com:1234 (1116ms)

[mg0] WARNING, both cws changed !

[mg0] 1116 msec -- Thu Jun 11 13:30:00 2009

===== @Sky ECM on CaID 0x4AE1, pid 0x0078 ======

prov: 000000

cw0:0 D6 2E 1E 22 23 0D E5 15

cw1:0 D8 9C 5E D2 2F 21 FE 4E

Здесь приведено классическое определение "затыка". Это когда либо по причине плохого качества связи, либо по причине проблем на сервере вам не приходит во время или вообще не приходит ответ на ECM-запрос. В здешнем примере мы видим, что сервер ответил только с 4-го раза, при этом ключ поменялся уже два раза (или больше): "WARNING, both cws changed !". Бороться с затыками можно только двумя способами: улучшать качество Интернет коннекта или (если вы уверены, что с Интернетом у вас все впорядке) менять провайдера шары. Простейший тест на предмет "где затык: на сервере или в Интернете?" состоит в запуске команды (из ресивера) ping server1.com, или (из Windows) ping -t server1.com, где server1.com нужно поменять на имя или IP адрес вашего сервера (остановить команду можно, нажав CTRL+C). Нужно, следить за результатами ping во время просмотра канала и одновременно смотреть лог mgcamd. Как только вы увидите в логе mgcamd, что на запрос ECM нет ответа нужно сразу же смотреть на результаты ping, есть ли потери и там. При этом картинка на экране ТВ - это не показатель затыка, так как изображение продолжается еще некоторое время, даже без ответа от сервера. Если есть потери данных в ping (команда перестает выдавать информацию в этот момент в Linux или выдает "Request timed out" в Windows), и, особенно, если это происходит в момент затыка, то, скорее всего, сервер тут ни при чем - улучшайте свой Интернет коннект. Если же ping идеальный, без потерь и с более-менее одинаковым временем отклика при каждом запросе, то у вашего шаровика проблемы (перегруз карты, криво настроен софт, и т.д.).

Так выглядит идеальный ping c 0% потерь:

Цитата

# ping server.com

PING server.com (x.x.x.x): 56 data bytes

64 bytes from x.x.x.x: icmp_seq=0 ttl=56 time=8.7 ms

64 bytes from x.x.x.x: icmp_seq=1 ttl=56 time=8.8 ms

64 bytes from x.x.x.x: icmp_seq=2 ttl=56 time=7.7 ms

..... здесь пропущено 994 строки ....

64 bytes from x.x.x.x: icmp_seq=997 ttl=56 time=7.9 ms

64 bytes from x.x.x.x: icmp_seq=998 ttl=56 time=8.9 ms

64 bytes from x.x.x.x: icmp_seq=999 ttl=56 time=8.0 ms

--- server.com ping statistics ---

1000 packets transmitted, 1000 packets received, 0% packet loss

round-trip min/avg/max = 7.3/8.1/8.9 ms

Так выглядит плохой ping с потерями и плохим коннектом:

# ping server.com

PING server.com (x.x.x.x): 56 data bytes

64 bytes from x.x.x.x: icmp_seq=0 ttl=56 time=7.5 ms

64 bytes from x.x.x.x: icmp_seq=1 ttl=56 time=7.9 ms

64 bytes from x.x.x.x: icmp_seq=2 ttl=56 time=8.0 ms

..... здесь НЕ пропущено ничего, просто не пришел ответ на ping ....

64 bytes from x.x.x.x: icmp_seq=20 ttl=56 time=7.2 ms

64 bytes from x.x.x.x: icmp_seq=21 ttl=56 time=8.0 ms

64 bytes from x.x.x.x: icmp_seq=22 ttl=56 time=9.0 ms

--- server.com ping statistics ---

23 packets transmitted, 17 packets received, 26% packet loss

round-trip min/avg/max = 6.9/8.6/30.1 ms

Когда возникает затык, подобный описанному выше, два параметра настройки mgcamd являются очень важными в плане того, как mgcamd будет реагировать на затыки (что по сути дела значит, как скоро можно ожидать возвращение картинки на экран). Это параметры K:{} и N:{} из файла mg_cfg.

Параметр K:{} описывает какое максимальное количество времени (в секундах) нужно ждать ответа от сервера на ECM запрос, по истечении которого mgcamd решает, что ответа нет. Чем больше это число, тем больше шансов получить ответ, если у вас плохой Интернет или глюкавый сервер шары. Кроме того, еще зависит от того, какие пакеты вы смотрите. Большинство карт обычно отвечают меньше, чем за 1 секунду. Но есть некоторые карты, где нормальное время отклика 1-2 секунды. В экстремальных случаях (известный пример - пакет Nova), ответ может приходить и за 3-5 секунд. Естественно, если вы установите K:{} равным 1 секунде, а сервер будет пытаться вам ответить через 2-3 секунды, то ничего хорошего из этого не выйдет. mgcamd все время будет думать, что сервер не ответил (по истечении секунды) и слать запросы повторно. От этого будет плохо всем, в основном, конечно, серверу, который будет завален запросами, ну и ресиверу тоже, который будет работать в таком случае неоптимально.

С другой стороны если взять и увеличить параметр K:{} на неразумно большую величину, типа 5 или больше секунд, то возникнет совершенно неблагоприятный эффект для вас. Представьте, что обычно вам ответы приходят за 0,5 секунды, и один раз ответ по какой-то причине не пришел. Теперь вы будете ждать целых 5 секунд, до тех пор, пока mgcamd не попытается снова послать запрос. За это время на некоторых каналах уже может случиться и затык, в то время, как если бы у вас повторный запрос пошел через, скажем, 2 секунды и пришел бы успешный ответ, никто бы ничего (на экране ТВ) не заметил!

Грубо говоря, когда есть проблемы с ответами от сервера, то чем меньше K:{}, тем хуже серверу шары из-за большего количества запросов, и чем больше K:{}, тем вероятнее вы получите затык. Хотя это все очень относительно и сильно зависит от конкретных пакетов. Есть пакеты (Премьера HD, Скай Италия и т.д.), где время ответа от карты критично. Для таких пакетов с кодировкой Videoguard, если вы не получите ключ за 0.6сек, то будет однозначный затык. Здесь можно спокойно ставить единицу в значение K:{}. С другой стороны, для таких пакетов, как Премьера SD или Nova и 2х секунд иногда недостаточно, и правильным значением должно быть 3.

Ценный совет:

Лучше всего пронаблюдать насколько быстро вам приходят ответы в целом на интересующие пакеты (выставив K:{} в большое значение, типа 5). После этого нужно брать для K:{} значение чуть больше того, где самые долгие ответы (в среднем).

Дальше, параметр N:{7} X Y влияет на то, как mgcamd ведет себя когда понимает, что ответ от сервера все же не пришел. Число X устанавливает количество неуспешных запросов на сервер (каждый из них длиной в K:{} секунд), после чего mgcamd отваливается от сервера и пытается к нему приконнектиться заново. Эта процедура нередко помогает, когда на сервере какие-то глюки, хотя конечно, постоянно это недолжно происходить. Параметр Y говорит mgcamd о том, что нужно отваливаться и реконнектиться заново, если не было никаких признаков жизни у сервера в течение Y секунд. Обычно до Y доходит дело крайне редко, потому как реконнект обычно происходит из за параметра X (в комбинации с K:{}).

Лучше всего смотреть в логи, анализировать происходящее и подбирать параметры под свою конкретную ситуацию.

Изменено пользователем дядя Фёдор

IPBox 9000HD | IPBox 910HD | IPBox 100 HD | Dreambox DM 800HD se | WaveFrontier Toroidal T90

28.2°E + 23.5°E + 19.2°E + 16.0°E + 13.0°E + 9.0°E + 7.0°E + 4.8°E + 0.8°W + 4.0°W + 5.0°W

Ссылка на комментарий
Поделиться на другие сайты

Как настроить priority.list / ignore.list / replace.list для mgcamd

Подразумевается, что вы полностью понимаете смысл происходящего при работе mgcamd и умеете читать и понимаете лог файл. Если это не так, читайте все, что находится выше.

Итак, вы обнаружили, что некоторые из ваших каналов открываются почти мгновенно, а некоторые через 5-10 секунд, а иногда и дольше. Одна из причин такого поведения заключается в том, что некоторые каналы кодируются не одной, а несколькими кодировками или провайдерами, поскольку одни и те же каналы на спутнике могут входить в разные пакеты или у некоторых провайдеров совпадают CAID:ProvID и запрос идет "не по адресу".

Получается, что один и тот же канал, в принципе, можно открыть совершенно разными картами, но на сервере обычно, доступна какая-то одна из них, а не все возможные карты. При включении канала mgcamd смотрит какими кодировками и провайдерами закодирован канал и начинает перебирать PIDы (комбинации карта+провайдер) по-порядку. Если получится так, что PID, который открывает канал, не первый в этом списке, то возникает задержка, пока mgcamd доберётся до нужной карты и откроет канал. Для избежания такой ситуации служит файл ignore.list, где можно указать какие CAID и/или ProvID нужно игнорировать, чтобы нужный вам PID (т.е. комбинация CAID+ProvID) оказался на первом месте в списке.

Ещё хуже, когда у вас коннект на несколько разных серверов (или портов) шары и из за того, что у некоторых провайдеров одинаковые ID для разных пакетов, запрос от вас может вообще пойти не на тот сервер, из-за того, что нужный именно для ЭТОГО канала PID стоит не на первом месте в списке PIDов. В таком случае каналы могут вообще открываться по 10 и 20 секунд и больше (смотря как настроены тайм-ауты mgcamd), пока от сервера куда пошёл запрос "не по теме" не прийдет отказ. Для избежания такой ситуации используется файл priority.list.

Для более сложных ситуаций, иногда приходится использовать оба файла в комбинации друг с другом, хотя это необязательно, вопреки тому, что иногда пишут на форумах. Оба файла не зависят друг от друга, но файл ignore.list берет верх над priority.list. Поэтому бессмысленно иметь в этих файлах одинаковые записи.

Файл replace.list используется для "супер-тонкой" настройки, когда вы хотите достигнуть идеальной ситуации с открытием каналов (для чего придется немного попотеть, зато результат будет стоить того).

Так какой же результат можно считать идеальным? Какова финальная цель всего этого мероприятия?

Ответ прост - для каналов, у которых в потоке кодирования больше, чем один PID (то есть, грубо говоря, для каналов, которые кодированы сразу несколькими кодировками) наша цель - это используя файлы ignore.list/priority.list/replace.list сделать так, чтобы в списке PIDов остался только один, который откроется картой, доступной нам именно для этого канала. В очень редких случаях, цели могут быть другими, но когда вы поймете систему, вы разберетесь сами по обстоятельствам.

Рассмотрим на конкретных примерах с нарастающей сложностью.

Ценный совет:

Во время настроек, описанных ниже вам придется очень часто перезапускать mgcamd. Быстрее всего это делать подключившись по Telnet к ресиверу (к сожалению на разных прошивках старт и стоп mgcamd осуществляется по-разному, поэтому изучите этот вопрос заранее).

1) Использование ignore.list для запрета карт

Допустим, мы смотрим исключительно один пакет каналов, переключаемся на кодированный канал этого пакета и видим в логе mgcamd такое:

[mg0] stoping camd..

[mg0] service 2E8 index 0 pmt pid 0 (345)

ECM: CaID: 0x0500 -> CaPID: 0x040A ProvID: 022B00

ECM: CaID: 0x0654 -> CaPID: 0x07F2 ProvID: 000000

[mg1] service 2E8 already started with index 0

[mg1] service 2E8 index 1 pmt pid 0 (346)

[mg0] No viaccess key(s) found for id 22B00 keynr 08

[mg0] network can't decode

[mg0] pid 0x040A failed to decode.

[mg0] No irdeto key(s) found for id 0 keynr 00

[mg0] -> ECM to newcamd server2.com:5678

[mg0] <- CW from newcamd server2.com:5678 (515ms)

[mg0] 515 msec -- Wed Jun 10 11:38:16 2009

===== Irdeto ECM on CaID 0x0654, pid 0x07f2 ======

prov: 000000

cw0:0 7D 31 4A F8 8D DA DF 46

cw1:0 F1 DC BB 88 BB B0 8C F7

[mg0] irdeto using chid 0001 version C3

Из строк, начинающихся с ECM видно, что канал кодируется двумя кодировками: Viaccess (PID=040A) и Irdeto (PID=07F2), и первой в списке у нас идет кодировка Viaccess. К сожалению, у нас нет ни подходящего ключа в SoftCam.Key, ни доступной карты Viaccess, о чем свидетельствуют собщения "No viaccess key(s) found..." и "network can't decode". Дальше видно, что у нас есть доступная карта Irdeto c CaID=0654, мы обращаемся к ней и получаем ключ.

Что здесь можно улучшить? Можно сказать mgcamd, что поскольку у нас нет и не будет карты Viaccess (c CaID=500), нужно просто игнорировать все PIDы с такой картой, чтобы они "не мешались под ногами".

Создаем файл ignore.list и пишем в него следующее:

X: {0500}

Иногда 0500 разбивают на пары цифр через пробел. Для mgcamd это непринципиально:

Х: { 05 00 }

Перезапускаем наш mgcamd, снова включаем тот же канал и видим теперь следующее:

[mg0] stoping camd..

[mg0] service 2E8 index 0 pmt pid 0 (345)

ECM: CaID: 0x0654 -> CaPID: 0x07F2 ProvID: 000000

[mg1] service 2E8 already started with index 0

[mg1] service 2E8 index 1 pmt pid 0 (346)

[mg0] No irdeto key(s) found for id 0 keynr 00

[mg0] -> ECM to newcamd server2.com:5678

[mg0] <- CW from newcamd server2.com:5678 (410ms)

[mg0] 410 msec -- Wed Jun 10 11:48:12 2009

===== Irdeto ECM on CaID 0x0654, pid 0x07f2 ======

prov: 000000

cw0:0 CD 5B 81 A9 E7 DA 76 37

cw1:0 7B 1B 19 AF 37 83 F7 B1

[mg0] irdeto using chid 0001 version C3

Больше нет никакого упоминания о карте Viaccess. Больше нет никаких побочных действий, и проб, и ошибок. Запрос ECM идет сразу, куда нужно, без задержек. Цель достигнута.

Что мы сделали? Cтроки, начинающиеся с X: в файле ignore.list (их может быть сколько угодно), означают что для всех каналов нужно игнорировать все PIDы, где CaID=0500. То есть, по сути дела, мы полностью запретили использование любых карт Viaccess: mgcamd теперь просто не будет видеть эту кодировку вообще. Осталось прощелкать по всем каналам нашего пакета и убедиться, что для всех каналов теперь находится только один PID с кодировкой Irdeto. Если возникают еще какие-то "левые" CaID, заносим их также в ignore.list по аналогии с Viaccess.

2) Использование ignore.list для запрета провайдеров

Польза от первого примера больше академическая. Понятно, что взять и запретить полностью все карты Viaccess - это мало кому пригодится. Шансы того, что вам понадобится карта Viaccess для того или иного пакета, в наши дни довольно велики, так как на оди и тот же CaID может быть куча разных провайдеров. В таких случаях мы можем использовать ignore.list для игнорирования только ненужных нам провайдеров той или иной кодировки, а не всю кодировку целиком. Для примера, откроем один из каналов, где есть больше чем один PID с кодировкой Viaccess, но нужный нам - только один:

[mg0] stoping camd..

[mg0] service 3786 index 0 pmt pid 85C (35)

ECM: CaID: 0x0500 -> CaPID: 0x0B57 ProvID: 032920

ECM: CaID: 0x0500 -> CaPID: 0x0B59 ProvID: 020810

ECM: CaID: 0x0100 -> CaPID: 0x0B63 ProvID: 00003D

ECM: CaID: 0x0500 -> CaPID: 0x0887 ProvID: 025100

ECM: CaID: 0x0500 -> CaPID: 0x0B58 ProvID: 024400 <- нам нужен только этот PID

[mg0] No viaccess key(s) found for id 32920 keynr 08

[mg0] network can't decode

[mg0] pid 0x0B57 failed to decode.

[mg0] No viaccess key(s) found for id 20810 keynr 08

[mg0] network can't decode

[mg0] pid 0x0B59 failed to decode.

[mg0] No seca key(s) found for id 3D keynr 0c

[mg0] network can't decode

[mg0] pid 0x0B63 failed to decode.

[mg0] No viaccess key(s) found for id 25100 keynr 08

[mg0] network can't decode

[mg0] pid 0x0887 failed to decode.

[mg0] No viaccess key(s) found for id 24400 keynr 08

[mg0] -> ECM to newcamd server1.com:1234

[mg0] <- CW from newcamd server1.com:1234 (18ms)

[mg0] 18 msec -- Tue Jun 14 12:45:59 2009

===== Viaccess ECM on CaID 0x0500, pid 0x0b58 ======

prov: 024400

cw0:0 FC 6B AD 14 B1 68 5D 76

cw1:0 25 30 B3 08 E0 E2 2E F0

Из этого куска лога видно, что открывается канал только картой провайдера Viaccess, у которого ProvID=024400. Все остальные провайдеры нам не нужны и только замедляют открытие канала. Поэтому исключим их, используя такой файл ignore.list:

V: {032920}
V: {020810}
S: {003D}
V: {025100}

Проверим теперь (после рестарта mgcamd) что имеется у нас в логе после переключения на этот же канал:

[mg0] stoping camd..

[mg0] service 3786 index 0 pmt pid 85C (35)

ECM: CaID: 0x0500 -> CaPID: 0x0B58 ProvID: 024400

[mg0] No viaccess key(s) found for id 24400 keynr 08

[mg0] -> ECM to newcamd server1.com:1234

[mg0] <- CW from newcamd server1.com:1234 (437ms)

[mg0] 437 msec -- Tue Jun 14 12:54:39 2009

===== Viaccess ECM on CaID 0x0500, pid 0x0b58 ======

prov: 024400

cw0:0 EB 2F E6 00 50 4B 82 1D

cw1:0 06 BC A4 66 98 80 6C 84

Все ненужные провайдеры испарились, остался только один единственный, нужный, и канал открывается быстрее!

Вы заметили, что в этом примере мы использовали тот же файл ignore.list, но разные буквы в начале строк.

Все варианты строк для ignore.list приведены ниже:

X: { XXXX }	   # для глобального игнорирования карт с CaiD=XXXX
V: { VVVVVV }	 # для глобального игнорирования провайдеров Viaccess (у которых CaiD=0500)
S: { SSSS }	   # для глобального игнорирования провайдеров Seca/Mediaguard (у которых CaiD=0100)
I: { IIII }	   # для глобального игнорирования чидов Irdeto (у которых CaiD=06xx)

Всё прекрасно, но бывают ситуации посложней.

Представим, что у нас есть 2 разных пакета каналов A и B. Пакет A открывается провайдером X, а пакет B открывается провайдером Y.

И при этом, пакет А также может открываться провайдером Y в принципе (то есть, присутствует ECM для провайдера Y), но не именно той картой, что доступна нам. Получается так, что если глобально запретить провайдера Y, чтобы он не мешался под ногами для пакета A, то пакет B вообще перестанет работать. Если не запрещать Y, то каналы будут открываться медленно в пакете A, потому что если не повезет, то при открытии канала A, сначала будет пробоваться провайдер Y и только потом уже провайдер X.

Для борьбы с подобной ситуацией есть два способа. Первый, с использованием файла priority.list, второй - с использованием файла replace.list. У обоих методов есть преимущества и недостатки. Рассмотрим их по-порядку.

3a) Использование priority.list для изменения порядка PIDов

Вот кусок лога, где мы включаем канал с несколькими провайдерами Viaccess:

[mg0] stoping camd..

[mg0] service 4EF2 index 0 pmt pid 110F (46)

ECM: CaID: 0x0500 -> CaPID: 0x0112 ProvID: 024100

ECM: CaID: 0x0500 -> CaPID: 0x0124 ProvID: 020810

ECM: CaID: 0x0500 -> CaPID: 0x0510 ProvID: 023B00

[mg0] No viaccess key(s) found for id 024100 keynr 02

[mg0] -> ECM to newcamd server1.com:1234 <- здесь и происходит "затык" без ответа

[mg0] -> ECM to newcamd server1.com:1234 <- и в телевизоре темно

[mg0] -> ECM to newcamd server1.com:1234 <- потому что запрос идет не на ту карту

[mg0] -> ECM to newcamd server1.com:1234 <- но удалить провайдера 024100 нельзя

[mg0] network can't decode

[mg0] pid 0x0112 failed to decode.

[mg0] No viaccess key(s) found for id 020810 keynr 0с

[mg0] network can't decode

[mg0] pid 0x0124 failed to decode.

[mg0] No viaccess key(s) found for id 23B00 keynr 08

[mg0] -> ECM to newcamd server1.com:1234

[mg0] <- CW from newcamd server1.com:1234 (155ms)

[mg0] 155 msec -- Tue Jun 15 13:58:17 2009

===== Viaccess ECM on CaID 0x0500, pid 0x0110 ======

prov: 023B00

cw0:0 86 E7 92 FF ED CB B2 6A

cw1:0 4A 3E B2 3A 8F 99 37 5F

Из лога видно, что канал открывается провайдером Viaccess 023B00, и при этом очень долго. Получилось так, что первыми идут PIDы с другими провайдерами, один из которых (024100) нам тоже доступен, но для другого канала. Поэтому начинают идти запросы не на ту карту, которая, естественно, в ответ молчит. А на экране темно (иногда очень долго темно в зависимости от настроек в mg_cfg), пока mgcamd не перейдет к следующему, правильному PID. Все бы ничего, но взять и избавиться от "неправильного" провайдера 024100 мы не можем, потому что он нам нужен для другого канала, и если мы просто впишем его в ignore.list, то другой канал у нас работать не будет.

Исходя из этого, нам нужно решить проблему приоритета PIDов. Нужно сделать так, чтобы провайдер 023B00 шел первым в списке PIDов. Это позволит сразу пробовать правильный PID для открывания канала. Пусть даже останутся другие PIDы, до них очередь не дойдет, потому что сразу придет нужный ответ от сервера.

Для глобального изменения приоритета провайдеров используется файл priority.list. В нашем случае нужно занести в него всех провайдеров, которые у нас есть в списке ECM, в той последовательности, в которой мы хотим чтобы шел их перебор.

В нашем случае, нам нужно оставить 2 провайдера: 023B00 и 024100 (остальные можно в ignore.list, чтобы не путались под ногами). Нам также нужно, чтобы 023B00 имел приоритет над 024100. Поэтому создаем два файла:

ignore.list:

V: {020810}

priority.list:

V: {023B00}
V: {024100}

Перезагружаем эмулятор и снова включаем тот-же канал. Теперь видим такое:

[mg0] stoping camd..

[mg0] service 4EF2 index 0 pmt pid 110F (46)

ECM: CaID: 0x0500 -> CaPID: 0x0510 ProvID: 023B00

ECM: CaID: 0x0500 -> CaPID: 0x0112 ProvID: 024100

[mg0] No viaccess key(s) found for id 023B00 keynr 08

[mg0] -> ECM to newcamd server1.com:1234

[mg0] <- CW from newcamd server1.com:1234 (245ms)

[mg0] 245 msec -- Tue Jun 15 14:04:12 2009

===== Viaccess ECM on CaID 0x0500, pid 0x0110 ======

prov: 023B00

cw0:0 CF A1 F8 68 FF 9F FF 9D

cw1:0 F3 BF C1 73 7C 03 C0 3F

У нас осталось 2 провайдера и первым идет тот, что нужен - запрос сразу идет на нужную карту без промедления.

Ценный совет:

Помните, что действие файлов ignore.list и priority.list распостраняется на АБСОЛЮТНО ВСЕ КАНАЛЫ ВСЕХ ПАКЕТОВ (естественно, если они применимы к картам и провайдерам отдельно взятого канала). То есть, эти файлы имеют глобальный эффект! Иногда можно увлечься удалением "ненужных" карт и провайдеров и не заметить, что у вас провайдер, которого вы запретили для одного пакета может потребоваться для другого. Если вы смотрите несколько пакетов со схожими кодировками, следите за тем, чтобы не внести в ignore.list карту или провайдера, которая нужна для другого пакета

Самая нехорошая ситуация возникает, когда у нескольких каналов есть два (или более) провайдера и оба эти провайдеры нужны (запретить их нельзя). Более того, для одной части каналов нужно чтобы в приоритете был один провайдер, а для другой части каналов - другой провайдер. Если мы будем пользоваться только файлом priority.list, то только одна часть каналов будет иметь правильный порядок провайдеров, а другая часть всегда будет натыкаться на ненужный PID. Это происходит потому что настройки из priority.list глобальны, и с помощью этого файла нельзя сказать: "вот этим каналам - такой нужен приоритет провайдеров, а вот этим каналам - другой". На помощь приходит файл replace.list

Что позволяет файл replace.list, в чем его суть? Он позволяет "волшебным образом" заменять CaID и/или ProvID и/или PID отдельно взятого канала на любые значения! Сперва можно подумать, мол, "зачем это вообще нужно?" Но на самом деле, это позволяет произвести тончайшую настройку PIDов для каждого канала персонально! При этом, по сути дела мы можем имитировать функциональность и ignore.list, и priority.list, используя только replace.list. Вы спросите, зачем же тогда вообще нужны ignore/priority, если можно гораздо точнее все настроить и без них? Недостаток replace.list в том, что если вы решите пойти таким путем, то вам придется прописать в этот файл по строчке для каждого кодированного канала. По одной строчке на каждый канал, это если в потоке канала только 2 PIDa, а если в потоке канала больше чем два PIDа, то на каждый канал нужно будет прописывать несколько строк (чтобы конфигурация PIDов была идеально "чистой"). Для ленивых - это точно неподходящее занятие. Те, кто готов потрудиться, будут вознаграждены самым быстрым возможным открыванием каналов, без задержек, железно, на 100%.

3b) Использование replace.list для упорядочивания PIDов (альтернатива priority.list + ignore.list)

Возьмем пакет каналов где используются три разных провайдера Viaccess: 023700, 020710 и 030600.

Для одной части каналов нужен один провайдер на первом месте, для другой части каналов - другой, а для HD - третий. Если просто вписать их в priority.list (как это часто советуют на форумах), то хорошо будет только одной из этих трех частей каналов. Две же других части будут напарываться каждый раз на ненужный PID, а одна из трех частей (самая невезучая) будет напарываться на целых 2 ненужных PIDa. Запретить провайдеров с помощью ignore.list тоже нельзя, тогда просто перестанет открываться часть каналов. Вот тут и приходит на помощь replace.list! Включим для примера HD канал (без ignore.list и без priority.list) и увидим в логе такое (все данные, которые нам потребуются для создания replace.list выделены):

[mg0] stoping camd..

[mg0] service 2F47 index 0 pmt pid 0 (45)

ECM: CaID: 0x0500 -> CaPID: 0x0FA3 ProvID: 023700

ECM: CaID: 0x0500 -> CaPID: 0x0BBB ProvID: 030600

[mg1] service 2F47 already started with index 0

[mg1] service 2F47 index 1 pmt pid 0 (46)

[mg0] No viaccess key(s) found for id 23700 keynr 08

[mg0] -> ECM to newcamd server1.com:1234

[mg0] network can't decode

[mg0] pid 0x0FA3 failed to decode.

[mg0] -> ECM to newcamd server1.com:1234

[mg0] <- CW from newcamd server1.com:1234 (174ms)

[mg0] 174 msec -- Wed Jun 10 01:13:31 2009

===== Viaccess ECM on CaID 0x0500, pid 0x0bbb ====== <- смотрим здесь каким PIDом открывается канал

prov: 030600

cw0:0 00 00 7E 7E 0F 83 29 BB

cw1:0 C7 9C 0F 72 07 E0 00 E7

Видно, что первым попадается провайдер 023700, который не работает (идет запрос на сервер, но он нас посылает подальше).

Видно, что в конце концов канал открывается по PIDу 0BBB, у которого карта=0500 и провайдер=030600.

Создаем новый файл replace.list и пишем в него следующее:

R:{{2F47}{0500}{023700}{0FA3}{0500}{030600}{0BBB}}

Что это значит? Это значит, что мы предписываем mgcamd следующее:

Для канала, у которого Service ID (или SID) = 2F47, поменяй PID с параметрами CaID=0500, ProvID=023700 и CaPID=0FA3 на PID, с параметрами CaID=0500, ProvID=030600 и CaPID=0BBB.

Что получается при перезапуске mgcamd? А вот что:

[mg0] stoping camd..
[mg0] service 2F47 index 0 pmt pid 0 (45)
  ECM: CaID: 0x0500  -> CaPID: 0x0BBB ProvID: 030600
[mg1] service 2F47 already started with index 0
[mg1] service 2F47 index 1 pmt pid 0 (46)
[mg0] -> ECM to newcamd server1.com:1234
[mg0] <- CW from newcamd server1.com:1234 (174ms)
[mg0] 174 msec -- Wed Jun 10 01:15:31 2009
===== Viaccess ECM on CaID 0x0500, pid 0x0bbb ======
prov: 030600
cw0:0 78 03 FF 7A 67 98 00 FF
сw1:0 DF 33 18 2A 19 3E 1F 76

Одной строчкой в replace.list мы сделали сразу две вещи:

1) убили ненужный PID

2) превратили убитый PID в правильный, который работает

Только нужно помнить, что это мы сделали для одного единственного канала! У каждого канала на отдельно взятом транспондере всегда свой уникальный service ID (SID). Поэтому, для полного счастья поступаем таким же образом для остальных HD каналов, открывающихся по провайдеру 030600, и получаем вот что в replace.list для пяти каналов:

R:{{2F45}{0500}{023700}{0FA1}{0500}{030600}{0BB9}}
R:{{2F46}{0500}{023700}{0FA2}{0500}{030600}{0BBA}}
R:{{2F47}{0500}{023700}{0FA3}{0500}{030600}{0BBB}}
R:{{2F48}{0500}{023700}{0FA4}{0500}{030600}{0BBC}}
R:{{2F49}{0500}{023700}{0FA5}{0500}{030600}{0BBD}}

Теперь для этих пяти каналов будет совершенно не важно, что вы напишете в priority.list, ведь мы практически создали "локальный" ignore и priority специально для этих каналов, в результате чего всегда будет оставаться только один нужный PID.

IPBox 9000HD | IPBox 910HD | IPBox 100 HD | Dreambox DM 800HD se | WaveFrontier Toroidal T90

28.2°E + 23.5°E + 19.2°E + 16.0°E + 13.0°E + 9.0°E + 7.0°E + 4.8°E + 0.8°W + 4.0°W + 5.0°W

Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

дядя Федор скажите пожалуйста .Прикрутил на официальную прошивку и ваш эмулятор и хотел спросить .Ничего страшного если у вас в файле mg cfg стоят только одни буквы и цифры без нулей спереди и надписей как в 1.31

вот так

A:{2}

B:{12}

...

и еще выставил Q 300 ,а все равно конектиться через 600. Или к позиции N ( 7) надо обязательно приставить 4 30 . ( я ее убрал . очень часто конектиться когда открытые каналы смотрю.)

Изменено пользователем дядя Фёдор
Ссылка на комментарий
Поделиться на другие сайты

Ничего страшного если у вас в файле mg cfg стоят только одни буквы и цифры без нулей спереди и надписей как в 1.31

Ничего страшного, пойдет.

и еще выставил Q 300 ,а все равно конектиться через 600.

Не путаем параметр CWS_KEEPALIVE из newcamd.list и параметр Q:

И для того чтобы работал Q, нужен обязательно N: {7} ....

Или к позиции N ( 7) надо обязательно приставить 4 30 . ( я ее убрал . очень часто конектиться когда открытые каналы смотрю.)

Покажите лог, где по-вашему "часто коннектится". Когда вы смотрите открытые каналы, ничего никуда не может коннектится. Идет только пинг с интервалом, указанным в CWS_KEEPALIVE из newcamd.list.

IPBox 9000HD | IPBox 910HD | IPBox 100 HD | Dreambox DM 800HD se | WaveFrontier Toroidal T90

28.2°E + 23.5°E + 19.2°E + 16.0°E + 13.0°E + 9.0°E + 7.0°E + 4.8°E + 0.8°W + 4.0°W + 5.0°W

Ссылка на комментарий
Поделиться на другие сайты

Когда то читал, что на mgcamd 1.33 можно по шаре смотреть канал, а другой записывать с одного траспонтера без дуал логина, и не получить за это бан. Скажите так ли это и если так то за счёт чего это работает?

IPBox 910 + SEAGATE 500Гб. PGI v0.5,

Eutelsat W4 36е (НТВ+, Триколор, Поверхность+(только HD каналы))

Ссылка на комментарий
Поделиться на другие сайты

Kuler_29

с разных пакетов- да! но не в коем случае не с одного!- иначе бан- автоматически!

____________________________________________________________
♦♦♦♦♦♦♦♦◄♫►WeissRussland◄♫►♦♦♦♦♦♦◄♠GRODNO♠►♦♦♦♦♦♦♦♦
---------------------------------------------------------------------------------------------------------
♠ 75.0°e ♣ 53.0°e ♦ 36.0°e ♥ 19.2°e ♠ 13.0°e ♥ 4.8°e ♠ 4.0°w ♣ 5.0°w ♦
____________________________________________________________

Ссылка на комментарий
Поделиться на другие сайты

# кэширование ECM (в секундах)

# каждая запись в кэш отъедает всего 28 байт памяти.

# Этот параметр бесценен для тех, у кого работает тайм-шифт или запись на mgcamd 1.33+

# Параметр должен быть включен обязательно во избежание двойных запросов на сервер, за

# которые можно быстро схлопотать бан!

E: { 15 }

Какое значение стоит использовать при использовании тайм-шифта?

Если в настройках тайм-шифт установлен на 2 часа то { 7200 } ?

Ссылка на комментарий
Поделиться на другие сайты

Какое значение стоит использовать при использовании тайм-шифта?

Если в настройках тайм-шифт установлен на 2 часа то { 7200 } ?

Зачем тебе ключи двухчасовой давности???

Ключ действителен для +++ 10-15 секунд.

Оставляй как есть E: { 15 }.

Vu+ Solo 4K. Dreambox 820HD.

Ссылка на комментарий
Поделиться на другие сайты

Зачем тебе ключи двухчасовой давности???

Ключ действителен для +++ 10-15 секунд.

Оставляй как есть E: { 15 }.

То есть для таймшифта на любое время достаточно кэша на 15 сек?

И еще вопрос на прошивке PGI 0.4 как настроить шаринг для двух тюнеров, что бы избежать бана? Обязательно надо 2 пакета покупать?

Ссылка на комментарий
Поделиться на другие сайты

То есть для таймшифта на любое время достаточно кэша на 15 сек?

И еще вопрос на прошивке PGI 0.4 как настроить шаринг для двух тюнеров, что бы избежать бана? Обязательно надо 2 пакета покупать?

А как вы представляете иначе? Никакой клиентский софт или его настройки вам не поможет обойти ограничения сервера.

Если вы смотрите или записываете два разных шаровых канала, и ключи идут с одного и того же сервера, то без двойного логина не обойтись.

Если бы ключи были одинаковые для всех каналов на одном и том же трансподере, то это одно дело, но такого нет.

Изменено пользователем дядя Фёдор

IPBox 9000HD | IPBox 910HD | IPBox 100 HD | Dreambox DM 800HD se | WaveFrontier Toroidal T90

28.2°E + 23.5°E + 19.2°E + 16.0°E + 13.0°E + 9.0°E + 7.0°E + 4.8°E + 0.8°W + 4.0°W + 5.0°W

Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

я сделал себе mg_launcher для mgcamd 1.33,осталось старая проблема ,такая же как на mg_launcher для mgcamd 1.31.

при переключении просто mgcamd на mg_launcher,запросов становятся три а не два(два одинаковых с newcamd.list и один с другого логина(newcamd1.list или newcamd2.list).поэтому я включил в скрипт переключения Reebot(одна минута,это мелочь)После Reebot-все нормально,один запрос с newcamd.list,второй newcamd1.list или newcamd2.list .

кстати newcamd1.list-это для функции картинка в картинке,newcamd2.list-для записи,проверено.

дядя Фёдор-это так у меня работает на сифтим 9580,не думайте что я вас учу.Просто убил кучу времени на это,чтобы разобраться.Может кому поможет.И если это будет в PGI 0.5,то сразу перейду на нее(самому не хотелось все переделовать,вдруг что то не получиться)

Изменено пользователем дядя Фёдор

AB Ipbox 910HD PGI 0.7.3+E2,Xtrend ET9000 HD Twin (Clarke-Tech ET9000),Dreambox 500S

1,20(85.2°E+75°E+60°E) 0,9(42°E+36°E+31,5°E) 0,8(28,2°E-30°W)-мотоводвес Moteck SG-2100A

Samsung 40,LG 32.

Ссылка на комментарий
Поделиться на другие сайты

я сделал себе mg_launcher для mgcamd 1.33,осталось старая проблема ,такая же как на mg_launcher для mgcamd 1.31. при переключении просто mgcamd на mg_launcher,запросов становятся три а не два(два одинаковых с newcamd.list и один с другого логина(newcamd1.list или newcamd2.list).

Чтобы не было двух полностью одинаковых запросов, по идее нужно настроить кэш ключей параметрами

E: { 15 }

H: { 6 }

Изменено пользователем дядя Фёдор

IPBox 9000HD | IPBox 910HD | IPBox 100 HD | Dreambox DM 800HD se | WaveFrontier Toroidal T90

28.2°E + 23.5°E + 19.2°E + 16.0°E + 13.0°E + 9.0°E + 7.0°E + 4.8°E + 0.8°W + 4.0°W + 5.0°W

Ссылка на комментарий
Поделиться на другие сайты

Для одновременной записи или PIP необходимо получить больше ключей от шаровика.

На данный момент это можно сделать двумя спосабами:

1. от имени одного пользователя запросить больше ключей, в этом случае вы выбираете в настройках

SOFTCAM="mgcamd" и на сервере шаринга подключаете дуал-логин.

2. большинство серваков не дают дуаллогин, поэтому вы регистрируете на сервере шаринга 2 пользователя и

одного прописываете в newcamd.list, второго в newcamd1.list и в настройках ставите SOFTCAM="mglauncher",

в этом случае для одного канала ресивер берет ключ от имени одного пользователя, а для другого от имени второго пользователя.

На данный момент вы все смешали.

Изменено пользователем дядя Фёдор

openbox 7200, sezam 9100 (PGI0.3), на компе st4200, оф. карта НТВ+ баз. расширенный.

антены: 1,2м - 4w+5e+9e+13e, 0.9м - 36e+53e, 0.9м - 75e

Ссылка на комментарий
Поделиться на другие сайты

не подскажите, за что отвечает этот параметр F: { 00 }?

функция очень простая, когда на сервере 1803 и 1830, то

ставим параметр F: { 00 } и тогда EMU не делает туннелинг на 1801

Есть и такие где туннелинг 18хх к 1801 организован на самом сервере

тогда аактивируем функцию

F: { 01 }

AB Ipbox 910HD PGI 0.7.3+E2,Xtrend ET9000 HD Twin (Clarke-Tech ET9000),Dreambox 500S

1,20(85.2°E+75°E+60°E) 0,9(42°E+36°E+31,5°E) 0,8(28,2°E-30°W)-мотоводвес Moteck SG-2100A

Samsung 40,LG 32.

Ссылка на комментарий
Поделиться на другие сайты

просто поменяйте файл скаченный на тот, что у вас и присвоить атрибут 755 и всё....

сам файл mgcamd в ресивере находится здесь /var/bin/

Изменено пользователем puskov

IPBox 9000, PGI v(последняя), спутники 36°, 75°, 9°

Topfield TF7710HD Enigma2 image AAF

Ссылка на комментарий
Поделиться на другие сайты

Скажите можно настроить Mgcamd для работы с двумя шароводами - один основной, другой резервный если не отвечает первый? Если да, то как?

Ссылка на комментарий
Поделиться на другие сайты

Скажите можно настроить Mgcamd для работы с двумя шароводами - один основной, другой резервный если не отвечает первый? Если да, то как?

конечно можно, прописываете вторую строку и если на первом серваке затык то мжкамд обратится к второму серваку и будет висеть на нём пока и он не глюканёт или вовремя не ответит.
Ссылка на комментарий
Поделиться на другие сайты

конечно можно, прописываете вторую строку и если на первом серваке затык то мжкамд обратится к второму серваку и будет висеть на нём пока и он не глюканёт или вовремя не ответит.

Спасибо! Еще пару вопросов:

1) как в mg_cfg настроить параметр N: чтобы Mgcamd при затыке переключался на второй сервер максимально быстро и вообще не было фризов при просмотре (это возможно?)

2) можно ли установить время после которого Mgcamd опять попробует связаться с первым сервером, а не ждать пока вовремя не ответит второй?

Изменено пользователем dmit08
Ссылка на комментарий
Поделиться на другие сайты

1) как в mg_cfg настроить параметр N: чтобы Mgcamd при затыке переключался на второй сервер максимально быстро и вообще не было фризов при просмотре (это возможно?)

2) можно ли установить время после которого Mgcamd опять попробует связаться с первым сервером, а не ждать пока вовремя не ответит второй?

Вы не совсем поняли смысл параметра N. Он не отвечает за время подсоединения на другой сервер. Он совсем не по этому поводу.

Параметр N определяет через сколько неудавшихся запросов следует отключиться от сервера и подсоединяться заново.

Это не имеет никакого отношения к тому, через сколько пробовать другой сервер, если первый не ответил.

mgcamd подключен ко всем серверам постоянно и сразу вместе. Если два разных сервера шлют одинаковые иденты при логине, то mgcamd их ставит в очередь, по кругу. То есть первый раз идет запрос на сервер, который стоит выше всех в newcamd.list, если от него не приходит ответ, то второй запрос пойдет на следующий сервер в newcamd.list (следующий, у которого есть подходящий идент, разумеется). И так далее по кругу. И сколько ждать ответа от сервера перед тем, как пробовать следующий, это параметр K, а не N.

Изменено пользователем дядя Фёдор

IPBox 9000HD | IPBox 910HD | IPBox 100 HD | Dreambox DM 800HD se | WaveFrontier Toroidal T90

28.2°E + 23.5°E + 19.2°E + 16.0°E + 13.0°E + 9.0°E + 7.0°E + 4.8°E + 0.8°W + 4.0°W + 5.0°W

Ссылка на комментарий
Поделиться на другие сайты

Вы не совсем поняли смысл параметра N. Он не отвечает за время подсоединения на другой сервер. Он совсем не по этому поводу.

Параметр N определяет через сколько неудавшихся запросов следует отключиться от сервера и подсоединяться заново.

Это не имеет никакого отношения к тому, через сколько пробовать другой сервер, если первый не ответил.

Т.е. при наличии двух серверов эта строчка вообще не работает? Mgcamd переключается на второй после первого же неудачного запроса?

mgcamd подключен ко всем серверам постоянно и сразу вместе. Если два разных сервера шлют одинаковые иденты при логине, то mgcamd их ставит в очередь, по кругу. То есть первый раз идет запрос на сервер, который стоит выше всех в newcamd.list, если от него не приходит ответ, то второй запрос пойдет на следующий сервер в newcamd.list (следующий, у которого есть подходящий идент, разумеется). И так далее по кругу.

Все же не совсем понял - mgcamd подключен ко всем серверам в newcamd.list постоянно и сразу вместе или на второй сервер запрос идет только если не получен ответ от первого?

И сколько ждать ответа от сервера перед тем, как пробовать следующий, это параметр K, а не N.

Какое значение параметра К (и остальных) посоветуете установить что бы избежать фризов (или минимизировать их) при переключении на резервный сервер?
Ссылка на комментарий
Поделиться на другие сайты

dmit08

а что вам мешает самому все проверить и посмотреть лог работы ? естественно что мжкамд прочитав ньюкамд лист цепляется ко всем серверам но запрос шлёт по первому ответившему - на котором есть нужный идент.

Ссылка на комментарий
Поделиться на другие сайты

Т.е. при наличии двух серверов эта строчка вообще не работает? Mgcamd переключается на второй после первого же неудачного запроса?

Она работает! Для каждого сервера свой счетчик неудавшихся запросов. Если больше, чем указано, то идет ре-коннект на сервер.

Все же не совсем понял - mgcamd подключен ко всем серверам в newcamd.list постоянно и сразу вместе или на второй сервер запрос идет только если не получен ответ от первого?

Подключен к серверу - это еще не значет, что шлет запросы. Он может быть подключен, но при этом ничего не делать. Если у вас 3 разных пакета с разными серверами, вы подключитесь при старте mgcamd ко всем трем, но запросы идти будут только на тот сервер, на котором есть карта с идентом, соответствущим просматриваемому каналу (то, что Geroy написал выше).

Какое значение параметра К (и остальных) посоветуете установить что бы избежать фризов (или минимизировать их) при переключении на резервный сервер?

Так обобщенно не получится. У каждого пакета каналов разное время жизни ключей после смены CW. Разное время отклика карты. Тут нужно экспериментально подбирать. Почитайте первую страницу, там очень детально все описано и про K и про N.

http://gomel-sat.bz/forums/index.php?s=&a...ost&p=29464

IPBox 9000HD | IPBox 910HD | IPBox 100 HD | Dreambox DM 800HD se | WaveFrontier Toroidal T90

28.2°E + 23.5°E + 19.2°E + 16.0°E + 13.0°E + 9.0°E + 7.0°E + 4.8°E + 0.8°W + 4.0°W + 5.0°W

Ссылка на комментарий
Поделиться на другие сайты

dmit08

а что вам мешает самому все проверить и посмотреть лог работы ?

Мешает то что сбои на серверах непредсказуемы - иногда в день ни одного, иногда несколько раз за вечер. Я так статистику по логам буду месяц собирать!

Она работает! Для каждого сервера свой счетчик неудавшихся запросов. Если больше, чем указано, то идет ре-коннект на сервер.

Как же так? Ведь конфиг mg_cfg один на все серверы прописанные в newcamd.list.

Подключен к серверу - это еще не значет, что шлет запросы. Он может быть подключен, но при этом ничего не делать. Если у вас 3 разных пакета с разными серверами, вы подключитесь при старте mgcamd ко всем трем, но запросы идти будут только на тот сервер, на котором есть карта с идентом, соответствущим просматриваемому каналу (то, что Geroy написал выше).

Вы меня не поняли - я имел ввиду два разных сервера от разных провайдеров с одинаковой подпиской. Так если у одного провайдера временный затык, то Mgcamd подключается ко второму и просмотр не прерывается. Я готов оплачивать одну подписку дважды лишь бы затыков при просмотре не было. Пробовал 3 провайдеров - кратковременные перебои бывают у всех (у кого то чаще, у кого то реже), но как назло затыки происходят в самое неподходящее время!

Так обобщенно не получится. У каждого пакета каналов разное время жизни ключей после смены CW. Разное время отклика карты. Тут нужно экспериментально подбирать. Почитайте первую страницу, там очень детально все описано и про K и про N.

Конечно я все внимательно прочитал это (и не раз), но там не рассматривается мой вариант с резервным сервером. Изменено пользователем дядя Фёдор
Ссылка на комментарий
Поделиться на другие сайты

Вы меня не поняли - я имел ввиду два разных сервера от разных провайдеров с одинаковой подпиской. Так если у одного провайдера временный затык, то Mgcamd подключается ко второму и просмотр не прерывается. Я готов оплачивать одну подписку дважды лишь бы затыков при просмотре не было.

Я написал про три разных пакета в контексте объяснения о том, что значит "коннект" и что значит "запрос", что есть две разные вещи. Если у вас два (три, или хоть еще сколько) разных сервера с одним и тем же пакетом, коннект на них будет на все при старте mgcamd, так же как и на другие все серверы.

А вот запросы будут (как я уже объяснил выше) идти таким образом:

- переключили канал

- запрос на самый первый по списку сервер (скажем, сервер №1) подходящий по иденту

- запрос на второй по списку сервер (скажем, сервер №2) подходящий по иденту

- ожидание ответа от обоих в течение K секунд

- при не получении ответа от одного из них, увеличить счетчик неудачных запросов для этого сервера

- далее слать запросы на тот сервер, который первым ответил

... и так далее по кругу...

...и если при этом счетчик неудачных запросов станет больше значения указанного в N, то произойдет реконнект на тот сервер, который превысил (свой) счетчик

счетики сбрасываются каждый раз после удачного ответа от любого из серверов

Изменено пользователем дядя Фёдор

IPBox 9000HD | IPBox 910HD | IPBox 100 HD | Dreambox DM 800HD se | WaveFrontier Toroidal T90

28.2°E + 23.5°E + 19.2°E + 16.0°E + 13.0°E + 9.0°E + 7.0°E + 4.8°E + 0.8°W + 4.0°W + 5.0°W

Ссылка на комментарий
Поделиться на другие сайты

Я написал про три разных пакета в контексте объяснения о том, что значит "коннект" и что значит "запрос", что есть две разные вещи. Если у вас два (три, или хоть еще сколько) разных сервера с одним и тем же пакетом, коннект на них будет на все при старте mgcamd, так же как и на другие все серверы. А вот запросы будут (как я уже объяснил выше) идти таким образом:

......

Спасибо вам большое за столь подробное описание, теперь работа mgcamd стала для меня намного яснее.

А какой смысл в счетчике неудачных запросов? Почему не реконнектится на сервер сразу после неудачного запроса?

Для двух провайдеров на один пакет использовать параметры К и N так же как для одного? Нельзя как нибудь хитро заставлять mgcamd переключать обратно на первый сервер в списке, через некоторое время после работы резервного?

Изменено пользователем дядя Фёдор
Ссылка на комментарий
Поделиться на другие сайты

  • тема был откреплён

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...