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

Автор Admin, 08 марта 2013, 17:00:58

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Admin

Что можно увидеть из лога?
Увидеть можно очень много! Для начала, собственно, старт mgcamd. В этом примере мы сделаем вид, что у нас прописано два разных сервера шары в newcamd.list. Первый сервер называется server1.com и у него порт 1234, второй — server2.com с портом 5678. Для логина на оба сервера используется имя username (пароль в логе не отображается). Итак, пример лога:
tuxbox mgcamd v1.31 by mixvt (compiled Oct 27 2008 23:09:59)

[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 (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 11:38:16 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 11:48:12 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.
Что можно увидеть из лога?
Homo sum, humani nihil a me alienum puto
MikroTik hAP ax3
Vu+Solo 4k, 90W-90E
.onn Android TV 4K UHD, iptv, m3u8

Admin

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

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

[mg0] stoping camd...

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

ECM: CaID: 0×0500 -> CaPID: 0x0B57 ProvID: 032920

ECM: CaID: 0×0500 -> CaPID: 0x0B59 ProvID: 020810

ECM: CaID: 0×0100 -> CaPID: 0x0B63 ProvID: 00003D

ECM: CaID: 0×0500 -> CaPID: 0×0887 ProvID: 025100

ECM: CaID: 0×0500 -> 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 0×0887 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 0×0500, 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: 0×0500 -> 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 0×0500, 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: 0×0500 -> CaPID: 0×0112 ProvID: 024100

ECM: CaID: 0×0500 -> CaPID: 0×0124 ProvID: 020810

ECM: CaID: 0×0500 -> CaPID: 0×0510 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 0×0112 failed to decode.

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

[mg0] network can\'t decode

[mg0] pid 0×0124 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 0×0500, pid 0×0110 ======

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: 0×0500 -> CaPID: 0×0510 ProvID: 023B00

ECM: CaID: 0×0500 -> CaPID: 0×0112 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 0×0500, pid 0×0110 ======

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: 0×0500 -> CaPID: 0x0FA3 ProvID: 023700

ECM: CaID: 0×0500 -> 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 0×0500, 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: 0×0500 -> 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 0×0500, 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}{0237 00}{0FA3}{0500}{030600}{0BBB}}

R:{{2F48}{0500}{023700}{0FA4}{0500}{030600}{0BBC}}

R:{{2F49}{0500}{023700}{0FA5}{0500}{030600}{0BBD}}
Homo sum, humani nihil a me alienum puto
MikroTik hAP ax3
Vu+Solo 4k, 90W-90E
.onn Android TV 4K UHD, iptv, m3u8