OSCam – an Open Source Cardserver

11

OSCam ist nicht, wie fälschlicherweise häufig verbreitet, ein illegaler EMU, sondern ein Cardserver.

Die Vorteile von OSCam sind, dass es protokoll- und plattformübergreifend ist, und somit alle möglichen EMU´s/CAM´s "bedienen" kann.

Das OS steht für Open Source, dass heißt, dass die Source (der Quelltext) für jeden zugänglich ist, und (theoretisch) jeder an der Weiterentwicklung helfen kann.

Easymouse 2

In diesem Howto installieren wir ein OSCam , auf dem eine HD01 Karte gelesen, und verwaltet  wird. Als USB-Kartenlesegerät setzen wir eine "Easymouse2" voraus.

Dies ermöglicht uns, bzw unserem Tvheadend die HD+ Programme zu entschlüsseln.

Kommen wir zu der installation (angelehnt an Teil 1, Tvheadend)

  1. Installation OSCam
  2. Erstellen der Konfigurations Dateien
  3. Cardreader Installieren
  4. Autostart Konfigurieren
  5. Tvheadend mit OSCam verbinden

ab in die Konsole 😉

1. Installation OSCam

sudo -s

cd /usr/src

apt-get install subversion dialog libusb-dev build-essential git pkg-config libssl-dev bzip2 wget 
svn checkout http://www.streamboard.tv/svn/oscam/trunk oscam-svn 
cd oscam-svn 
make allyesconfig 
make CONF_DIR=/etc/oscam

Anschliesend Wird das OSCam binary gebaut, es befindet sich im Unterordner Distribution.

Wir kopieren es nach /usr/bin/ und bennenen das Binary in oscam um.

cd Distribution

cp oscam-1.20_svn(AktuellGebauteOSCamRevision)-x86_64-linux-gnu-ssl /usr/bin/oscam


Oder (ARM)


cp oscam-1.20_(AktuellGebauteOSCAMRevision)-arm-linux-gnueabihf-ssl /usr/bin/oscam

2. Erstellen der Konfigurationsdateien

oscam.conf

mkdir /etc/oscam

joe /etc/oscam/oscam.conf

Folgendes einfügen + Abspeichern!

# oscam.server generated automatically by Streamboard OSCAM 1.20_svn SVN r11434
# Read more: http://www.streamboard.tv/svn/oscam/trunk/Distribution/doc/txt/oscam.server.txt

[global]
logfile = /var/log/oscam.log
maxlogsize = 2048

[cache]

[dvbapi]
enabled = 1
au = 1
pmt_mode = 4
listen_port = 9000
user = tvheadend
boxtype = pc

[webif]
httpport = 8888
httpuser = DeinBenutzernameZurAnmeldung
httppwd = DeinKennwortZurAnmeldung
httphideidleclients = 0
httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255

oscam.user

joe /etc/oscam/oscam.user

Folgendes einfügen + Abspeichern!

# oscam.user generated automatically by Streamboard OSCAM 1.20_svn SVN r11432
# Read more: http://www.streamboard.tv/svn/oscam/trunk/Distribution/doc/txt/oscam.user.txt

[account]
user = tvheadend
pwd = PseudoKennwortVergeben
monlevel = 4
au = 1
group = 1

oscam.server

joe /etc/oscam/oscam.server

Folgendes einfügen + Abspeichern!

# oscam.server generated automatically by Streamboard OSCAM 1.20_svn SVN r11434
# Read more: http://www.streamboard.tv/svn/oscam/trunk/Distribution/doc/txt/oscam.server.txt

[reader]
label = HD01
description = HD01
protocol = mouse
device = /dev/hd01
autospeed = 0
caid = 1830
boxkey = A7.....7C
rsakey = BF....D5
detect = cd
mhz = 600
cardmhz = 368
ident = 1830:000000,003411,008011
group = 1
emmcache = 1,1,2,0
blockemm-unknown = 1
blockemm-g = 1

Anmerkung :

Boxkey und RSAkey könnt ihr euch z.b hier suchen :

RSA_BOX_key

 

oscam.dvbapi

joe /etc/oscam/oscam.dvbapi

Folgendes einfügen + Abspeichern!

P: 1830

Logfile und Cache anlegen, Berechtigungen anpassen

touch /var/log/oscam.log
mkdir /tmp/.oscam
chown -R hts:users /etc/oscam/*
chown -R hts:users /tmp/.oscam/*
chown -R hts:users /var/log/oscam.log

User hts zur Gruppe Dialout hinzufügen

Anmerkung :

So erlauben wir User hts auf das USB Device (den Kartenleser) zuzugreifen.

usermod -aG dialout hts

 

Geschafft!

3. Cardreader Installieren

Nach dem anschließen des Kartenlesers wird das Gerät meistens unter /dev/ttyusb0 angesprochen, es kann allerdings sein, insbesondere nach einem reboot, dass der Kartenleser plötzlich unter /dev/ttyusb1-9 zur verfügung steht.

Das ist schlecht und wollen wir nicht, denn wir haben in der oscam.server eingetragen, dass der Kartenleser unter /dev/hd01 angesprochen wird!

Die Lösung ist eine "udev rule" anzulegen, der Kernel identifiziert das Gerät anhand der Hardware ID, oder Seriennummer und ist in der Lage den Kartenleser an jedem usb-port zu identifizieren.

Wir erstellen also eine Rule die Den Kartenleser Identifiziert, und bei Anschluss unter /dev/hd01 zur verfügung stellt.

In diesem Beispiel wird der Kartenleser unter seiner Vendor ID identifiziert

joe /lib/udev/rules.d/49-easymouse.rules

Folgendes einfügen + Abspeichern!

# Konfiguration für Smartcards über Easymouse2
#
# ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
SUBSYSTEMS=="usb", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403",SYMLINK+="hd01", KERNEL=="ttyUSB[0123456789]"

 

Jetzt noch die Positionen der "Dipschalter"

1.unten ; 5V

2.unten; Phoenix

3.oben ; -->

4.oben ; 6MHz

 

 

4.Autostart Konfigurieren

joe /lib/systemd/system/oscam.service

Folgendes einfügen + Abspeichern!

[Unit]
Description=OScam
After=network.target
Requires=network.target

[Service]
User=hts
Group=users
Type=forking
ExecStart=/usr/bin/oscam -b -B /var/run/oscam.pid
ExecStop=/bin/rm /var/run/oscam.pid
TimeoutStopSec=1
Restart=always
RestartSec=5
StartLimitInterval=0

[Install]
WantedBy=multi-user.target

Autostart aktivieren

systemctl daemon-reload

systemctl enable oscam.service

 

Jetzt Starten wir unsern PC neu, anschließend sollte OSCam unter http://meine-server-ip:8888 erreichbar sein.

reboot

Wir können uns nun einloggen mit unserem vergebenen Usernamen + Kennwort aus der oscam.conf

 

einmal unter Live-Log schauen ob es Probleme gibt, insbesondere ob die HD01 Karte korrekt erkannt wird.

Wenn das Log in etwa so ausschaut, :

wurde die HD01 Karte korrekt unter /dev/hd01 erkannt und gestartet. 🙂

nun zum letzten schritt,

5.) Tvheadend mit OSCam verbinden

Wir haben in der oscam.conf unter der sektion DVBAPI eingestellt, dass OSCam auf port 9000 für User tvheadend auf anfragen lauschen soll, dies müssen wir in tvheadend nun auch so einstellen.

also, einmal mit z.b Firefox http://deine-server-ip:9981/tvheadend aufrufen und als "Admin" einloggen.

unter Konfiguration / CAś nun einen neuen Client mit dem TYP CAPMT hinzufügen.

 

 

 

 

 

 

Mit dem Klick auf +Anlegen wird das Socket aktiviert + gespeichert.

Jetzt starten wir am besten den Server neu und kontrollieren anschließend im OSCam Log ob dort die Information auftaucht, dass sich User tvheadend verbunden hat, ebenso sollte in tvheadend unter Konfiguration CAś bei der Schnittstelle "oscam" ein grüner Haken stehen.

Geschafft!

Forums Diskussionen zum Beitrag https://takealug.de/wordpress/community/oscam/anleitung/#post-2

 

 

 

Related Posts

11 Replies to “OSCam – an Open Source Cardserver”

  1. Guten Tag! 🙂
    Benötige bitte eine kleine Hilfe…. bei folgendem Punkt bin ich stehen geblieben:
    cp oscam-1.20_svn(AktuellGebauteOSCamRevision)-x86_64-linux-gnu-ssl /usr/bin/oscam

    Das macht er mir nicht. Ich habe es wie folgt geschrieben:
    cp oscam-1.20_svn11520-x86_64-linux-gnu-ssl /usr/bin/oscam

    Hab ich es vielleicht falsch geschrieben? Dazu muss ich allerdings noch dazu sagen, ich baue einen server auf meinem raspberry 3

  2. Hi, ich habe Oscam auch mal geupdated, nach dem Build befindet sich die neue Binary im Unterverzeichniss „Distribution“

    e.g.
    cp oscam-svn/Distribution/oscam-1.20_svn11537-x86_64-linux-gnu-ssl /usr/bin/oscam

  3. Hi
    ich habe es nochmal probiert und es geht nicht ab dem punkt ist schluss
    cp oscam-1.20_svn(AktuellGebauteOSCamRevision)-x86_64-linux-gnu-ssl /usr/bin/oscam

    so sieht das dann bei mir aus
    root@raspberrypi:/usr/src/oscam-svn/Distribution# cp oscam-1.20_svn11546-x86_64- linux-gnu-ssl /usr/bin/oscam
    cp: der Aufruf von stat für ‚oscam-1.20_svn11546-x86_64-linux-gnu-ssl‘ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
    root@raspberrypi:/usr/src/oscam-svn/Distribution# cp oscam-1.20_svn 11546-x86_64 -linux-gnu-ssl /usr/bin/oscam

    und im Ordner Distribution sieht das so aus
    oscam-1.20_svn11546-arm-linux-gnueabihf-ssl
    oscam-1.20_svn11546-arm-linux-gnueabihf-ssl.debug

    was mache ich falsch ???

  4. Hi, mein Howto ist für Ubuntu (x86) du nutzt offensichtlich arm.
    (mein Fehler)

    Dein gebautes Binary nennt sich :
    oscam-1.20_svn11546-arm-linux-gnueabihf-ssl

    Du müsstest also oscam-1.20_svn11546-arm-linux-gnueabihf-ssl als oscam in /usr/bin kopieren.

  5. Tag, ich melde mich nach langer Zeit mal wieder.
    Habe inzwischen einen Card- Server mit einem Intel Rechner erstellt, mit zweierlei Karten. Ein Mal HD und ein Mal KabelBW. Dieser läuft schon seit geraumer Zeit sehr gut. Ein Problemchen hab ich dann doch noch. Beide Karten haben ein Ablaufdatum. Nach diesem Datum bleiben sie stehen und ich steck sie dann jedes mal für ca. ne halbe Stunde in meinen Receiver, um es durch die AU up zu daten. Also habe ich mir nachträglich eine PCI- Karte beschafft, mit DVB-C/T/S2. Meine Absicht damit ist, dass ich die Karten nicht mehr rausholen muss und das es direkt, per Signal sich das AU holt. Leider hab ich es nicht geschafft, den Kernel zu installieren, bzw. zu kompilieren. Das ist Neuland für mich. Hoffe Ihr könnt mir da behilflich sein. 🙂

    1. Hi, wenn die kommunikation zwischen Tvheadend und Oscam mittels dvbapi korrekt funktioniert (AU aktiviert) funktioniert das ganze auch ohne die Karte(n) umstecken zu müssen. ich musste bisher lediglich mein „ABO“ verlängern, und kurz einen Kanal einschalten und „warten bis hell“.

      1. Ja na klar, so ist ja auch meine Absicht Basti, aber bekomme es nicht hin das die Tv-Karte (PCI) läuft. Habe sie nachträglich eingebaut. Und danke für die schnelle Antwort 🙂

        1. Sorry, dann habe ich etwas falsch gelesen 🙂
          Erstmal wäre es interessant zu wissen um welche pci karte es denn geht ?
          In den allermeisten Fällen funktionieren die Mediabuild Treiber für ältere Kernel (z.b in ubuntu 18.04)
          Schau dir dazu mal Punkt 2.1 aus dieser Anleitung an :
          https://takealug.de/wordpress/2018/12/30/tvheadend-a-tv-streaming-server-and-recorder-for-linux/

          BTW, generell fände ich es praktischer und übersichtlicher würdet ihr ein Thema im Forum eröffnen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.