Wie erstelle ich ein eigenes Plugin?

Games, Plugins, Utils, Tools, 3rdParty, etc...
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

So sitze schon wieder zwei Stunden an meinem Plugin aber mit "sleep 3" funktioniert das leider nicht. Das Popup kommt so extrem kurz das man es nicht lesen kann dann fährt die Box auch schon runter.
Irgendwie wird das nicht so abgearbeitet.
Kann man dem Pop nicht selbst eine Zeit zuordnen wie lange es angezeigt werden soll? :roll:
Gruß Gorcon

Nachtrag: gibts irgendwo eine Befehlsübersicht die deutsch Dokumentiert ist?
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Hat keiner eine Antwort für mich?
Gruß Gorcon
animal
Interessierter
Interessierter
Beiträge: 45
Registriert: Freitag 18. Oktober 2002, 20:56

Beitrag von animal »

morgen

1.check mal auf der shell was passiert wenn du sleep 3 eingibst.

2.du kannst ja auch nmsg parameter verwenden ist ja egal wenn du einen reboot machst wird auch das fenster geschlossen

3.du kannst auch auf der shell nochmal dos2unix <dein shellscript> ausführen und es sollten keine dos zeilenumbrüche vorhanden sein

zeig mal dein aktuelles script.

cu animal
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Code: Alles auswählen

#!/bin/sh
cd /var/tuxbox/plugins
wget -q http://127.0.0.1/control/massage?popup=S02%20bzw.%20P02%20Karte%20Aktiviert!!
rm /var/tuxbox/ucodes/cam-alpha.bin
cp /var/tuxbox/ucodes/cam-alpha_Sat.bin /var/tuxbox/ucodes/cam-alpha.bin
rm /var/tuxbox/plugins/shell2
cp /var/tuxbox/plugins/shell_Kabel /var/tuxbox/plugins/shell2
sleep 3
reboot
exit;
Die Befehle "rm /var/tuxbox/plugins/shell2
cp /var/tuxbox/plugins/shell_Kabel /var/tuxbox/plugins/shell2" sollen das shell austauschen damit ich nur ein Plugin im Blauen Menü habe. Mit einem weiteren wird dann wieder zurückgetauscht.

Im log kann man leider nichts sehen ob "sleep 3" aufgerufen wird oder nicht (aber wenn nicht würde warscheinlich eine Fehlermeldung kommen oder?)

Code: Alles auswählen

[CPlugins] try exec...
[CPlugins] exec done...
/dev/input/event1: No such file or directory
Starting pid 113, console /dev/console: '/etc/init.d/halt'
CXA2092 found
CXA2092 found
Unmounting 'ramfs' on '/tmp'
umount: /tmp: Device or resource busy
Unmounting 'jffs2' on '/var'
umount: forced umount of /dev/mtdblock/3 failed!
Oops: umount failed :-(  --  trying to remount readonly...
Ready to shutdown system...
The system is going down NOW !![ConfigFile] Unable to open file /var/tuxbox/conf
ig/contr[nhttpd] stop requested......
[ConfigFile] Unable to open file /var/tuxbox/config/controld.conf for writing.
Sending SIGKILL to all processes.
Please stand by while rebooting the system.
Wie müsste ich denn die "nmsg" Parameter verwenden?
Gruß Gorcon
animal
Interessierter
Interessierter
Beiträge: 45
Registriert: Freitag 18. Oktober 2002, 20:56

Beitrag von animal »

hallo
die cd anweisung ist IMHO nicht notwendig.

Code: Alles auswählen

wget -q http://127.0.0.1/control/massage?popup=S02
massage ??? find ich super :wink:

kann das sein dass beim löschen der camalpha neutrino abstürzt dann ist klar warum das popup weg ist glaub ich jedenfalls.

gib mal das sleep 3 nach dem aufruf der message an.

wegen dem nmsg parameter hier die HTTP API Doku:
http://cvs.tuxbox.org/cgi-bin/viewcvs.c ... cvs-markup


animal
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

massage ??? find ich super
:lol: Das war noch eine ältere Version mit einem Tipp Fehler den ich aber schon gefixt habe.

habe eben das mit

Code: Alles auswählen

wget -q http://127.0.0.1/control/message?nmsg=S02%20bzw.%20P02%20Karte%20Aktiviert!!
probiert aber das Ergebniss ist exakt das gleiche.
kann das sein dass beim löschen der camalpha neutrino abstürzt dann ist klar warum das popup weg ist glaub ich jedenfalls.
Nein tut es nicht denn ich habe ja extra den reboot einbauen müssen damit die Box neu Bootet. wenn reboot fehlt dann bleibt das Popup länger.
Eventuell stürzt Neutrino von reboot ab. (bootet aber neu so wie es sein sollte)
So ich habe "sleep 3" jetzt direkt hinters den message Aufruf gesetzt. bringt absolut nichts. maximal eine halbe Sekunde zu sehen. :-?
Gruß Gorcon

Nachtrag: Jetzt habe ich die Zeit Spassenshalber auf 30 erhöht mit dem Ergebniss das die Message 30 sek wartet bis sie erscheint und dann wieder nur ca. 05sek zu sehen ist. :-? Warum denn das???

Code: Alles auswählen

#!/bin/sh
cd /var/tuxbox/plugins
wget -q http://127.0.0.1/control/message?nmsg=S02%20bzw.%20P02%20Karte%20Aktiviert!!
sleep 30
rm /var/tuxbox/ucodes/cam-alpha.bin
cp /var/tuxbox/ucodes/cam-alpha_sat.bin /var/tuxbox/ucodes/cam-alpha.bin
rm /var/tuxbox/plugins/shell2
cp /var/tuxbox/plugins/shell_Kabel /var/tuxbox/plugins/shell2
reboot
exit;
animal
Interessierter
Interessierter
Beiträge: 45
Registriert: Freitag 18. Oktober 2002, 20:56

Beitrag von animal »

ich bin auch bald mit meinem latein am ende

aber funktioniert der sleep befehl bei eingabe auf der shell ??
hast du noch nicht geantwortet.

animal
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Funtionieren tut er ja offensichtlich aber er wird nicht dann aufgrufen wenn er soll.
Aber warscheinlich denke ich nicht in "Linux".
Ich dachte ja das die Befehle so abgearbeitet werden wie ich sie im shell eingetragen habe. Aber irgendwie ist das nicht der Fall.
Eigentlich brauche ich die Message ja nur weil ich sie im blauen Menü nicht exakt anzeigen lassen kann was das shell gerae vor hat. denn in der shell.cfg ist ja der Text drinn wie das Plugin heist nur liegt das ja im read Only Bereich daher kann ich dieses nicht per Plugin tauschen lassen.
Mir würde im Prinzip reichen wenn ich im Blauen Menü stehen hab das ich die cam-alpha für eine K02 Karte gegen eine S02/P02 cam-alpha tauschen kann. nach dem neu booten sollte dann genau umgekert S02/P02 gegen K02 drinn stehen. aber wie gesagt geht das nicht wegen read only. Und die Plugins laufen ja nicht im /var/tuxbox/plugin Verzeichniss. (dort steht nur das shell und die message befehle drinn.)
Gruß Gorcon
animal
Interessierter
Interessierter
Beiträge: 45
Registriert: Freitag 18. Oktober 2002, 20:56

Beitrag von animal »

warum läuft das Plugin nicht in /var/tuxbox/plugins ??
du musst doch nur die shell.so oder wie die bei dir heisst mit einem hexeditor bearbeiten d.h. textstelle /lib/tuxbox/plugins/shell den ausdruck lib in var ändern und abspeichern. dann läuft es im /var...
ich hoffe auch dein image ist einaktuelles (API 3) sonst müsste man auch noch neutrino patchen.


animal
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Tut es aber nicht! Das habe ich schon etliche mal probiert es läuft nur im read only.
Eine Pfad "/lib/tuxbox/plugins/shell" gibt es in der shell.so nicht. Nur er Pfad wo die shell gesucht wird ist vorhanden.
Mein Image ist das AlexW Image vom 03.03.04
Gruß Gorcon
Npq
Senior Member
Beiträge: 1339
Registriert: Donnerstag 24. April 2003, 12:12

Beitrag von Npq »

Die ucodes könnt ihr übrigens löschen wie ihr lustig seid, die werden nur beim Start in dem Moment wo die Kernelmodule geladen werden gebraucht.

Anschließend wird da nichts mehr mit gemacht.
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Deswegen wird ja die Box auch neugebootet. :wink:
Gruß Gorcon
essu
Tuxboxer
Tuxboxer
Beiträge: 2452
Registriert: Montag 21. Oktober 2002, 10:04

Beitrag von essu »

... das Problem, dass Messages erst nach dem Beenden des Plugins angezeigt werden, hängt AFAIK mit dem Aufruf aus einem Plugin zusammen, zumindest war es so, das Enigma mit seinen Funktionen (window.show etc. ) nicht ansprechbar war, so lange das Plugin lief, vielleicht war/ist es bei Neutrino ähnlich

zum Pfad:
such mal in der *.so nach '/plugin', es gibt AFAIK nur eine Zeile die das enthält und poste mal das Ganze hier
Schon gelesen ???
ENIGMA-DOC
essu
Tuxboxer
Tuxboxer
Beiträge: 2452
Registriert: Montag 21. Oktober 2002, 10:04

Beitrag von essu »

... das Problem, dass berlios erst einen Fehler ansagt, den Beitrag aber trotzdem bringt kennen wir ja...
Schon gelesen ???
ENIGMA-DOC
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

der Pfad zeigt nach /var/tuxbox/plugins/shell2
Gruß Gorcon
Npq
Senior Member
Beiträge: 1339
Registriert: Donnerstag 24. April 2003, 12:12

Beitrag von Npq »

@Gorcon: es ging mir nur um die Vermutung, daß Neutrino evtl. abstürzt weil man da rummanipuliert.

Ja, stimmt, die Shell muß als neuer Prozeß gestartet werden, damit die Plugin-Funktion zurückkehren kann. Ein Plugin übernimmt für den Zeitraum der Ausführung die komplette Kontrolle über den Framebuffer, alles andere wäre nicht im Sinne des Erfinders (Race Conditions).

Tja, wenn das die shell.so nicht vorsieht, dann muß man's wohl irgendwie in das Skript reinbasteln.
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

:-?
Im Prinizp habe ich schon verstanden, nur hilft es leider mir überhaupt nicht weiter.
Dann muss ich wohl doch wieder je ein Plugin für den jeweiligen cam-alpha Tausch einbauen. Nur wird die Liste so lang und extrem unübersichtlich. :roll:
Nun habe ich Wochenlang an dem Problem rumgebastelt und es absolut nichts gebracht. :cry:
Gruß Gorcon
essu
Tuxboxer
Tuxboxer
Beiträge: 2452
Registriert: Montag 21. Oktober 2002, 10:04

Beitrag von essu »

Gorcon hat geschrieben:[...]Dann muss ich wohl doch wieder je ein Plugin für den jeweiligen cam-alpha Tausch einbauen. [...]
...das hat AFAIK mit dem was npq gesagt hat nichts zu tun, und scheint mir auch nicht nötig, ein hin- und hertauschen lässt sich locker mit einem shellscript realisieren, evtl. kannst du auch noch die shell.cfg (oder wie die bei dir heisst) entsprechend ändern, um eine richtige Anzeige zu haben, damit dein shellscript weiss, welche camalpha aktiv ist könntest du z.B. mit

Code: Alles auswählen

touch .cam1
eine Merkdatei in /var/tuxbox/config erzeugen und im shellscript mit

Code: Alles auswählen

if [ -e /var/tuxbox/config/.cam1 ]; then
 bla....
davon abhängig machen, welche du jetzt lädst....[/quote]
Schon gelesen ???
ENIGMA-DOC
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Jetzt bringst Du meine "Birne" wieder zum rauchen.
Das mit dem Tauschen des Scrips geht ja auch alles schon, nur möchte ich auch irgendwie angezeigt bekommen was das Plugin gerade macht.
Also entweder das dort im Blauen Menü drinn steht das die K02 cam-alpha gegen die S02/P02 cam-alpha getauscht wird. Nach dem Booten sollte es dann umgekert drinn stehen.
aber die shell.cfg ist aber eben nicht austauschbar da sie nur im read only liegt.
Daher habe ich das ja versucht mit dem einblenden des Popups was aber offensichtlich nicht richtig funktioniert da es viel zu kurz angezeigt wird.
Oder binn ich jetzt wieder mal auf dem Holzweg?
Kann man denn die shell.cfg so ändern das ich dort eine Abfrage einbauen kann was gerade gemacht werden soll?
grübel, grübel, grübel. :wink:
Gruß Gorcon
animal
Interessierter
Interessierter
Beiträge: 45
Registriert: Freitag 18. Oktober 2002, 20:56

Beitrag von animal »

hi
mir ist auch noch was eingefallen
check mal:

Code: Alles auswählen

#!/bin/sh 
cd /var/tuxbox/plugins 
wget -q http://127.0.0.1/control/message?nmsg=S02%20bzw.%20P02%20Karte%20Aktiviert!! 
rm /var/tuxbox/ucodes/cam-alpha.bin 
cp /var/tuxbox/ucodes/cam-alpha_sat.bin /var/tuxbox/ucodes/cam-alpha.bin 
rm /var/tuxbox/plugins/shell2 
cp /var/tuxbox/plugins/shell_Kabel /var/tuxbox/plugins/shell2 
sh /var/tuxbox/plugins/rebootscript & 
exit;
und ein rebootscript:

Code: Alles auswählen

#!/bin/sh 
sleep 5
reboot
exit;
durch den aufruf von sh /var/tuxbox/plugins/rebootscript & wird das erste script beendet und neutrino bekommt die kontrolle zurück und gibt das popup aus, im hintergrund wartet das rebootscript den sleep ab und rebootet.

animal
essu
Tuxboxer
Tuxboxer
Beiträge: 2452
Registriert: Montag 21. Oktober 2002, 10:04

Beitrag von essu »

Gorcon hat geschrieben:[...]
aber die shell.cfg ist aber eben nicht austauschbar da sie nur im read only liegt.[...]
So, hab mir den ganzen thread seit deiner 'kleinen Zwischenfrage' (ca 3 Seiten) nochmal durchgelesen, trotzdem finde ich keine Erklärung, warum du die *so und die *cfg _datei nicht ins Verzeichnis /var/tuxbox/plugins legen kannst, es sei denn, es läge an diesem speziellen Image, dass diesen Pfad für Plugins nicht kennt, das glaube ich aber nicht.

Wenn du die beiden Dateien nach /var/tuxbox/plugins verschieben könntest, wäre auch die *cfg writeable (beschreibbar) und du bräuchtest nur ein script und keine messages zum zu erkennen von wo nach wo du switched, du müsstest nur bei jedem Umschalten die description-zeile ändern, aber vielleicht bist du mit dem jetzigen Stand ja auch zufrieden, hast du denn mal animals vorschlag ausprobiert?

Es gibt übrigens ein sehr gutes online-handbuch zur shell-programmierung, das einmal in einem thread hier empfohlen wurde (lass es DieMade gewesen, ich weiss es aber nicht mehr), vielleicht findest du den link ja mit der Suchen-Funktion
Schon gelesen ???
ENIGMA-DOC
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

@animal
werde ich nochmal probieren aber ich hatte sowas ähnliches auch schon getestet und da wurde das zweite Plugin das aufgerufen werden sollte ignoriert. (könnte aber auch ein Fehler von mir gewesen sein).
@essu
So, hab mir den ganzen thread seit deiner 'kleinen Zwischenfrage' (ca 3 Seiten) nochmal durchgelesen, trotzdem finde ich keine Erklärung, warum du die *so und die *cfg _datei nicht ins Verzeichnis /var/tuxbox/plugins legen kannst, es sei denn, es läge an diesem speziellen Image, dass diesen Pfad für Plugins nicht kennt, das glaube ich aber nicht.
Ich kannes Dir nicht erklären es läuft dort einfach nicht. Keine Ahnung warum.
Das Original war ein jffs only und selbst dort hat der "Erbauer" es in das /lib/tuxbox/plugins gelegt und das shell ins /var/plugins/ gelegt. (Den Pfad habe ich dann aber zu /var/tuxbox/plugins gepatcht)
Und ich schreibe hier nochmal hin das ist ein ganz normales AlexW Snapshot vom 3.03.04 also nichts besonderes.
Ich hatte auch schon jffs only Images probiert dort klappt das was ich will ohne Probleme, nur sind diese Images nicht alzu stabil.
Wegen dem Online Handbuch werde ich mal schaun. Hauptsache es ist auch in Deutsch.
Gruß Gorcon
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Code: Alles auswählen

[CPlugins] try exec...
[CPlugins] exec done...
/dev/input/event1: No such file or directory
/var/tuxbox/plugins/shell2: 8: shell3: not found
shell3 ist das reboot Plugin. Es funktioniert alleine nur offensichtlich kann es nicht von einem anderen shell aufgerufen werden. :-?
Gruß Gorcon
animal
Interessierter
Interessierter
Beiträge: 45
Registriert: Freitag 18. Oktober 2002, 20:56

Beitrag von animal »

moin

haste aber schon den kanzen pfad angegeben

Code: Alles auswählen

/bin/sh /var/tuxbox/plugins/shell3 &
animal
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Das geht. Super!
Mhh... komisch das ich darauf nicht gekommen bin. (Bei den Kopierbefehlen habe ich ja auch die Pfade drinn. :roll: )
Vielen Dank für Hilfe.
Gruß Gorcon