Hallo
Es gibt ja bei Linux die super Videorecorderfunktion mit Streamingserver. Wie wärs wenn man da ca 5 Minuten vor Aufnahmebeginn ein Wak on Lan singnal an den Server senden könnte? Ich glaube es gibt viele User die den PC nicht immer laufen haben, und wenn der sich dann automatisch einschaltet?
Gruß
Wox
WOL-Funktion
-
- Einsteiger
- Beiträge: 262
- Registriert: Samstag 1. Dezember 2001, 00:00
Re: WOL-Funktion
Ich habe schon einen Kommandozeilen WOL-Client für die Box im Router-Image. Damit werfe ich täglich meinen Rechner über die Fernbedienung an. Man bückt sich ja ungernWox hat geschrieben: Es gibt ja bei Linux die super Videorecorderfunktion mit Streamingserver. Wie wärs wenn man da ca 5 Minuten vor Aufnahmebeginn ein Wak on Lan singnal an den Server senden könnte? Ich glaube es gibt viele User die den PC nicht immer laufen haben, und wenn der sich dann automatisch einschaltet?
Technisch also kein Problem. Wenn das jemand in den Streamserver einbinden möchte, möge man mich ansprechen.
-
- Einsteiger
- Beiträge: 262
- Registriert: Samstag 1. Dezember 2001, 00:00
Wake on LAN (und Satfind) plugins
Nachdem ich schon drauf angesprochen wurde, aber ich mal zwei Plugins gemacht für WOL und Satfind. Getestet aber nur unter Neutrino
WOL:
Satfind:
compilieren tue ich das einfach mit
libtool --mode=compile powerpc-tuxbox-linux-gnu-gcc -O2 -Wall -I/home/fbn/tuxbox-cvs/apps/include -mcpu=823 -c -o plugin.lo plugin.c
powerpc-tuxbox-linux-gnu-gcc -shared -Wall plugin.lo -o plugin.so
powerpc-tuxbox-linux-gnu-strip plugin.so
für ein richtiges Makefile war ich noch zu faul.
Die cfg Datei sieht dann einfach so aus:
type=2
name=Beschreibung
WOL:
Code: Alles auswählen
#include <string.h>
#include <signal.h>
#include <unistd.h>
#include <sys/wait.h>
#include <plugin.h>
#define CONFIGFILE "/var/etc/ether-wake.conf"
#define ETHERWAKEBINARY "/bin/ether-wake"
void plugin_exec(PluginParam *par)
{
int macAddress[6];
char shellCommand[128];
char macAddressString[19];
FILE* fh;
if ((fh = fopen(CONFIGFILE, "r")))
{
if (fscanf(fh, "%2x:%2x:%2x:%2x:%2x:%2x", macAddress, macAddress+1, macAddress+2, macAddress+3, macAddress+4, macAddress+5) != 6)
{
printf("Fehler in %s\n", CONFIGFILE);
fclose(fh);
return;
}
fclose(fh);
strcpy(shellCommand, ETHERWAKEBINARY);
sprintf(macAddressString, " %02x:%02x:%02x:%02x:%02x:%02x", macAddress[0], macAddress[1], macAddress[2], macAddress[3], macAddress[4], macAddress[5]);
strcat(shellCommand, macAddressString);
system (shellCommand);
}
else
{
printf("%s konnte nicht geoeffnet werden\n", CONFIGFILE);
}
}
Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <unistd.h>
#include <sys/wait.h>
#include <plugin.h>
#define PIDFILE "/var/run/satfind.pid"
void plugin_exec(PluginParam *par)
{
int satfind_pid;
FILE* fh;
if ((fh = fopen(PIDFILE, "r")))
{
if (fscanf(fh, "%d", &satfind_pid) != 1)
{
printf("Satfind konnte nicht gestoppt werden\n");
fclose(fh);
return;
}
kill(satfind_pid, SIGTERM);
waitpid(satfind_pid, 0, 0);
fclose(fh);
unlink(PIDFILE);
return;
}
switch (satfind_pid = fork())
{
case -1:
perror("[satfind] can et fork");
return;
case 0:
if (execlp( "/bin/satfind","satfind", NULL) < 0)
{
printf("Satfind konnte nicht gestartet werden\n");
}
return;
default:
break;
}
if ((fh = fopen(PIDFILE, "w")))
{
fprintf(fh, "%d", satfind_pid);
fclose(fh);
}
else
{
kill(satfind_pid, SIGTERM);
waitpid(satfind_pid, 0, 0);
printf("Satfind konnte nicht gestartet werden\n");
}
}
libtool --mode=compile powerpc-tuxbox-linux-gnu-gcc -O2 -Wall -I/home/fbn/tuxbox-cvs/apps/include -mcpu=823 -c -o plugin.lo plugin.c
powerpc-tuxbox-linux-gnu-gcc -shared -Wall plugin.lo -o plugin.so
powerpc-tuxbox-linux-gnu-strip plugin.so
für ein richtiges Makefile war ich noch zu faul.
Die cfg Datei sieht dann einfach so aus:
type=2
name=Beschreibung