Info-Led bei Aktivität blinken lassen

starcut

Neuer User
Mitglied seit
3 Sep 2006
Beiträge
6
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich benutze die FritzBox WLaN 7050. Daran hängt ein PC am Netzwerkanschluss. Bekommt man es hin, die Info-LED bei Internetaktivität blinken zu lassen? Also so, dass z.B. wenn man eine Webseite lädt oder beim Download die LED immer blinkt...

Gruß
 
Kannst das ja hier mal probieren...
weiss aber nicht ob es so gut ist, wenn die Fritz im Promisc. Mode läuft :noidea: Es macht die Fritz!Box auch etwas lahmer...
 

Anhänge

  • lanstat-v0.1.tar
    10 KB · Aufrufe: 105
Zuletzt bearbeitet:
Naja, langsamer sollte es nicht sein. Tut mir leid kenn mich mit Fritzbox Mods überhaupt nicht aus.... Was spezielles (Befehl/Script) gibts es dafür also nicht?
 
An der Upload/Download Geschwindigkeit hat sich bei mir nicht geändert.
Nur wenn ich per Telnet auf die Box geh, ist es etwas langsamer (merkt man ein wenig).

Ein Skript wüsste ich jetzt nicht...

Die Datei, die ich gepostet hab, ist ein Binary und wird einfach entpacket, auf die Box hochgeladen (/var/tmp/) und ausgeführt. Dann sollte die LED bei Netzwerkaktivität blinken...

gruß
bodega
 
Hmm... was wird denn mit deiner Datei verändert? Was ist ein Promisc mode? Weiß sonst noch jemand, ob es evtl. eine einfachere Lösung gibt? :rolleyes:
 
Das ist ein einfaches C Programm. Da wird nichts verändert..

Der "Promiscuous Mode" ist eine Einstellung der Netzwerkkarte. Damit kann man die Datenpakete, die an der Leitung vorbeigehen, abfangen. Ich nutze das, um die LED blinken zu lassen ;)

Den Code will ich nicht vorenthalten und ist auch so kurz, dass ich den einfach hier rein schreib: :D

Code:
// lanstat v0.1 (c) 2006 maz
#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <netpacket/packet.h>
#include <net/ethernet.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <linux/if.h>
#include <sys/ioctl.h>

void main(int argc, char *argv[]) 
{
  char   packet[1];
  int    sock;
  
  printf("LANstat v0.1\n\n");
  
  sock = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL));

  if(sock<0) 
  {
    printf("Socket create error!\nExit!\n");
    exit(1);
  }

  for(;;) 
  {  
	if(recv(sock, &packet, sizeof(packet), 0) < 0) 
	{
		printf("Packet receive error!\nExit!\n");
		close(sock);
		exit(1);	  
	}  
	
	usleep(100);
	system("echo 7,2 > /var/led");
	usleep(100);
	system("echo 7,1 > /var/led");	
	usleep(100);
  }

  close(sock);
  exit(0);
}

Im Großen und Ganzen passiert da nichts anderes, als auf ein Datenpaket zu warten und die LED einmal blinken zu lassen.

Es gibt bestimmt bessere Lösungen, die hier hab ich nur aus ner alten Kiste ;)

Gruß
bodega

ps. Für das Binary brauchst du auch keinen Mod. Das kann so ausgeführt werden.
 
Zuletzt bearbeitet:
Ok vielen Dank werde es mal probieren:D

edit:// Habe es jetzt ausprobiert und es funktioniert sehr gut!! Danke, Gruß ;-)
 
Zuletzt bearbeitet:
@bodega

Wie bekomme ich das Binary denn dauerhaft in die Fritbox (mit DS-MOD)?

Sprich: Nach einem Reboot soll das Binary direkt von der Box ausgeführt werden, ohne es mit wget von einem Server zu laden.

Geht das ?

Danke

Gruß

Obi
 
Mit dem dsmod geht das.
Du kopierst das File nach ds-0.2.9/root/usr/bin und machst es ausführbar. (chmod +x file)

MfG Oliver
 
@olistudent

ich nehme an, daß ich das Binary File "lanstat" (ausgepackt aus dem .tar File) in den von Dir angegebenen Ordner kopieren muß
(und nicht das .tar File) ?

Oder ?

Danke

Gruß

Obi
 
Einfach entpacken und danach ausführbar machen, per chmod +x lanstat. Unter ds-0.2.9/root/usr/bin
 
Mal eine andere Frage: wie macht man es rückgängig (led blinken lassen)?

Gruß
 
Ob das Programm läuft kannst du mit "ps" verfolgen.
Beenden kannst du es mit "killall lanstat".

MfG Oliver
 
Hi nochmal,

habe das Blinken jetzt wegbekommen, weil ich es mir anders überlegt habe (nervt nach ner Zeit ;) ) aber wie bekommt man diese Meldung der FritzBox weg (nicht unterstützte Änderungen vorgenommen...)?

Danke nochmal:p
 
Dazu gibt es hier 1000 Threads. Kurzfassung: Recover. Evtl. klappt auch: telnet aus und aktuelle Original-AVM-FW aufspielen.
 
7170

Ich habe versucht die Datei auf die 7170-28 zu laden. Beim Ausführen kommt der Hinweis:

Code:
./lanstat: can't resolve symbol '__uClibc_start_main'

Funktioniert das Binary evtl. nicht mit der Laborfirmware?
 
Richtig. ;-)

Aber das hier: Link (Rechtsklick->Speichern unter...)

MfG Oliver
 
Danke, jetzt funktioniert es!
 
Hab nach genau sowas gesucht und nichts moderneres gefunden. Also hab ich mal eben das vorhandene hier an meine Box (7240) mit neuem OS (5.50) angepasst:

Code:
// lanstat v0.1 (c) 2006 maz
// lanstat v0.2h (c) 2013 hede
// license: public domain? ask maz...
#include <sys/socket.h>
#include <net/ethernet.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

void main(int argc, char *argv[]) 
{
  char   packet[256];
  int    sock;
  char   wait = 0;
  
  printf("LANstat v0.2h\n\n");
  
  sock = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL));

  if(sock<0) 
  {
    printf("Socket create error!\nExit!\n");
    exit(1);
  }

  // receives packets in nonblocking mode with LED on until it would block
  // then it deactivates LED and nonblocking mode to block until new data 
  // is received
  // then it activates nonblocking mode and the LED... 

  for(;;) 
  {  
    if (recv(sock, &packet, sizeof(packet),  wait) >= 0) 
    {
      if (!wait) {
        wait = MSG_DONTWAIT;
        system("led-ctrl switch_info_to_online");
      }
    }
    else
    {
      system("led-ctrl switch_info_to_silence");
      if (errno == EWOULDBLOCK)
      {
        wait = 0;
      }
      else
      {
        printf("Packet receive error!\nExit!\n");
        close(sock);
        exit(1);
      }
    }
  }
  // never reached
}
Etwas unschön finde ich noch, dass die Daten tatsächlich gelesen und in einen eigenen Puffer kopiert werden, der dann ungelesen verworfen wird. Naja und insgesammt ist das ja so oder so mehr ein Hack als was sinnvolles. Aber es funzt. :-D

Zu der Frage, ob man das auf reinen WLAN-Betrieb umstellen kann: Ja, kann man. Man kann das socket einfach anstatt ETH_P_ALL an einer bestimmten Schnittstelle lauschen lassen. Aber da bin ich jetzt überfragt bzw. die Frage ist ja eh schon so alt, da weiß ich gar nicht, ob es sich noch lohnen würde, das selber auszuprobieren.

Ach ja. Da die Frage ja generell schon öfter aufgekommen ist: Gibts da nicht irgendwie ne bessere Lösung, die ich einfach bisher übersehen habe? Das "neue" led-ctrl müsste das doch irgendwie auch von alleine können!??!??? Oder sonstige Tools in der Fritz!Box...

Im Anhang das MIPS-Binary.
 

Anhänge

  • lanstat.gz
    2 KB · Aufrufe: 11

Statistik des Forums

Themen
244,855
Beiträge
2,219,577
Mitglieder
371,565
Neuestes Mitglied
drummer1327
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.