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
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
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:
#!/bin/sh
# Name: pip_0.3c_050619.tar.bz2
# Version: 0.3c
# Type: plugin
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
exit 0
######################################
####### Powered by Euer-Usernamen #######
## http.//www.i-have-a-dreambox.com ##
######################################
Alles anzeigen
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
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
#!/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?
exit 0
diese wird eigentlich nicht benötigt, aber daran kann man erkennen das dieses Script durch ein Addon-Erstellungsscript generiert wurde
######################################
####### 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
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
########################################
###### Powered by The Gemini Team ######
### http.//www.i-have-a-dreambox.com ###
########################################
# camid #
# 0000 = Commom Interface #
# 0001->0199 = for User Experiment #
# 0199 = Dccamd #
# 0200->0299 = Fbiss #
# 0300->0399 = Camd3 #
# 0400->0499 = Camx #
# 0500->0599 = Camx-radegast-CS #
# 0600->0699 = Evocamd #
# 0700->0799 = Evocamd_ronlad_cs #
# 0800->0899 = Mgcamd #
# 0900->0999 = Mgcamd_ronald_cs #
# 1000->1099 = Newcamd #
# 1100->1199 = Newcamd-ronald_CS #
# 1200->1299 = Newcamd-spider #
# 1300->1399 = Radegast #
# 1400->1499 = Ronald_CS #
# 1500->1599 = Scam #
# 1600->1699 = Scam_ronald-CS #
# 1700->1799 = Cardserver #
# 1800->1899 = Mgcamd with Cardserver #
# 9800->9899 = reserved #
# 9900->9999 = reserved #
########################################
CAMNAME="Mgcamd 19.06.05"
USERNAME=""
ZAPTIME=4
CAMID=0895
DVBSET=0
INFOFILE="ecm.info"
# end
remove_tmp () {
rm -rf /tmp/camd.socket /tmp/*mgcamd* /tmp/*mgshare* /tmp/pid.info /tmp/ecm.info /tmp/cardinfo
}
case "$1" in
start)
echo "[SCRIPT] $1: $CAMNAME"
remove_tmp
/var/bin/mgcamd_050619 &
;;
stop)
echo "[SCRIPT] $1: $CAMNAME"
kill 2>/dev/null `cat 2>/dev/null /tmp/mgcamd.pid`
killall -9 mgcamd_050619 2>/dev/null
remove_tmp
;;
*)
$0 stop
exit 1
;;
esac
exit 0
Alles anzeigen
#!/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:
#!/bin/sh
# Name: mgcamd_050619_050622.tar.bz2
# Version: 050619
# Type: Cam
killall -9 mgcamd_050619 2>/dev/null
rm -rf /var/bin/mgcamd_050619
rm -rf /var/script/mgcamd_050619_cam.sh
rm -rf /var/uninstall/mgcamd_050619_delfile.sh
exit 0
######################################
####### Powered by Gemini Team #######
## http.//www.i-have-a-dreambox.com ##
######################################
Alles anzeigen
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
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.
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
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!!!