Po ťažkom boji sa mi podarilo odhaliť príčiny nefunkčnosti acamd-cccam klienta pripájajúceho sa na cccam server oscamu s irdeto kartou.Ako som predpokladal,dôvodom je ten pošahaný ident u týchto kariet.Každá karta má iný,ale k čomu to je neviem...možno sa uplatňuje pri unibloku???
Karta sa načíta aj s tým identom a tým nastáva problém-cccam server posiela klientovi komplet ident,no acamd nič také nenájde v PMT a končí.Nenašiel som spôsob,ako nastaviť na acamde,aby kašlal na id_providera a posielal ECM pre dané caid.
Spraviť sa to dá ale tým,že v oscam.server aplikujeme na kartu filter:
ident = 06xx:000000
Potom síce nejde newcamd,ale to už je druhá vec...
ident = 06xx:000000,idprov
_______________________________
Irdeto karta v nejakej čítačke,bežiaca pod cygwinovským oscamom-no problém.Lokálne sa pripája acamd(hadu) bežiaci na dvbviewer(progdvb)-no problém.Nato,aby karta začala dekódovať,je potrebná aspom jedná validná GA EMM(nemusí to tak byť vždy a u každej irdeto karty všeobecne)-problém.Áno,dá sa poslať napr. mgcamdom bežiacim pod nejakým dreamom.Ale bavme sa o lokále.Proste pluginy,ktoré sú už staršieho dáta,nevedia reagovať na relatívne mladý systém podm. prístupu.
Test bol robený s rôznymi kartami-ice v režime irdeto,irdeto staršieho dáta,M7 irdeto(všetko caid 0624).Plugin acamd(newcamd) dokáže na tieto karty poslať SA a UA EMM,no GA EMM ani ťuk.Plugin hadu naopak-počas testu ani jedna SA,UA EMM.No GA posiela,ale...Práve toto zistenie(prišiel som na to čírou náhodou) ma primälo,aby som to omrkol zblízka(aj keď o tomto probléme viem už dávno,doteraz sa mi na to zblízka pozerať nechcelo).
Takže ďalej budeme pracovať len s hadu pluginom(PC DVB cccam klient)-v.0.127.Aby vôbec posielal nejaké emm(hadu.ini):
Server=CCCam:IP_Server:Port:1:Username:Password
EMMCAID=0624
Testovaním som dospel k záveru,že GA EMM sa líšia(pominúc ich dĺžku)-konkrétne tretím bytom(ak prvý v poradí označíme nultým).Dobre napísaný klient vie určiť,ktoré ga emm patria k danej karte.Hadu posiela dva typy ga emm(celkovo ich je asi 5) súčasne a práve jeden z nich sadol na tú irdeto staršieho dáta.Ten druhý typ išiel do error.Usudzujem,že hadu nemá rutinu na určenie validného typu ga emm a posiela všetky ga emm,ktoré má zadefinované-teda nie všetky,ktoré nájde v CAT.O acamde nehovoriac.
A ako to vyzerá,keď to nejde?Web oscamu mlčí-všade(emm) samé nuly.No v plnom debugu je niečo takéto:
skipped, get_emm_type() returns error
static int32_t irdeto_get_emm_type(EMM_PACKET *ep, struct s_reader *rdr)
{
int32_t i, l = (ep->emm[3] & 0x07);
int32_t base = (ep->emm[3] >> 3);<
char dumprdrserial[l * 3], dumpemmserial[l * 3];
rdr_debug_mask(rdr, D_EMM, "Entered irdeto_get_emm_type ep->emm[3]=%02x", ep->emm[3]);
switch(l)
{
case 0:
// global emm, 0 bytes addressed
ep->type = GLOBAL;
rdr_debug_mask(rdr, D_EMM, "GLOBAL base = %02x", base);
if(base & 0x10) // hex serial based?
{
if(base == rdr->hexserial[3]) // does base match?
{
return 1;
}
else
{
return 0; // base doesnt match!
}
}
else { return 1; } // provider based, match all!
Ako teda poslať GA EMM na irdeto kartu vo windows?Ťažko.Možno existuje plugin,ktorý to vie.Prepísať hadu-pre mňa nemysliteľné,to už skôr ísť do linuxu a tam pohľadať zdrojáky pre vdr-plugin-sc.Možno nejak inak.
Alebo ručne,aj keď to je trápne:
-spustime scan nejakého transpondéra cez TS Analyzer(súčasť TransEdit.exe)
-v CAT nájdeme 0624->select pid
-view hex->save povedzme 100 paketov
-v uloženom súbore vyhľadáme tú správnu ins.-napr. 82 40 25 90 00 00...
-ak nenájdeme(lebo tam je hafo všelijakých pičovín),tak znova save
-ak nájdeme,zapíšeme cez web oscamu a čumíme
Fakt trápne.
Edit:vyšiel nový plugin(od slovenského autora) s názvom DVBplug,ktorý je určený pre použitie s DVBViewer(Windows XP>).Vie newcamd a zvláda aj GA_EMM pre irdeto.
_______________________________