3. Manuelles erstellen der Addons

  • Manuelles erstellen der Addons


    Persönlich mache ich soweit wie möglich alles aus meinem Dateimanager
    "Krusader" heraus, da ich ja bekanntlich Tipp faul bin :winking_face:
    Aber ich verwende dazu einen Rechner mit Linux als Betriebssystem!


    Unter Windows kann man zwar die Dateistruktur usw. alles erstellen,
    aber man kann da keine Rechte vergeben und Windows selbst kann ja auch nicht
    mit den Unixpacker und Archivierungstools umgehen.
    Dazu müsste man dann evtl. auf die Dreambox selbst ausweichen.


    Es würde mich freuen wenn Jemand dazu auch mal eine Anleitung verfassen kann.
    "Addons erstellen mit Windows und mithilfe der Dreambox"



    Als 1. Bsp. verwende ich hier nun zuerst einmal das einfache PiP.


    Dieses enthält im Ziparchive eine Installations-Verzeichnisstrukture
    der Dreambox 7020 und der anderen Dreamboxen...


    Wir nehmen hier erstmals nur die der anderen Boxen und lassen die DM7020
    aussen vor.
    Dies aus dem Grunde da normale Addons in allen Boxen gleich laufen sollten,
    in der DM7020 wurde von unseren Entwickler ins Image Symlinks mit eingebaut,
    so das eigentlich auch dort alles sauber installiert werden sollte :winking_face:


    In dem Zipfile finden wir schöner weise schon die Verzeichnisstruktur
    so das wir auch sofort sehen welche Daten wo hin gehören.


    Wir kopieren uns diese Daten in unser oben beschriebene (erstellte)
    Verzeichnisstruktur, oder entpacken hier einfach simple das File und
    nutzen die bereits vorhanden Verzeichnishierarchie des Zipfiles.


    Was wir nun noch ändern oder anpassen müssen sind die rechte der files.


    die pip.so ist das Programm, dieses muss natürlich Ausfühbar sein
    und sollte sowohl lese als auch schreibrechte beinhalten.
    Hier wird von unserer Seite mindest. die Rechte 755 vergeben.


    Wer sich mit der shell und dem Chmod auskennt der kann dies gerne mit dem
    Befehl "chmod 755 dateiname" erledigen, ich mache diese lieber per rechtsklick
    in meinem Dateimanager und ändere dies per Mouse unter eigenschaften ab.
    Konfigdateien sollten zumindest lese und schreibrechte haben.


    Wer mehr Infos zu den rechten benötigt, findet diese hier:



    Nun müssen wir aber noch für unser Geminitarball
    das "uninstall" script und Verzeichniss erstellen:


    Dieses kann man einfach erstellen indem wir ein bereits vorhandenes aus einen
    anderen Gemintarball als Vorlage entnehmen, oder wir Editieren uns ein eigenes.
    Dazu können wir unter Linux einen uns beliebten Editor verwenden.


    Hierzu sei aber noch erwähnt das wir unseren Editor bitte vorher noch
    Einstellen (bei Dateiformat) auf Kodierung "westeuropäisch (iso 8859-1)"
    und beim Zeilenende eben das Unixformat benutzen.


    zum uninstall script:


    So sollte die Struktur immer aufgebaut sein incl. den Leerzeilen!
    Schließlich haben/wollen wir einen Standard der beibehalten wird....
    Das untere ist die Url zu unseren Forum, habe dort nur einen "punkt" gesetzt
    wegen der Ansicht, da mir sonst beim posten noch das Url mit angehängt wird :winking_face:


    Was natürlich innerhalb der Routezeichen "#" steht sind nur Kommentare,
    Hier solltet Ihr dann aber bitte eure eigenen Worte usw. übernehmen.
    Wir wollen bzw. sehen es eigentlich nicht gerne wenn jemand anderes ausserhalb des
    des Gemini-Teams ein Addons erstellt und verbreitet und dann im Kommentar noch drinn steht das es von uns wäre/ist. Sieht man leider auch öfters :loudly_crying_face:



    #!/bin/sh
    das ist die Erkennung das es sich um ein shellscript handelt.


    # Name: pip_0.3c_050619.tar.bz2
    Der Name wie das fertige Geminitarball lautet


    # Version: 0.3c
    Die Versionnr. des Addons...


    # Type: plugin
    Der Type des Addons.
    Hier gibt es folgende möglichkeiten:


    - plugin
    - games
    - cam
    - config
    - settings
    - skin


    Diese Daten hinter dem Routezeichen(#) sind erstens wichtig für die Einhetlichkeit,
    und zweitens dienen diese wiederum als Option zukünftiger Planungen (parsen usw.)
    und damit der Enduser nachvollziehen kann was
    er Installiert hat (wenn er per FTP auf seine Dreambox geht)...



    rm -rf /var/tuxbox/plugins/pip.cfg
    rm -rf /var/tuxbox/plugins/pip.so
    rm -rf /var/tuxbox/config/pip.conf
    rm -rf /var/uninstall/pip_0.3c_delfile.sh


    mit dem Befehl rm -rf löschen wir unsere nicht mehr benötigten Daten.
    Wir wissen das wir diesen Befehl nicht unbedingt mit diesen Parametern benötigen,
    jedoch haben wir uns dazu entschlossen dieses so zu gestalten, damit die User
    und wir beim selbst editieren und erstellen Ihrer eigenen Scripte es einfacher
    haben, und zum zweitens ist damit dann das erstellen von Scriptroutinen auch
    einfacher und übersichtlicher...


    Daher brauchen wir auch nicht über dieses hoffentlich zu diskutieren? :winking_face:


    exit 0
    diese wird eigentlich nicht benötigt, aber daran kann man erkennen das dieses Script durch ein Addon-Erstellungsscript generiert wurde :winking_face:


    ######################################
    ####### Powered by Gemini Team #######
    ## http.//www.i-have-a-dreambox.com ##
    ######################################


    Das bildet natürlich den Abschluss unserer Scripte, damit jeder weiß woher diese Stammen :winking_face:



    Als 2. Bsp. verwende ich hier nun einmal eine mgcamd.


    Als Verzeichnisstrukture benötigen wir bei den Emus folgende:


    /home/egle/Downloads/Gemini/emu1/var/bin
    /home/egle/Downloads/Gemini/emu1/var/script
    /home/egle/Downloads/Gemini/emu1/var/uninstall


    Im /var/bin liegt die mgcamd. Hier wird diese wegen der Autocamfunktion und der
    Möglichkeit mehrere Emus zu installieren die Versionnr. (Erscheinungsdatum)
    mit angehangen, nach dem gleichen Prinziep wie bei allen Addons, also:


    mgcamd_050619


    Diese muss natürlich auch wieder mindst. die Rechte 755 haben.
    Im Verzeichnis /var/script befindet sich das entsprechende "cam.sh" script,
    welches Gemini nutzt um die Emus zu verwalten.


    Diese erhalten ebenfalls den Emunamen und Version mit angehangen zur Unterscheidung:


    mgcamd_050619_cam.sh


    Diese Datei muss natürlich von den Rechten her Ausführbar sein.


    Zum Inhalt des (neuen) cam-scriptes:



    #!/bin/sh
    Das ist die Erkennung das es sich um ein shellscript handelt.
    Der Rest innherhalb der Routezeichen ist die Darstellung der Cam-ID Zuweisung.


    Jeder Emu (Version) erhält eine klare Camd-ID Zuweisung, diese wird vom Gemini
    benötigt zum auswerten und verwalten der Autocam-Funktion.


    Die ersten beiden ziffern geben den Emu an, z.B. 03 = camd3.
    Die hinteren beiden Ziffern gehen von 99-00 rückwarts die Version an.
    Rückwärts deshalb, damit immer der neueste Emu an erster Stelle im Bluepanel sichtbar ist.


    Die Cam-ID 0895 zeigt uns, dies ist die fünfte Version der MGCamd für das Bluepanel.



    CAMNAME="Mgcamd 19.06.05"
    So wird dies im Menü (OK-Taste) des Geminis angezeigt welcher Emu aktiv ist.


    USERNAME=""
    Dieser Eintarg kann vom User übers BluePanel editiert werden,
    falls er sich einen anderen Namen wünscht.


    ZAPTIME=4
    gibt dem Emu die Voreingestellte Zeit in Sekunden zum starten und stoppen,
    z.B. bei einem Camreset. = Zeit die das script braucht um den emu zu starten


    CAMID=0895
    Ist ja etwas weiter oben nun erläutert, bei jedem neuen Emu rückwärts gehen,
    die nächste mgcamd hätte dann also die ID 0894....


    DVBSET=0
    Gibt an wie ein "camreset" ausgeführt wird. Dieser ist erweiterbar auf 12 Stufen.

    DVBSET=0 nicht
    DVBSET=1 doppelreset hart & weich
    DVBSET=2 doppelreset hart
    DVBSET=3 doppelreset weich
    DVBSET=4 einfachreset hart & weich
    DVBSET=5 einfachreset hart
    DVBSET=6 einfachreset weich

    wenn man eine 0 dran hängt machte das cam auf das man schalte auch das camreset was eingstellt ist

    DVBSET=10 doppelreset hart & weich & näste cam macht auch den reset
    DVBSET=20 doppelreset hart & näste cam macht auch den reset
    DVBSET=30 doppelreset weich & näste cam macht auch den reset
    DVBSET=40 einfachreset hart & weich & näste cam macht auch den reset
    DVBSET=50 einfachreset hart & näste cam macht auch den reset
    DVBSET=60 einfachreset weich & näste cam macht auch den reset



    INFOFILE="ecm.info"
    Das Infofile wird vom Gemini ausgelesen (z.B. erweiterte ECM.Info in den Skins),
    dies ist also schon wichtig, hier kann aber jeder Emu einen eigen pidstream-namen haben.
    Bei der MGCamd ist es eben das ecm.info...
    Kurz: aus welchem File kann ich die ECM-Daten (CAID) auslesen



    Tja, der Rest ist das Start und Stopscript des benutzten Emu, dieses kann /wird aber bei jedem Emu etwas anderst sein, je nach den Eigenschaften
    wie dieser eben Programmiert wurde...


    Empfehlenswert ist es hier evtl. die Letzte Version des entsprechenden Emus
    zu downloaden und das vorhandene Script dann einfach umzueditieren...


    zum uninstall script:


    Der wichtigste Unterschied zu einem normalen Addon ist folgender:
    killall -9 mgcamd_050619 2>/dev/null
    Hier muss man ja den Emu, der evtl. gerade läuft erst einmal beenden,
    damit wir diesen überhaupt deinstallieren können :winking_face:


    Auch hier ist es wieder so das man am besten ein älteres Addon des
    entsprechenden Emus sich mal anschaut um zu sehen wie dieser gekillt wird.


    Haben wird das alles Durch, können wir nun unser Geminitarball erstellen.
    Dazu komprimieren wir unser gesamtes erstelltes /var (geminiverzeichniss)
    alt tar.bz2 File, dies kann man entwerder unter der Konsole machen,
    oder eben per Mousklick mit einem Datei(File)Manager...



    3. Testen der Addons per Telnet


    Zum testen der eigens erstellten Addons kopieren wir diese per FTP auf unsere
    Dreambox in das /tmp Verzeichniss und installieren diese Manuell übers BluePanel.


    Funktionstest ggf. ausführen und anschließend manuell das Delscript ausführen.
    Zum manuellen ausführen des Delfiles loggen wir uns per Telnet in die Drambox ein.


    Wechseln per "cd" Befehl ins Verzeichniss /var/uninstall und führt das entsprechende Delfile aus.


    Code
    BusyBox v1.00 (2005.06.06-15:05+0000) Built-in shell (ash)
    Enter 'help' for a list of built-in commands.
    
    
    ~ > cd /var/uninstall/
    /var/uninstall > ./pip_0.3c_delfile.sh
    /var/uninstall >


    Wenn man wie hier sieht, das alles ohne Fehlermeldung ablief, und ggf. per
    FTP dann noch überprüft ob die Files auch alle gelöscht wurden ist das Addon
    korrekt erstellt und kann fürs Hochladen fertig gemacht werden :winking_face:



    Wichtig: Keys und wünsche zu Keys oder anderen NP-Tools sind hier
    selbstverständlich "VERBOTEN" und unerwünscht und können ggf. auch zu einer Sperrung führen!!!

    MfG EgLe :]

    Linux will Benutzer, die Linux wollen. Linux ist nicht Windows


    Kernel : 5.4.2-1-MANJARO LTS
    GUI : KDE 5.64.0 / Plasma 5.17.4
    Machine : Intel NUC8i7HVK
    Graphics : Radeon RX Vega M GH
    CPU : Intel Core i7-8809G @ 8x 4.2GHz
    RAM : Gskill F4-3000C16S-16GRS Speicherkarte so D4 3000 16GB C16 Rip