Seite 1 von 3

cdkVcInfo

Verfasst: Sonntag 10. Januar 2010, 11:30
von Barf
Von http://www.tuxbox.org/forum/viewt ... 1&start=56, neues Thema weil da OT.
GetAway hat geschrieben:Etwas OT, aber ich möchte hier darauf hinweisen das möglicherweise das Tool "cdkVcInfo",
gegen das erweiterte Tool sbimgeinfo von SnowHead ausgetauscht werden sollte, sofern
dieses Tool auch zu den freigegeben Sourcen zählt, die an rhabarber1848 übergeben wurden.
Zu den normalen Imageinfo's zeigt dieses, während des Bootvorgang's, die Netzwerkeinstellungen
mit an. Ich finde es persönlich sehr nützlich.
Ein funktionierendes Programm wird in CVS nicht einfach "ausgetauscht", sondern das alternative Programm wird eingecheckt, und der User (bzw. Imagebauer) kann wählen welche er nimmt.

Es wäre leicht, cdkVcInfo mit zusätzlige Funktionen auzubohren. Nahe liegend wäre ein usergeschriebenes shellskript (falls vorhanden) auszuführen (popen), und stdout auszugeben.

Wahrscheinlich wäre dies sogar schneller und einfacher als GetAways Vorschlag. :wink:

Re: cdkVcInfo

Verfasst: Sonntag 10. Januar 2010, 11:52
von GetAway
Hi, Aufgrund der Tatsache das es wohl keine Quellen zu sbimageinfo gibt, habe
ich mal mit einem Hexeditor reingeschaut. Es handelt sich tatsächlich um eine
Erweiterung von cdkVcInfo. Es wurde nur umbenannt und du hast natürlich Recht,
das es einfacher ist diese erwähnten zusätzlichen Ausgaben mit einzubauen. :wink:

Re: cdkVcInfo

Verfasst: Sonntag 10. Januar 2010, 14:26
von Mourice
Hallo,

es kann bestimmt keiner brauchen ...

Gruss

Re: cdkVcInfo

Verfasst: Sonntag 10. Januar 2010, 15:30
von Barf
Danke Mourice, das klärt wohl einiges... :wink:
Mourice hat geschrieben:vielleicht kann es ja jemand brauchen ...
naja...

Re: cdkVcInfo

Verfasst: Sonntag 10. Januar 2010, 15:33
von dbt

Code: Alles auswählen

: release_type == 4 ? "The Greatest"
: release_type == 5 ? "Super Shot"
: release_type == 6 ? "Batman Edition"
:lol:

Re: cdkVcInfo

Verfasst: Sonntag 10. Januar 2010, 21:36
von Mourice
Barf hat geschrieben:Danke Mourice, das klärt wohl einiges... :wink:
Ja bitte ? Muss ich mir etwas vorwerfen ?
Barf hat geschrieben:
Mourice hat geschrieben:vielleicht kann es ja jemand brauchen ...
naja...
Der Text sagt es doch schon ... vieleicht ...

Was spricht dagegen, dass die Experten einen Anfänger-Vorschlag zu einem "Experten-Patch" machen ?

Gruss

Re: cdkVcInfo

Verfasst: Sonntag 10. Januar 2010, 21:52
von Mourice
dbt hat geschrieben:

Code: Alles auswählen

: release_type == 4 ? "The Greatest"
: release_type == 5 ? "Super Shot"
: release_type == 6 ? "Batman Edition"
:lol:
siehste, ich habe das schon logisch aufgebaut.

: release_type == 7 ? "DBT Edition"

wäre dann "Die Beste Thilo"-Edition :D

Gruss

Re: cdkVcInfo

Verfasst: Sonntag 10. Januar 2010, 21:56
von dbt
Nö, ich hab schon meine Editionen, aber ich finds nur lustig wie man auf
Batman
kommt. :wink:
Edit: Mir fällt aber noch eine ein.....

Re: cdkVcInfo

Verfasst: Sonntag 10. Januar 2010, 22:03
von Mourice
dbt hat geschrieben:Nö, ich hab schon meine Editionen, aber ich finds nur lustig wie man auf
Batman
kommt. :wink:
Edit: Mir fällt aber noch eine ein.....
Liegt wohl daran, wie mein Image heisst und welches Start-Bild beim Booten kommt ...

Aber für die DBT-Edition würde ich mir natürlich auch ein entsprechendes Boot-Logo einfallen lassen.
Dass Windows-Teil ist ja nun wirklich nicht der Renner.
Ganz davon abgesehen, dass mit dem Standard-Start-Logo ja nun wirklich alle nur erdenklichen Copyrights verletzt werden.

Gruss

Re: cdkVcInfo

Verfasst: Sonntag 10. Januar 2010, 22:07
von dbt
Ich glaube du verwechselst da irgendwas, mein Bootlogo ist Eigenbau und das hat nix mit Windows zu tun!

Re: cdkVcInfo

Verfasst: Sonntag 10. Januar 2010, 22:14
von Mourice
Ich meine das Standard-Boot-Logo. Ich kenne Dein Image doch garnicht.

Auch die LCD-Boot-Logos von NG zu nehmen ....

Also nicht auf den Schlips getreten fühlen.

Gruss

Re: cdkVcInfo

Verfasst: Sonntag 10. Januar 2010, 22:25
von dbt
Da musst du mal DietmarW fragen wie das mit den Bootlogos ist, im CVS gibts jedenfalls keine, falls du dass meinst.
Und das NG LCD-was du meinst hat nix mit dem zu tun was du denkst, die Logos sind schon so seit über 6 Jahren im CVS und wurden von den Projekt Gründern, wills mal so sagen, "entwickelt". Sollten die woanders vesehentlich namentliche "Verwirrungen" hervorrufen, wäre das etwas unpassend und nicht beabsichtigt.

Re: cdkVcInfo

Verfasst: Sonntag 10. Januar 2010, 22:28
von Mourice
Dann soll es auch gut sein.

War mal wieder einer meiner schwachsinnigen Vorschläge.

Aber das kennt Ihr ja. Nicht böse sein.

Gruss

Re: cdkVcInfo

Verfasst: Montag 11. Januar 2010, 19:57
von bazi98
Mourice hat geschrieben:Hallo,

es kann bestimmt keiner brauchen ...

Gruss
Doch ich :wink:

Wollte mich heute dran begeben und ..... gelöscht :(

Evtl. bist Du so nett und postet den Inhalt deiner cdkVcInfo.cpp nochmal, finde die Darstellung mit den Netzwerkdaten gut.

Gruss
bazi98

Re: cdkVcInfo

Verfasst: Montag 11. Januar 2010, 20:24
von bazi98
GetAway hat geschrieben:Hi, Aufgrund der Tatsache das es wohl keine Quellen zu sbimageinfo gibt...
In den tiefen des Internet gefunden.

Code: Alles auswählen

#include "sbimgnfo.h"
#include <string>

#define PACKAGE 	"sbimgnfo"
#define VERSION 	"1.0"

#define char_delay_usec 500

int main(int argc, char *argv[]) 
{  

	switch (fork()) {
		case -1:
			return -1;
	
		case 0:
			break;
	
		default:
			return 0;
	}

	if (setsid() < 0) {
		perror("[sbimgnfo] error setsid");
		return 1;
	}
		
	printf("%s - shows image information on virtual console, v%s\n", argv[0], VERSION);
	printf("\t\tby Wahnfried, fernsehass, ctx, limette, scp\n\n");

	char buf[200] = "";
	char rel[10] = "";
	char imageversion[4] = "";
	char imagesubver[4] = "";
	char jahr[5] = "2005";
	char monat[3] = "01";
	char tag[3] = "31";
	char stunde[3] = "16";
	char minute[3] = "00";
	char ersteller[20] = "keine Angabe";
	char adresse[20] = "127.0.0.1";
	char broadcast[20] = "127.0.0.1";
	char gateway[20] = "127.0.0.1";
	char netmask[20] = "127.0.0.1";
	char nameserver[20] = "127.0.0.1";
	char gui[20] = "Neutrino";
	int ch;
	int m = 0;
	FILE *out;
	FILE *fb;
	FILE *conf;
	
			FILE* fv = fopen(".version", "r");
			if(fv) 
				{
				while(fgets(buf, 120, fv)!=NULL) 
					{
					sscanf(buf, "version=%1s%1s%2s%4s%2s%2s%2s%2s", (char *) &rel,&imageversion,&imagesubver,&jahr,&monat,&tag,&stunde,&minute);
					sscanf(buf, "comment=Erstellt von %s"	, (char *) &ersteller);
					}
				fclose(fv);
				}
			
			FILE* fn = fopen("/var/etc/network/interfaces", "r");
			if(fn) 
				{
				while(fgets(buf, 120, fn)!=NULL) 
					{
					sscanf(buf, "address %s"				, (char *) &adresse);
					sscanf(buf, "broadcast %s"				, (char *) &broadcast);
					sscanf(buf, "gateway %s"				, (char *) &gateway);
					sscanf(buf, "netmask %s"				, (char *) &netmask);
					}
				fclose(fn);
				}
				
			FILE* fr = fopen("/var/etc/resolv.conf", "r");
			if(fr) 
				{
				while(fgets(buf, 120, fr)!=NULL) 
					{
					sscanf(buf, "nameserver %s"				, (char *) &nameserver);
					}
				fclose(fr);
				}
				
			if (strcmp(rel, "0") == 0)
					{
					sprintf(rel,"Release");
					}
					
			if (strcmp(rel, "1") == 0)
					{
					sprintf(rel,"Intern");
					}
			
			if (strcmp(rel, "2") == 0)
					{
					sprintf(rel,"Test");
					}
			

			out = fopen("/var/tmp/test.info", "w");
			fprintf(out, "\n\n\n\n\n\n\n\t\t\t-------- Image Infos --------\n\n");
			fprintf(out, "\t\t\t      Image Version : %s.%s\n", imageversion,imagesubver);
			fprintf(out, "\t\t\t      Image Typ     : %s\n", rel);
			fprintf(out, "\t\t\t  Erstelldatum      : %s.%s.%s\n", tag,monat,jahr);
			fprintf(out, "\t\t\t  Erstelluhrzeit    : %s:%s\n", stunde,minute);
			fprintf(out, "\t\t\t  Erstellt von      : %s\n", ersteller);
			fprintf(out, "\n\t\t\t  Die Netzwerkeinstellungen sind:\n");
			fprintf(out, "\t\t\t  IP Adresse        : %s\n", adresse);
			fprintf(out, "\t\t\t  Netzmaske         : %s\n", netmask);
			fprintf(out, "\t\t\t  Broadcast         : %s\n", broadcast);
			fprintf(out, "\t\t\t  Gateway           : %s\n", gateway);
			fprintf(out, "\t\t\t  Nameserver        : %s\n", nameserver);
			fprintf(out, "\n\n\t\t\t\tLade %s......", gui);
			fclose (out);

	if((fb = fopen( "/dev/vc/1", "w" )) != NULL ) 
		{
		if((conf = fopen( "/var/tmp/test.info", "r" )) == NULL )
			{									// dann
			fprintf(fb, "\n\n\n\n\n\n\n\t\t\tKeine Image Info gefunden!\n");	//gebe aus
			}
		else 										//ansonsten
			{
			ch = fgetc(conf);							//hole zeichen aus der config
			while(!feof(conf))  							//frage ob dateiende da ist ??
				{
				while (m<8)
				{
		 	   	fputc(ch, fb);							//schreibe zeichen in /dev/vc/1
		    		ch = fgetc(conf);						//hole zeichen aus der config
		    		fflush(fb);							//speichere in datei /dev/vc/1
		    		m = m + 1;
				}
				m = 0;
				usleep(char_delay_usec * 8);							//pause 4000 millionstel sek.
				}
			fclose(conf);			
			}
		fclose(fb);									//schliesse /dev/vc/1
		system("rm /var/tmp/test.info");
		}
	return 0;
}

Code: Alles auswählen

#include <errno.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
Jedoch unterscheidet sich der Aufbau dieser Ur-Version doch erheblich vom Aufbau der im cvs vorhanden cdkvcinfo.

Re: cdkVcInfo

Verfasst: Montag 11. Januar 2010, 21:12
von GetAway
Ich habe per Mail bei rich angefragt, ob er die Quellen zum modifizierten cdkvcinfo,
das im KW läuft, zur weiteren Benutzung freigibt. Ich habe die Quellen bekommen
und werde sie noch ein wenig überarbeiten. Besteht Interesse an einer Ausgabe
wahlweise in englisch oder deutsch, dann würde ich mich daran mal versuchen?

Re: cdkVcInfo

Verfasst: Montag 11. Januar 2010, 21:31
von rhabarber1848
Kleiner feature request:
Schnellere Bildschirmausgabe ohne sichtbare Verzögerung - gerne optional - cdkVcInfo ist mir zu langsam.

Re: cdkVcInfo

Verfasst: Montag 11. Januar 2010, 21:56
von bazi98
GetAway hat geschrieben:Ich habe per Mail bei rich angefragt, ob er die Quellen zum modifizierten cdkvcinfo,
das im KW läuft, zur weiteren Benutzung freigibt. Ich habe die Quellen bekommen
und werde sie noch ein wenig überarbeiten. Besteht Interesse an einer Ausgabe
wahlweise in englisch oder deutsch, dann würde ich mich daran mal versuchen?
Da ich gerne diese zusätzlichen Anzeigen haben würde, besteht von meiner Seite natürlich Interesse, für mich ist es primär nicht wichtig das Ich die Anzeige auch in Englisch haben kann.

Will nur selber bauen können und weg vom "Klauen"

Danke und Gruss
bazi98

Re: cdkVcInfo

Verfasst: Dienstag 12. Januar 2010, 19:54
von Barf
Hier gibt es möglicherweise ein Klärungsbedarf. Ein Gerücht war entstanden, dass es irgendwelche "super-cdkvcinfo" geben sollte. Indem Mourice die Quellen gepostet hat, hat sich diese Frage geklärt: Es handelt sich um eine ganz trivale (am mindestens für ein Programmierer) Erweiterung des cdkVcInfo.cpp. Dafür habe ich ihm gedankt. Dass dies ein schlechtes Gewissen bei ihm ausgelöst hat, muss ich nicht kommentieren.

Dann zu bazi98s Archeologiefund: Das Programm hat eine Zeit in binary-only Form mit geheime Quellen ("nonpublic") zirkuliert. Dann hat PT-1 die quelle gefunden. Ich habe die (IMHO recht schlechte) Code umgeschrieben und eingecheckt. Und sehe da: Der Fund seht wirklich so aus, als wurde er von den nicht umgeschrieben Code abstammen!! :lol: Eine Datei zu erzeugen (/var/tmp/test.info), wieder einzulesen, und danach (mit system("rm ...")!!) wieder zu löschen -- das ist dilettantisch! :cry:

Inhaltlich: Beim Booten ist nicht die richtige Zeitpunkt, diverse Information über den Image dem User mitzuteilen. IMHO gibt es zwei umsetzbare Vorschläge hier:
rhabarber1848 hat geschrieben:Schnellere Bildschirmausgabe ohne sichtbare Verzögerung - gerne optional - cdkVcInfo ist mir zu langsam.
z.B.die Verzögerung als Kommandozeilenparameter,
Barf hat geschrieben:Nahe liegend wäre ein usergeschriebenes shellskript (falls vorhanden) auszuführen (popen), und stdout auszugeben.
Dadurch kann der Benutzer (auch in fertigen Image) selbst das Verhältniss vervollständigen, und seine eigene Information (oder Grüße, oder...) ausgeben nach eigenes Geschmack.

Re: cdkVcInfo

Verfasst: Dienstag 12. Januar 2010, 23:06
von Mourice
Barf hat geschrieben:Hier gibt es möglicherweise ein Klärungsbedarf. Ein Gerücht war entstanden, dass es irgendwelche "super-cdkvcinfo" geben sollte. Indem Mourice die Quellen gepostet hat, hat sich diese Frage geklärt: Es handelt sich um eine ganz trivale (am mindestens für ein Programmierer) Erweiterung des cdkVcInfo.cpp. Dafür habe ich ihm gedankt. Dass dies ein schlechtes Gewissen bei ihm ausgelöst hat, muss ich nicht kommentieren.

Dann zu bazi98s Archeologiefund: Das Programm hat eine Zeit in binary-only Form mit geheime Quellen ("nonpublic") zirkuliert. Dann hat PT-1 die quelle gefunden. Ich habe die (IMHO recht schlechte) Code umgeschrieben und eingecheckt. Und sehe da: Der Fund seht wirklich so aus, als wurde er von den nicht umgeschrieben Code abstammen!! :lol: Eine Datei zu erzeugen (/var/tmp/test.info), wieder einzulesen, und danach (mit system("rm ...")!!) wieder zu löschen -- das ist dilettantisch! :cry:

Inhaltlich: Beim Booten ist nicht die richtige Zeitpunkt, diverse Information über den Image dem User mitzuteilen. IMHO gibt es zwei umsetzbare Vorschläge hier:
rhabarber1848 hat geschrieben:Schnellere Bildschirmausgabe ohne sichtbare Verzögerung - gerne optional - cdkVcInfo ist mir zu langsam.
z.B.die Verzögerung als Kommandozeilenparameter,
Barf hat geschrieben:Nahe liegend wäre ein usergeschriebenes shellskript (falls vorhanden) auszuführen (popen), und stdout auszugeben.
Dadurch kann der Benutzer (auch in fertigen Image) selbst das Verhältniss vervollständigen, und seine eigene Information (oder Grüße, oder...) ausgeben nach eigenes Geschmack.
Hi,

für diesen überheblichen Schwachsinn mache ich mir nicht die Mühe, richtig zu zitieren.

Nicht mein "schlechtes" Gewissen hat mich dazu gebracht, mein "eigenes" geistiges Eigentum wieder zu löschen.

Sondern die Einstellung gewisser selbsternannter "Über-Götter".

MfG

PS.: @Barf: Sollte das "ursprüngliche" cdkVcInfo.cpp tatsächlich von Dir stammen .... dann hast Du noch viel zu lernen

Re: cdkVcInfo

Verfasst: Mittwoch 13. Januar 2010, 00:04
von trulli
@Mourice

Mach Dir nichts daraus.

...edit:
Text gelöscht, wegen Wiederholung solcher Aktionen, Verwarnung erteilt.
mfg. Admin

Re: cdkVcInfo

Verfasst: Mittwoch 13. Januar 2010, 08:56
von seife
Barf hat geschrieben:Eine Datei zu erzeugen (/var/tmp/test.info), wieder einzulesen, und danach (mit system("rm ...")!!) wieder zu löschen
Ja, das hat mich doch auch ungläubig den Kopf schütteln lassen... ;)

...und meinen Vorurteile gegenüber "closed Source" wieder mal bestätigt...

=> Code, der taugt, den kann man auch zeigen. Es gibt nur einen Grund, Code nicht zu veröffentlichen, und das ist dann, wenn er zu schlecht / peinlich ist.

Re: cdkVcInfo

Verfasst: Mittwoch 13. Januar 2010, 09:19
von PT-1
Barf hat geschrieben:Dann hat PT-1 die quelle gefunden.
Habe die Links mal angepasst ;-)

Re: cdkVcInfo

Verfasst: Mittwoch 13. Januar 2010, 13:17
von GetAway
GetAway hat geschrieben:Ich habe per Mail bei rich angefragt, ob er die Quellen zum modifizierten cdkvcinfo,
das im KW läuft, zur weiteren Benutzung freigibt. Ich habe die Quellen bekommen
und werde sie noch ein wenig überarbeiten. Besteht Interesse an einer Ausgabe
wahlweise in englisch oder deutsch, dann würde ich mich daran mal versuchen?
Wie gesagt habe ich die Sourcen noch eine wenig überarbeitet.
Dabei ist dann folgendes raus gekommen:

Code: Alles auswählen

/var # cdkVcInfo -h
cdkVcInfo - bootinfo on screen, v1.6
Usage: cdkVcInfo [-d n] [-g] [-n name] [-h]

Possible options:
        -h              print this usage information
        -g              print bootinfo in german
        -d n            delay in microseconds >500 (e.g. -d 2000)
        -n name         special output (e.g. -d Neutrino)

Code: Alles auswählen

                   ---------- Image Information ----------

                    Image Version   : 1.0.0
                    Image Typ       : Release

                    Datum           : 07.01.2010
                    Uhrzeit         : 15:00
                    Erstellt von    : GetAway-Yadd
                    Image Name      : -- unbekannt --
                    Homepage        : http://www.yxz.com

                    -------- Netzwerkeinstellungen --------

                    Netzwerk Status : aktiviert
                    DHCP Status     : deaktiviert

                    IP Adresse      : 192.168.178.5
                    Netzmaske       : 255.255.255.0
                    Broadcast       : 192.168.178.255
                    Gateway         : 192.168.178.1
                    Nameserver      : 192.168.178.1


                                Lade System ....
Viel Spaß damit!
Danke auch nochmal an rich.

Edit: Achso, eventuell muss noch folgendes wieder rein, für Leute die mit gcc 4.3.2 kompilieren

Code: Alles auswählen

#include <string.h>
#include <stdlib.h>
Erledigt:
edit2:
Patch nochmals aktualisiert: advanced_cdkVcInfo.diff

Re: cdkVcInfo

Verfasst: Sonntag 17. Januar 2010, 22:20
von rhabarber1848
GetAway hat geschrieben:

Code: Alles auswählen

/var # cdkVcInfo -h
cdkVcInfo - bootinfo on screen, v1.6
Kleiner Verbesserungsvorschlag zur Versionsnummer, kopiert aus dvbsub:

Code: Alles auswählen

--- apps/tuxbox/tools/cdkVcInfo/cdkVcInfo.cpp       2010-01-17 22:12:04.000000000 +0100
+++ apps/tuxbox/tools/cdkVcInfo/cdkVcInfo.cpp 2010-01-17 22:14:19.000000000 +0100
@@ -24,7 +24,6 @@
 #include <string.h>
 #include <stdlib.h>

-#define VER "1.6"
 #define CONSOLE        "/dev/vc/0"
 #define VERSION_FILE "/.version"
 #define INTERFACES_FILE "/var/etc/network/interfaces"
@@ -101,6 +100,8 @@
        char nameserver[BUFFERSIZE];
        char gateway[BUFFERSIZE];
        char null[BUFFERSIZE] = "";
+       char cvs_revision[] = "$Revision: $";
+       sscanf(cvs_revision, "%*s %s", versioninfo);

        while ((opt = getopt(argc, argv, "hgd:n:")) != -1)
        {
@@ -109,7 +110,7 @@
                        case 'h':
                                        if (argc < 3)
                                        {
-                                       printf("cdkVcInfo - bootinfo on screen, v%s\n", VER);
+                                       printf("cdkVcInfo - bootinfo on screen, v%s\n", versioninfo);
                                        printf("Usage: cdkVcInfo [-d n] [-g] [-n name] [-h]\n");
                                        printf("\nPossible options:\n");
                                        printf("\t-h\t\tprint this usage information\n");
Das wird im Yadd und jffs2-only-Images nicht funktionieren:

Code: Alles auswählen

+#define INTERFACES_FILE "/var/etc/network/interfaces"
+#define NAMENSSERVER_FILE "/var/etc/resolv.conf"
Einfach "/var" weglassen, in /etc liegen links.