2011. április 10., vasárnap

CCcam konfigurálása

Egyértelműen ki lehet jelenteni, hogy a CCcam az egyik legnépszerűbb sharing program. Ez se mai program (2008-ban jelent meg), de (viszonylag) rendszeresek a fejlesztések. A cikk írásakor a 2.2.1-es verzió a legújabb. A csomag letölthető pl. a http://www.cccamforum.com/ Downloads szekciójából (regisztráció után).

Több környezetre optimalizált verziót tartalmaz a telepítő csomag. A Linuxos műholdvevő boxok (DreamBoxok és társaik) a PPC-t (PowerPC architektúra), a kártya szerverek a x86-os disztribúciót tudják futtatni. Én most ez utóbbit fogom használni.

A CCcam konfigurációs fájl a CCcam.cfg. A konfigurációs fájl alapértelmezett helye: /var/etc, ha semmilyen paramétert nem adunk meg, itt fogja keresi. Ha máshol van, akkor a programot igy indítsuk:
CCcam.x86 -C /mappa/helye/cccam.cfg
Természetesen a /mappa/helye helyére írjuk az elérési útvonalat.

A Neten igen gazdag angol nyelvű dokumentáció áll rendelkezésünkre, igy itt csak a legfontosabb beállításokkal foglalkozunk.

Működési port
Először is állítsuk be a legfontosabbat, azt a portot, ahol a CCcam szerver dolgozni fog:
SERVER LISTEN PORT: 12000
Na, az az a beállítás amit senki ne használjon ! Ugyanis ez az alapértelmezett port. Ezt mindenképpen változtassuk meg. Elvileg bármilyen portot használhatunk, de javasolt 10000 feletti érték használtata - itt már nincs semmilyen dedikált port.


Kártyaolvasó
Mint azt már az előző cikkekben jeleztem, a CCcam-nak is van beépített kártya kliense.A következőkben néhány konkrét példát írok a különböző olvasók beállítására:
Dreambox 500 belső kártyaolvasó:
SERIAL READER : /dev/sci0 

COM1 portos Phoenix olvasó:
SERIAL READER : /dev/ttyS0

SmarGo olvasó az USB1-es portban:
SERIAL READER : /dev/ttyUSB0 smartreader+ 

Segédfájlok
Adjuk meg a külsö fájlok helyét:
# Itt a kódolások priorizálását adjatjuk meg 
# (pl. ha egy TV adást többféle módon kódolnak, itt lehet kiválasztani melyiket 
# próbálja először dekódolni)
CAID PRIO FILE : /var/etc/CCcam.prio

# A szolgáltatók azonosítójához nevet rendel. Érdemes a legújabb listát használni.
PROVIDERINFO FILE : /var/etc/CCcam.providers

# A TV csatornák azonosítójához nevet rendel Érdemes a legújabb listát használni.
CHANNELINFO FILE : /var/etc/CCcam.channelinfo

LOG fájl
A LOG fájl nagyon hasznos. Ide folyamatosan írja a problémákat, pl. azokkat az IP címekket, akiknek a csatlakozását valamiért nem fogadja el a CCcam.
LOG WARNINGS : /tmp/warnings.txt

Kódok külső fájlból
Ha állandó, vagy nagyon ritkán változó kódot használ egy szolgáltató, akkor a dekódoláshoz szükséges kódot külső fájlban is tárolhatjuk, ahonnét a CCcam beolvassa. Ezek a kódok (pontosabban a kész SoftCam.Key, AutoRoll.Key és constant.cw fájlok) fellelhetőek a Neten és érdemes mindig a legújabbat használni - persze, ha van olyan TV adás amit tudunk ilyen módon nézni. A kódok beolvasásához ezt kell beállítani:
SOFTKEY FILE : /var/keys/SoftCam.Key 
AUTOROLL FILE : /var/keys/AutoRoll.Key 
STATIC CW FILE : /var/keys/constant.cw 

CCcam összekötése NewCS-vel
Ha nem a CCcam kártyakliensét akarjuk használni, hanem egy külsö programot, van rá mód. Az alábbi példában a NewCS és a CCcam összekötését mutatom be.
Feltételek:
  • Futnia kell (a háttérben) a NewCS-nek és a CCcam-nak
  • Kizárólag a NewCS használhatja a kártyaolvasót (a cccam.cfg-ben törölni kell a kártyaolvasóra vonatkozó sorokat)
  • A newcs.xml-be kell egy user a CCcam részére
Ha ez megvan, a cccam.cfg-be létre kell hozni egy N sort a NewCS részére, ilyen módon:
N: 127.0.0.1 15050 USER PASSW 01 02 03 04 05 06 07 08 09 10 11 12 13 14 256
Magyarázat:
  • 127.0.0.1: Az IP cím, ahol fut a NewCS. Jelen esetben ez a helyi gép.
  • 15050: A NewCS által használt port címe
  • USER és PASSW: A felhasználó neve és jelszava, amivel csatlakozni szeretnénk
  • 01 02...14: a kapcsolathoz használt titkosítási kulcs. A NewCS newcamdserver részén deklarált deskey kulcs.
  • 256: Ha azt szeretnénk, hogy a kártyánk lokális kártyának látszódjék és ne hop1-nek (erről majd később), akkor írjuk a sor végére ezt a számot. Figyelem ! Ez a trükk csak a CCcam 2.1.3-as verzióig működik ! Ha mi újabb CCcam-ot használunk, mindenképpen a beépített kártyaklienst kell használunk ahhoz, hogy lokálisnak látszódjék a kártya.
Sorok csere-beréje
És most a lényeg, hiszen az egészet azért csináljuk, hogy kártyákat osszunk meg.
CCcam.ban külön kell beállítani a kifelé irányuló forgalmat (a saját kártyánk és a többi kapott kártya megosztása) és külön a befelé irányuló forgalmat (partnertől kapott kártyák). A fogadott adatokat F sorral kell jelölni, a küldött adatokat pedig C sorral. Ha beállítunk egy F sort, az csak akkor fog működni, ha a partnernek ugyanazon adatokkal be van állítva egy C sor is. Vagyis az sorok csak párban működnek: ahhoz hogy működjön, minden C sorhoz tartozni kell egy F sornak, és fordítva. Az egyik nálunk lesz, a másik a partnernél, attól függ, melyik hol van, hogy mi osztjuk meg, vagy mi kapjuk a kártyát. Nyugi, elmondva ez bonyolultabb, mint a gyakorlatban ! Nézzünk egy konkrét példát. A már említett kulala-lumpuri Lee haverunkal akarunk mindent megosztani. Ahhoz, hogy Lee lássa a mi kártyánkat ezt kell beírni (arra, hogy mi mit jelent,  később visszatérünk):
F: Lee Jelszo1
Lee-nek ezt kell beállítani, hogy használhassa a megosztást
C: blasto_szervere.dyndns.org 12000 Lee Jelszo1
De mi is szeretnénk látni Lee kártyáját, igy meg kell tennünk ezt visszafelé is. Ez lesz a végleges :
F: Lee Jelszo1 
C: lee_szervere.dyndns.org Blasto Jelszo2 
Lee oldalán ez lesz:
F: Blasto Jelszo2 
C: blasto_szervere.dyndns.org 12000 Lee Jelszo1
Elsőre bonyolultnak tünik, de hamar bele lehet jönni ! :)


Egy kis kitérö: Mi az a hop ?

Szó szerint idézném Butyiba leírását a témában, ahol egy konkrét példán keresztül mutatja be a hop jelentését:
"Vegyünk egy példát és legyen 4 box ( box1, box2, box3 és box4 ) és itt most mindegy hogy otthoni vagy internetes sharingról beszélünk.
Box1-ben van egy kártya és ehhez a boxhoz kapcsolódik a box2. Akkor box2 HOP1-ben látja box1 kártyáját.
Ha box3 csak box2-höz kapcsolódik akkor tudja nézni box1 kariját HOP2-ben. Ugyanez a helyzet ha box4 kapcsolódik box3-hoz akkor hop3-ban tudja nézni box1 kártyáját.
Természetesen minden egyes hop-al lassabb lesz a kérés-válasz idő, hiszen box4 kérése végig kell menjen box3, box2-őn mire elér box1-hez. Ezért adatvesztés is előfordulhat ami a kép és hang hibában jelentkezhet box4 felhasználónál. Javíthat a helyzeten a gyors internet kapcsolat és a kevés partner box1,box2 és box3-nál de ezt box4 tulajdonos nem tudja szabályozni. Ezért lehetőség szerint törekedni kell, hogy gyors internet kapcsolatú partnerekkel történjen a sorcsere és minél közelebb (vagyis minél kisebb hop értékű) legyen annak a partnernek a box-a akitől szeretnénk a kártyát használni."

F sor leírása
Egyeztetve vele, továbbra is Butyiba leírását használom.
F sor szintaktikája alap esetben (amikor nem tiltunk semmit) :
F: user pass
Az ehhez az F sorhoz tartozó C sor:
C: ipcím portszám user pass
Az ipcím a dyndns-t vagy fix IP címet jelenti
Portszám az a port amit engedélyeztünk a routeren és nyitva van, hogy a tűzfal ne keverjen be.
user és pass ugyanaz amit az F sorban megadtunk. Ezután odaadjuk a C sort a partnernek aki szintén ad egy C sort amit Ő csinált hasonlóan. A nála lévő F sor fog kommunikálni azzal a C sorral amit adott és a mi F sorunk kommunikál azzal a C sorral amit mi adtunk neki.

Nézzük a részletesebb szintaktikát.
F: <username> <password> <uphops> <shareemus> <allowemm> ( { caid:id(:downhops), 
caid:id(:downhops), ... } { caid:id:sid, caid:id:sid, ... } { begintime-endtime, 
... } ) < hostname/ip address>

Az F sorban kötelező megadni az alábbiakat :
• Felhasználónév, hogy a partner tudjon kapcsolódni a szerverhez <username>
• Jelszó, hogy a partner tudjon kapcsolódni a szerverhez <password>
Opciók
• Hányszor engedélyezzük a továbbosztást <uphops>
• A partner használhatja-e az emulátorunkat vagy sem <shareemus>
• A partnernek engedélyezzük-e EMM-ek küldését, hogy frissíthesse a kártyánkat <allowemm>
• Milyen szolgáltatókat vagy csak csatornákat engedélyezünk vagy tiltunk a partnernek { caid:id(:downhops), caid:id(:downhops), ... } { caid:id:sid, caid:id:sid, ... }
• Milyen időtartam között engedélyezzük a kapcsolatot a partnernek { begintime-endtime, ... }
• Milyen IP vagy DNS címről kapcsolódhat a partner <hostname/ip address>


Alaphelyzetben (ha nem állítunk át semmit) az alábbi beállítások vannak:
• <uphops> = 5
• <shareemus> = 1 (engedélyezve van az emu-k használata)
• <allowemm> =1 (engedélyezve van emm küldése )
• { caid:id(:downhops), caid:id(:downhops), ... } { caid:id:sid, caid:id:sid, ... } = Nincs limit ( mindent tovább tudunk adni és nincs korlátozva sem semmi )
• { begintime-endtime, ... } = Nincs megadva idő (24 órás a kapcsolat)
• <hostname/ip address> = Bármilyen IP vagy DNS címről kapcsolódhat
Megjegyzés
• <Username> max 20 karakter
• <Password> tetszőleges

Általános F sor:
F: username password 2 1 1 { 0:0:1 }
• A partner hop2-ig kapja a kártyákat tőlünk. A saját lokálunkat és azt amit mi hop1-ben kapunk.
• Engedélyezzük az emunk használatát
• Engedélyezzük neki emm küldését, hogy frissítse a kártyánkat
• Minden kártyát ( lokál és hop1 ) használhat tőlünk de nem engedjük a továbbosztást neki

Másik tipikus F sor:
F: username password 2 1 1 { 0:0:2 }
• A partner hop2-ig kapja a kártyákat tőlünk. A saját lokálunkat és azt amit mi hop1-ben kapunk.
• Engedélyezzük az emunk használatát
• Engedélyezzük neki emm küldését, hogy frissítse a kártyánkat
• Minden kártyát ( lokál, hop1 és hop2 ) használhat tőlünk és engedjük a továbbosztást neki az Ő partneréhez, de a partnere nem oszthatja tovább

További tipikus F sor:
F: username password 2 1 1 { 0:0:3 }
• A partner hop2-ig kapja a kártyákat tőlünk. A saját lokálunkat és azt amit mi hop1-ben kapunk.
• Engedélyezzük az emunk használatát
• Engedélyezzük neki emm küldését, hogy frissítse a kártyánkat
• Minden kártyát ( lokál, hop1, hop2 és hop3 ) használhat tőlünk és engedjük a továbbosztást neki az Ő partneréhez aki tovább oszthatja de a partnere nem oszthatja továb
Így csak lokált kap és nem osztható:
F: login pass 0 0 0 { 0:0:1 } 
Ilyen nincs mert, így csak a lokált kapná de mivel { 0:0:0 } így Ő sem tudja nézni:
F: login pass 1 0 0 { 0:0:0 } 
Csak lokál és egyszer osztható:
F: login pass 0 0 0 { 0:0:2 } 
Lokál+hop1 és nem osztható:
F: login pass 1 0 0 { 0:0:1 } 
Lokál+hop1 és egyszer osztható:
F: login pass 1 0 0 { 0:0:2 }
Lokál+hop1 és egyszer osztható és EMM-et ad a karidnak attól akinek adtad a sort:
F: login pass 1 0 1 { 0:0:2 } 
Lokál+hop1 és egyszer osztható és használja az kulcsokat is:
F: login pass 1 1 0 { 0:0:2 } 


C sor leírása
Butyiba tollából
Szintaktika :
C: <hostname> <port> <username> <password> <wantemus>
A C sorban a következők lehetnek :
• Szerver IP címe ahová kapcsolódni szeretnénk <hostname>
• Port száma ahová kapcsolódni szeretnénk <port>
• Felhasználó név a szervernek ahová kapcsolódni szeretnénk <username>
• Jelszó a szervernek ahová kapcsolódni szeretnénk <password>
• Emulátor használatát engedélyezzük vagy sem annak a szervernek ahová kapcsolódunk <wantemus>
• Különböző korlátozások beállításai

Egy tipikus C sor:
C: server.noip.com 12000 username password

Ha nem akarjuk használni a másik szerver emulátorát
C: server.noip.com 12000 username password no

Amennyiben használni szeretnénk a másik szerver emulátorát ( de csak akkor tudjuk ha a partner F sorban engedélyezte )
C: server.noip.com 12000 username password yes

Nem használjuk az emulátort és hop2-ig engedjük be a kártyákat
C: server.noip.com 12000 username password no { 0:0:2 }

Nem használjuk az emulátort és hop1-ig ( csak a partner lokál kariját ) engedjük be a kártyákat
C: server.noip.com 12000 username password no { 0:0:1 }

CCcam szerver terhelésének csökkentése
Ha sok partnerünk van, igen hamar az egekbe nőhet a terhelés. Ilyenkor elkezd szakadozni a kép. Az egyik megoldás ilyes esetben a combosabb HW beszerzése, a másik, a kapott kártyák optimalizálása. Nézzük, mit lehet optimalizálni.
Alapértelmezetten rengeteg olyan kártyát is fogunk kapni, amit már nem tudunk továbbosztani. Ha kártyaszervert használunk, és nem közvetlenül a box-on fut a CCcam, ezek amúgy is teljesen feleslegesek, hiszen a box-al a kártyaszerverre kapcsolódunk, vagyis növekszik egyel a hop-szám. Tiltsuk le azokat a kártyákat, amiket már nem tudunk továbbosztani:
MINIMUM DOWNHOPS: 1 
A másik trükk, a szerver terhelésének csökkentésére, hogy csak azokkal a kártyákkal foglalkozunk, ami legfeljebb hop3-as. A nagyobb hop értékű kártyákkal nem foglalkozunk, ezek amúgy is már használhatatlanok. Minden C sor végére írjuk, hogy { 0:0:3 }, vagyis így fog kinézni egy C sor:
C: akarmi.dyndns.com 12000 user jelszo no { 0:0:3 } 

Természetesen még többször ennyit lehetne írni a CCcam-ról, de kezdetnek ennyi bőven elég.

(A leírtakat ellenőrizte: Butyiba )

1 megjegyzés:

  1. hello. a cccam ujra inditorol nem birsz reszletes leirast adni kerlek.kosz.szia

    VálaszTörlés