04.09.2011, 22:12 | #1 |
Постоялец Online: 1дн21ч12м Регистрация: 03.09.2011
Сообщений: 139
Репутация: 412 (Вес: 20) Поблагодарили 53 раз(а) | Что можно увидеть из лога mgcamd Что можно увидеть из лога mgcamd Увидеть можно очень много! Для начала, собственно, старт mgcamd. В этом примере мы сделаем вид, что у нас прописано два разных сервера шары в newcamd.list. Первый сервер называется server1.com и у него порт 1234, второй — server2.com с портом 5678. Для логина на оба сервера используется имя username (пароль в логе не отображается). Итак, пример лога: tuxbox mgcamd v1.31 by mixvt (compiled Oct 27 2008 23:09:59) [mg] Net72s Show ecm:1, emm:0 Up:0 Au:0 Dir:0 Osd:no:800 Cache:7 Log192.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 (35ms): Userid 72 caid 90F providers 1 Idents: 000000 [newcamd] Login to server2.com:5678 as username accepted (21ms) [newcamd] Card data from server2.com:5678 (71ms): Userid 189 caid 500 providers 5 Idents: 020910 025100 023b00 024400 021700 Отсюда уже сразу видно много интересного. Во-первых, видны карты, которые шарятся (число сразу за "caid"). Вот список наиболее часто используемых кодировок: 1xx=Seca 5xx=Viaccess 6xx=Irdeto 9xx=NDS/Videoguard Bxx=Conax Dxx=CryptoWorks Exx=PowerVu 17xx=BetaCrypt 18xx=NagraVision 26xx=BISS 4Axx=DreCrypt Из примера выше видно, что мы подключились к двум серверам. Первый шарит карточку с кодировкой NDS/Videoguard (потому что CAID начинается с 9), а второй сервер шарит карту в кодировке Viaccess (CAID начинается с 5). При чём, второй сервер шарит даже не одну, а "пять карточек" — это становится ясно из поля Idents. Посмотреть на все возможные CAID:Idents можно в ваших настройках в биллинге. Получается, что при включении кодированного канала, у него должен совпасть CAID и IDENT с теми, что прислал сервер при подключении к нему. Только в этом случае на сервер пойдет запрос и mgcamd отошлёт на сервер так называемую последовательность Entitlement Control Message или ECM. Если на сервере всё впорядке, то он должен ответить на такой запрос последовательностью, которая называется Control Word или CW. Если вы получаете правильный код CW, то канал открывается. В зависимости от системы кодирования интервал между запросами на сервер может быть от 2-3 секунд до раза в минуту. Посмотрим как это выглядит в логе: [mg0] stoping camd... [mg0] service 18A6 index 0 pmt pid 0 (65) ECM: CaID: 0x090F -> CaPID: 0x18AF ProvID: 000000 [mg0] -> ECM to server1.com:1234 [mg0] <- CW from server1.com:1234 (23ms) [mg0] 23 msec — Sat Jan 31 15:09:42 2009 ===== NDS ECM on CaID 0x090F, pid 0x18af ====== prov: 000000 cw0:0 09 8E E9 80 5E 2B 14 9D cw1:0 CE 0A 98 70 66 C0 E9 0F Пояснение к происходящему:первые две строки — это стандартное сообщение при переключении канала. Дальше имеем строку, начинающуюся с ECM. В ней информация о текущем канале. Из этого видно, что канал, который мы только что включили кодированный и открывается только одной картой, которая должна имеет пару CAID:ProvID = 090F:000000. Это как раз подходит по параметрам к тому, что нам ответил сервер server1.com при подключении к нему. По этому следующая строка — это посылка ECM-запроса на сервер server1.com. Далее виден ответ от сервера с кодом CW. Ответ пришел за 23мс, на что стоит обратить внимание (но об этом ниже, когда речь пойдёт о проблемах с кардшарингом). Последние 4 строки — подтверждение проделанной работы по запросу на сервер. Показаны кодировка, которая окрылась (NDS), идентификатор карты (CAID), идентификатор канала (PID), идентификатор провайдера (ProvID) и, наконец, сама последовательность CW0+CW1, то есть "ключик" к каналу, полученный от сервера. Дальше всё повторяется снова и снова, каждый раз когда меняется ECM. Естественно, это всё лог "в идеале", то есть, когда всё правильно настроено, хорошо работает Инет и на сервере шары тоже всё ок. Проблемные ситуации рассмотрены ниже, а сейчас, поскольку вы умеете теперь читать лог, речь пойдет о настройке файлов priority.list и ignore.list. Как настроить priority.list / ignore.list / replace.list для mgcamd Подразумевается, что вы полностью понимаете смысл происходящего при работе кардшаринга и умеете читать и понимаете лог файл mgcamd. Итак, вы обнаружили, что некоторые из ваших каналов открываются почти мгновенно, а некоторые через 5-10 секунд, а иногда и дольше. Одна из причин такого поведения заключается в том, что некоторые каналы кодируются не одной, а несколькими кодировками или провайдерами, поскольку одни и те же каналы на спутнике могут входить в разные пакеты. Получается, что один и тот же канал, в принципе, можно открыть совершенно разными картами, но по кардшарингу, обычно, доступна одна "карта", а не все возможные для этого канала. При включении канала mgcamd смотрит какими кодировками и провайдерами закодирован канал и начинает перебирать PIDы (комбинации карта+провайдер) по-порядку. Если получится так, что PID, который открывает канал, не первый в этом списке, то возникает задержка, пока mgcamd доберётся до нужной карты и откроет канал. Для избежания такой ситуации служит файл ignore.list, где можно указать какие CAID и/или ProvID нужно игнорировать, чтобы нужный вам PID (т.е. комбинация CAID+ProvID) оказался на первом месте в списке. Ещё хуже, когда у вас коннект на несколько разных серверов (или портов) шары и из за того, что у некоторых провайдеров одинаковые ID для разных пакетов, запрос от вас может вообще пойти не на тот сервер, так как у канала на первом месте стоит не тот PID, что нужно. В таком случае каналы могут вообще открываться по 10 и 20 секунд и больше (смотря как настроены тайм-ауты mgcamd), пока от сервера куда пошёл запрос "не по теме" не прийдет тайм-аут. Для избежания такой ситуации используется файл priority.list. Для более сложных ситуаций, иногда приходится использовать оба файла в комбинации друг с другом, хотя это необязательно, вопреки тому, что иногда пишут на форумах. Оба файла не зависят друг от друга, но файл ignore.list берет верх над priority.list. Поэтому бессмысленно иметь в этих файлах одинаковые записи. Файл replace.list используется для "супер-тонкой" настройки, когда вы хотите достигнуть идеальной ситуации с открытием каналов (для чего придется немного попотеть, зато результат будет стоить того). Для каналов, у которых в потоке кодирования больше, чем один PID (то есть, грубо говоря, для каналов, которые кодированы сразу несколькими кодировками) наша цель — это используя файлы ignore.list/priority.list/replace.list сделать так, чтобы остался только один PID, который откроется картой, доступной нам. В очень редких случаях, цели могут быть другими, но когда вы поймете систему, вы разберетесь сами по обстоятельствам. Во время настроек, описанных ниже вам придется очень часто перезапускать mgcamd. Быстрее всего это делать подключившись по Telnet к ресиверу. Из командной строки Linux можно рестартануть mgcamd, запустив скрипт /var/etc/start_cam для прошивок NLB или командой /var/bin/mgcamd-1.31_cam.sh restart для прошивок SifTeam. 1) Использование ignore.list для запрета карт Допустим, мы смотрим по шаре исключительно один пакет каналов, переключаемся на кодированный канал этого пакета и видим в логе mgcamd такое: [mg0] stoping camd... [mg0] service 2E8 index 0 pmt pid 0 (345) ECM: CaID: 0×0500 -> CaPID: 0x040A ProvID: 022B00 ECM: CaID: 0×0654 -> 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 1116 2009 ===== Irdeto ECM on CaID 0×0654, 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: 0×0654 -> 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 1112 2009 ===== Irdeto ECM on CaID 0×0654, 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. |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
| |