[OE 2.2 en hoger] Emulator (oscam, cccam) in OE 2.2/2.5

eendenteam

Addicted Member
Administrator
Moderator
Lid sinds
1 feb 2004
Berichten
6.246
Waarderingsscore
41
Punten
48
Leeftijd
121
Net zoals in OE 2.2 maakt Enigma 2.5 gebruik van systemd. Daardoor kun je een emulator zoals oscam of cccam anders/makkelijker laten starten/stoppen e.d.
Waar je de bestanden van de emulator neerzet maakt niet uit. Wij vinden het makkelijkste om deze op een USB te plaatsen en dan onderverdeeld in subfolders.
In de flash van je image maak je dan 1 symlink naar die hoofdmap op USB. Voordeel is dat als je even een andere image wilt proberen je niet weer al die bestanden van je emulator hoeft te kopieren (die staan immers op USB). Voor oscam zie het er bijv zo uit:

Aangenomen dat je de usb hebt gemount via /media/usb (zo niet dan oscam.service aanpassen, zie onder)
op usb:

/oscam
/oscam/bin  (hier komt het bin bestand)
/oscam/conf (hier komen de configuratie bestanden)
/oscam/log (hier komen de log bestanden)
/oscam/tpl (hier komen de template bestanden)

In je flash maak je dan een symlink die je /oscam noemt naar de map /oscam op je usb.

Als je dat gedaan hebt dan is het zaak om die emulator te laten starten e.d.

Zoals vermeld systemd maakt gebruik van zogeheten service bestanden, te herkennen aan de extensie .service
Deze vind je in OE 2.5 via /lib/systemd/system.

1. Maak een bestand aan en noem deze: oscam.service
2. Zet in oscam.service het volgende:

Code:
[Unit]
Description=oscam
After=tmp.mount network.target
Requires=network.target
RequiresMountsFor=/media/usb

[Service]
Type=forking
PIDFile=/var/run/oscam.pid
ExecStart=/bin/sh -c '/oscam/bin/oscam -c /oscam/conf -w 10 -r 2 -b'
TimeoutStopSec=1
Restart=always
RestartSec=5 Start
LimitInterval=0

[Install]
WantedBy=multi-user.target

Zoals je kunt zien wordt dit pas opgestart als je netwerk upis en staat er: "RequiresMountsFor=/media/usb", hetgeen betekent dat de mount naar je usb actief moet zijn (daar staan immers de oscam bestanden).

Dat wetende is het zaak te zorgen dat het oscam.service bestand wordt gestart na een reboot, dat doe je d.m.v. het volgende EENMALIGE commando:

systemctl enable oscam.service  (of: systemctl enable oscam)

Na elke reboot wordt oscam.service dan gestart.
Nu je dat allemaal gedaan hebt, wil je ook oscam direct laten starten; dat doe je door in te tikken het commando:

systemctl start oscam.service (of systemctl start oscam)

Andere voorzichzelfsprekende commando's zijn:
systemctl stop oscam.service (of systemctl stop oscam)
systemctl restart oscam.service (of systemctl restart oscam)

Verder kun je te allen tijde de status van een service bekijken (is deze actief en zo ja hoe lang al etc), dat doe je door in te tikken:
systemctl status oscam.service (of systemctl status oscam)

Dit geldt hetzelfde natuurlijk voor andere emulators alleen moet je dan in het .service commando het opstartcommando ("ExecStart") even aanpassen.
Als je nu in bovenstaande oscam.service kijkt zie je staan:

ExecStart=/bin/sh -c '/oscam/bin/oscam -c /oscam/conf -w 10 -r 2 -b'

De feitelijke opdracht om oscam te starten is: /oscam/bin/oscam -c /oscam/conf -w 10 -r 2 -b
de /bin/sh heeft betrekking op de shell
-c betekent dat er een commando (opdracht volgt)
niet vergeten om met die manier de opdracht tussen single quotes (aanhalingstekens) te zetten.

Je kunt dit (oscam.service) voorbeeldbestand hier downloaden
 



Hosting Fun

Advertenties

Terug
Bovenaan Onderaan