Wie erstelle ich ein eigenes Plugin?
-
- Interessierter
- Beiträge: 45
- Registriert: Freitag 18. Oktober 2002, 20:56
-
- Tuxboxer
- Beiträge: 2452
- Registriert: Montag 21. Oktober 2002, 10:04
@animal:
Ich hab mal versucht es zu kompilieren, allerdings fehlt mir da das nötige Knowhow, der Fehler der auftrat bezog sich auf Little oder Big Endian, weiss nicht mehr genau...
Ich hab mal versucht es zu kompilieren, allerdings fehlt mir da das nötige Knowhow, der Fehler der auftrat bezog sich auf Little oder Big Endian, weiss nicht mehr genau...
Schon gelesen ???
ENIGMA-DOC
ENIGMA-DOC
-
- Interessierter
- Beiträge: 45
- Registriert: Freitag 18. Oktober 2002, 20:56
hallo
und mit :
powerpc-tuxbox-linux-gnu-gcc -shared -I . shellplugin.c -o shellplugin.so
compilieren
animal
Code: Alles auswählen
#include <stdio.h>
#include <plugin.h>
void plugin_exec()
{
char scriptname[256], puffer[10000], *ptr1, *ptr2;
int xx;
xx=open("/proc/self/maps",0);
read(xx, puffer, 9999);
//printf("%s\n",puffer);
(unsigned int)ptr1 = strchr(puffer,'/');
(unsigned int)ptr2 = strchr(puffer,'.');
strncpy(scriptname, ptr1, ptr2 - ptr1);
scriptname[ptr2 - ptr1] = '\0';
printf("Scriptname = %s\n",scriptname);
system(scriptname);
}
powerpc-tuxbox-linux-gnu-gcc -shared -I . shellplugin.c -o shellplugin.so
compilieren
animal
-
- Tuxboxer
- Beiträge: 2452
- Registriert: Montag 21. Oktober 2002, 10:04
-
- Tuxboxer
- Beiträge: 2452
- Registriert: Montag 21. Oktober 2002, 10:04
-
- Interessierter
- Beiträge: 45
- Registriert: Freitag 18. Oktober 2002, 20:56
-
- Beiträge: 2
- Registriert: Mittwoch 3. März 2004, 17:21
-
- Tuxboxer
- Beiträge: 2452
- Registriert: Montag 21. Oktober 2002, 10:04
Alles so gemacht, wie dus beschrieben hast. Die cfg:
Code: Alles auswählen
type=2
name=Shellplugin
desc=test
needfb=1
needrc=1
needvtxtpid=0
needoffsets=0
Schon gelesen ???
ENIGMA-DOC
ENIGMA-DOC
-
- Interessierter
- Beiträge: 45
- Registriert: Freitag 18. Oktober 2002, 20:56
-
- Tuxboxer
- Beiträge: 2452
- Registriert: Montag 21. Oktober 2002, 10:04
Nö...(aber gestern gabs wohl auch ziemliche Probleme bei berlios)animal hat geschrieben:du hast PN
Ich nehme mal an, du willst mir das compiled shellplugin.so schicken, das ist sehr nett, aber mir gehts auch um das Verständnis des Ganzen. Warum habe ich die obige Fehlermeldung?
Schon gelesen ???
ENIGMA-DOC
ENIGMA-DOC
-
- Tuxboxer
- Beiträge: 5873
- Registriert: Samstag 23. Februar 2002, 22:46
Kurze Zwischenfrage:
Ist es eigentlich möglich von einem Plugin ein anderes aufzurufen?
Ich möchte zB. das die Box rebootet wenn das Plugin (austauschen der cam-alpha.bin) fertig ist rebootet.
Ein Plugin reboot funktioniert aleine aber wenn ich reboot in der Shell des anderen Plugins aufrufe gehts nicht. Auch das Shell selbst aufrufen bringt nichts.
Gruß Gorcon
Ist es eigentlich möglich von einem Plugin ein anderes aufzurufen?
Ich möchte zB. das die Box rebootet wenn das Plugin (austauschen der cam-alpha.bin) fertig ist rebootet.
Ein Plugin reboot funktioniert aleine aber wenn ich reboot in der Shell des anderen Plugins aufrufe gehts nicht. Auch das Shell selbst aufrufen bringt nichts.
Code: Alles auswählen
#!/bin/sh
cd /var/tuxbox/plugins
wget -q http://127.0.0.1/control/message?popup=Kabel%20Karte%20Aktiviert!!
rm /var/tuxbox/ucodes/cam-alpha.bin
cp /var/tuxbox/ucodes/cam-alpha_kabel.bin /var/tuxbox/ucodes/cam-alpha.bin
reboot
exit;
-
- Interessierter
- Beiträge: 45
- Registriert: Freitag 18. Oktober 2002, 20:56
malzeit
@Holger_R: bin auch interessiert aber ein neuer thread währe sicher sinnvoll zb "eigene Plugins (LazyT-Liga)" und wenn LazyT uns mal starthilfe geben kann werden sicher mehr mitarbeiten. ich hab schon einiges aus seinen sourcen gebastelt aber einige dinge sind noch immer ein spanisches dorf. InterestCounter+=3;
@essu: ok dann anders. du rufst das plugin aber schon über die blaue taste auf und nicht über die shell? wo erscheint das segmentation fault in der konsole (neutrino sürzt ab??) oder wie??
@Gorcon: hab dein script definitiv geprüft und meine box rebootet. was sagt die serielle konsole?
/malzeit
animal
@Holger_R: bin auch interessiert aber ein neuer thread währe sicher sinnvoll zb "eigene Plugins (LazyT-Liga)" und wenn LazyT uns mal starthilfe geben kann werden sicher mehr mitarbeiten. ich hab schon einiges aus seinen sourcen gebastelt aber einige dinge sind noch immer ein spanisches dorf. InterestCounter+=3;
@essu: ok dann anders. du rufst das plugin aber schon über die blaue taste auf und nicht über die shell? wo erscheint das segmentation fault in der konsole (neutrino sürzt ab??) oder wie??
@Gorcon: hab dein script definitiv geprüft und meine box rebootet. was sagt die serielle konsole?
/malzeit
animal
-
- Tuxboxer
- Beiträge: 5873
- Registriert: Samstag 23. Februar 2002, 22:46
Code: Alles auswählen
[CPlugins] try exec...
: not found/plugins/shell5: 6: reboot
[CPlugins] exec done...
/dev/input/event1: No such file or directory
-
- Interessierter
- Beiträge: 45
- Registriert: Freitag 18. Oktober 2002, 20:56
hi Gorcon
du hast aber nicht meine version verwendet da gibt es mehr infos.
heisst dein script shell5 ?
ist es in /var/tuxbox/plugins/ ?
hast du die rechte des scripts auf 755 oder ähnlich gesetzt ?
deine terminaleinstellung ist eigenartig da anscheinend irgendwie überschrieben wird
sollte so aussehen
animal
du hast aber nicht meine version verwendet da gibt es mehr infos.
heisst dein script shell5 ?
ist es in /var/tuxbox/plugins/ ?
hast du die rechte des scripts auf 755 oder ähnlich gesetzt ?
deine terminaleinstellung ist eigenartig da anscheinend irgendwie überschrieben wird
sollte so aussehen
Code: Alles auswählen
[CPlugins] try exec...
sh: /var/tuxbox/plugins/shell5 not found
[CPlugins] exec done...
-
- Tuxboxer
- Beiträge: 5873
- Registriert: Samstag 23. Februar 2002, 22:46
Neindu hast aber nicht meine version verwendet da gibt es mehr infos.
Ja.heisst dein script shell5 ?
Jaein, die shell.so und shell.cfg ist in /lib/tuxbox/plugins/ der Rest in /var/tuxbox/plugins/ist es in /var/tuxbox/plugins/ ?
Ja, das script funktioniert ja auch, nur bootet die Box nicht neu.hast du die rechte des scripts auf 755 oder ähnlich gesetzt ?
Ein extra Reboot Plugin funktioniert problemlos.
Gruß Gorcon
-
- Interessierter
- Beiträge: 45
- Registriert: Freitag 18. Oktober 2002, 20:56
hast du ein script welches "reboot" heisst?
füge nach jeder zeile ein
check die konsole
sonst fällt mir auch nichts mehr ein
animal
füge nach jeder zeile ein
Code: Alles auswählen
#!/bin/sh
cd /var/tuxbox/plugins
echo "verz gewechselt..."
wget -q http://127.0.0.1/control/message?popup=Kabel%20Karte%20Aktiviert!!
echo "popup gesendet..."
rm /var/tuxbox/ucodes/cam-alpha.bin
echo "cam-alpha gelöscht..."
cp /var/tuxbox/ucodes/cam-alpha_kabel.bin /var/tuxbox/ucodes/cam-alpha.bin
echo "neue cam-alpha kopiert reboot..."
/bin/busybox reboot
echo "dies ist ein nachricht aus dem jenseits......"
exit;
sonst fällt mir auch nichts mehr ein
animal
Zuletzt geändert von animal am Dienstag 16. März 2004, 17:26, insgesamt 1-mal geändert.
-
- Tuxboxer
- Beiträge: 5873
- Registriert: Samstag 23. Februar 2002, 22:46
-
- Interessierter
- Beiträge: 45
- Registriert: Freitag 18. Oktober 2002, 20:56
Ultraedit ist voll OK unter linux konsole mcedit und auf der box vi.
unter UE muss man aufpassen ob er auch in UNIX abspeichert. kann man konvertieren unter File->Conversions->DOS to UNIX. Wenn du beim UE noch FTP einrichtest kannst direkt auf der box arbeiten.
check mal die variante oben und nimm als serielles Terminal dem Bootmanager der funktioniert immer da müsste man doch genau sehen was und wo was passiert.
animal
unter UE muss man aufpassen ob er auch in UNIX abspeichert. kann man konvertieren unter File->Conversions->DOS to UNIX. Wenn du beim UE noch FTP einrichtest kannst direkt auf der box arbeiten.
check mal die variante oben und nimm als serielles Terminal dem Bootmanager der funktioniert immer da müsste man doch genau sehen was und wo was passiert.
animal
-
- Tuxboxer
- Beiträge: 5873
- Registriert: Samstag 23. Februar 2002, 22:46
-
- Tuxboxer
- Beiträge: 2452
- Registriert: Montag 21. Oktober 2002, 10:04
Sorry, immer, wenn ich versucht habe zu antworten war das forum down:animal hat geschrieben: @essu: ok dann anders. du rufst das plugin aber schon über die blaue taste auf und nicht über die shell? wo erscheint das segmentation fault in der konsole (neutrino sürzt ab??) oder wie??
Nein, ich hatte das Plugin in meiner Verblendung per telnet aufgerufen, per blaue taste klappt es.
Allerdings möchte ich ja, dass ein ln -s auf shellplugin.so genügt um beliebige andere shellplugins aufzurufen, das scheint aber wohl nicht zu gehen, lässt sich das realisieren?
BTW: shellplugin.so ist bei mir 16K gross, scheint mir ziemlich viel...
Schon gelesen ???
ENIGMA-DOC
ENIGMA-DOC
-
- Interessierter
- Beiträge: 45
- Registriert: Freitag 18. Oktober 2002, 20:56
hi essu
du musst es noch strippen:
powerpc-tuxbox-linux-gnu-strip shellplugin.so
dann hat es nur mehr 9.3k ist auch noch zu viel ich hab auch noch einen alten compiler da geht es auf 4,6k zurück.
leider erkennt das plugin nur den eigenen namen (d.h. man braucht nicht mehr zu patchen) aber nicht den des aufrufenden links.
ich könnte mir vorstellen vor dem start von neutrino kopien mit den gewünschten namen im /tmp anzulegen und auf diese in /var/tuxbox/plugins zu linken es müssten aber auch die scripts ins /tmp
hab auch schon mein shellmenü fertig zum testen da wird nur mehr in der shellmenu.cfg zusätzlich der angezeigte name und der name des scripts angegeben (dzt max 10 scripts)
wenns interessiert melden
animal
du musst es noch strippen:
powerpc-tuxbox-linux-gnu-strip shellplugin.so
dann hat es nur mehr 9.3k ist auch noch zu viel ich hab auch noch einen alten compiler da geht es auf 4,6k zurück.
leider erkennt das plugin nur den eigenen namen (d.h. man braucht nicht mehr zu patchen) aber nicht den des aufrufenden links.
ich könnte mir vorstellen vor dem start von neutrino kopien mit den gewünschten namen im /tmp anzulegen und auf diese in /var/tuxbox/plugins zu linken es müssten aber auch die scripts ins /tmp
hab auch schon mein shellmenü fertig zum testen da wird nur mehr in der shellmenu.cfg zusätzlich der angezeigte name und der name des scripts angegeben (dzt max 10 scripts)
wenns interessiert melden
animal
-
- Tuxboxer
- Beiträge: 2452
- Registriert: Montag 21. Oktober 2002, 10:04
Danke für deine Hilfe.
Klar bin ich auch an deinem shellmenü interessiert.
Klar bin ich auch an deinem shellmenü interessiert.
Schon gelesen ???
ENIGMA-DOC
ENIGMA-DOC
-
- Tuxboxer
- Beiträge: 5873
- Registriert: Samstag 23. Februar 2002, 22:46
Ich habe noch ne Frage.
Wie kann ich einen Befehl verzögert ausführen?
Es geht darum das ich mit dem shell das oben angegeben ist erst zB. die cam-alpha austausche und dabei wird ein Massage Popup auf den Bildschirm gebracht. dann soll die Box rebooten. nur wird mir das Popup viel zu kurz angezeigt ich möchte also eine Zeitverzögerung von zB. 2-3sek haben bis der Befehl "reboot" ausgeführt wird.
Gruß Gorcon
Wie kann ich einen Befehl verzögert ausführen?
Es geht darum das ich mit dem shell das oben angegeben ist erst zB. die cam-alpha austausche und dabei wird ein Massage Popup auf den Bildschirm gebracht. dann soll die Box rebooten. nur wird mir das Popup viel zu kurz angezeigt ich möchte also eine Zeitverzögerung von zB. 2-3sek haben bis der Befehl "reboot" ausgeführt wird.
Gruß Gorcon
-
- Tuxboxer
- Beiträge: 2452
- Registriert: Montag 21. Oktober 2002, 10:04
-
- Tuxboxer
- Beiträge: 5873
- Registriert: Samstag 23. Februar 2002, 22:46
Danke. Klappt aber leider nicht.
Irgendwie kommt laufend die Formatierung des Shells durcheinander. (nicht sichtbar)
Wenn ich das skript änder in diesem Fall eine Zeile einfüge geht auf einmal der Kopierbefehl nicht mehr obwohl ich da nichts drann geändert habe. Ich nutze jetzt schon extra UltraEdit auch im Unix Modus aber mal geht mal nicht.
Das Einfügen des "sleep" Befehls brachte eigentlich garnichts.
Ich habe jetzt aber erst mal kein Bock mehr mal morgen weiter sehen.
Aber trotzdem Danke.
Gruß Gorcon
Irgendwie kommt laufend die Formatierung des Shells durcheinander. (nicht sichtbar)
Wenn ich das skript änder in diesem Fall eine Zeile einfüge geht auf einmal der Kopierbefehl nicht mehr obwohl ich da nichts drann geändert habe. Ich nutze jetzt schon extra UltraEdit auch im Unix Modus aber mal geht mal nicht.
Das Einfügen des "sleep" Befehls brachte eigentlich garnichts.
Ich habe jetzt aber erst mal kein Bock mehr mal morgen weiter sehen.
Aber trotzdem Danke.
Gruß Gorcon