Menüfür IDE-Configuration

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
StevenSch
Einsteiger
Einsteiger
Beiträge: 105
Registriert: Mittwoch 20. Oktober 2004, 12:41

Beitrag von StevenSch »

Ich bastle nun schon 2 Tage am IDE-Menü und stosse als c++ Neuling an meine Grenzen:
Ich will das Filesystem für IDE im IDE-Menü auswählbar machen, also entweder ext2, ext3 oder xfs. Das Ganze will ich wie schon weiter oben geschrieben über flags im /var/etc realisieren. Die Auswahl soll aber nicht über den bekannten ein/aus-Schalter erfolgen, sondern über ein Auswahlmenü wie bei der "Expert"Boot-Console". Kann mir da jemand helfen wie ich das realisieren kann?

Wo wird die swap-Partition in die fstab eingefügt? In cdk/make/flashable-dirs.mk hab ichs nicht gefunden.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

auswahlmenü mit den filesystem finde ich nicht nötig, da du ja bei wechsel von ext2/3 auf xfs eh deine platte neu formatieren musst.

so wie es im jtg ist, ist es perfekt.
ide unterstützung ja/nein

ansonsten kannst du schön ansehen wie es gemacht wird in dem einchecken von der lautstärkekalkenverschiebung ins cvs neutrino.cpp.
ein codeschnippsel davon

Code: Alles auswählen

#define OSD_STATUS_OPTIONS_COUNT 3
const CMenuOptionChooser::keyval OSD_STATUS_OPTIONS[OSD_STATUS_OPTIONS_COUNT] =
{
	{ 0, LOCALE_COLORMENU_OSD_NORMAL },
	{ 1, LOCALE_COLORMENU_OSD_BOTTOM },
	{ 2, LOCALE_COLORMENU_OSD_OFF    }
};
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Ich poste morgen mal etwas weil dir Jungs in ENgland da gerade dran sind zu basteln !
StevenSch
Einsteiger
Einsteiger
Beiträge: 105
Registriert: Mittwoch 20. Oktober 2004, 12:41

Beitrag von StevenSch »

mb405 hat geschrieben:auswahlmenü mit den filesystem finde ich nicht nötig, da du ja bei wechsel von ext2/3 auf xfs eh deine platte neu formatieren musst.
Ich will aber nicht jedes mal wenn ich ein neues Image einspiele, die Platte neu formatieren. Daher sollte man wählen können wie die Platte bereits formatiert ist.
mb405 hat geschrieben:ansonsten kannst du schön ansehen wie es gemacht wird in dem einchecken von der lautstärkekalkenverschiebung ins cvs neutrino.cpp.
ein codeschnippsel davon

Code: Alles auswählen

#define OSD_STATUS_OPTIONS_COUNT 3
const CMenuOptionChooser::keyval OSD_STATUS_OPTIONS[OSD_STATUS_OPTIONS_COUNT] =
{
	{ 0, LOCALE_COLORMENU_OSD_NORMAL },
	{ 1, LOCALE_COLORMENU_OSD_BOTTOM },
	{ 2, LOCALE_COLORMENU_OSD_OFF    }
};
Genau nach dieser Methode wollte ich das auch machen, der Menueintrag dafür ist fertig.

Code: Alles auswählen

#define IDE_SETTING_FILESYSTEM_OPTION_COUNT 3
const CMenuOptionChooser::keyval IDE_SETTING_FILESYSTEM_OPTIONS[IDE_SETTING_FILESYSTEM_OPTION_COUNT] =
{
	{ 0, LOCALE_OPTIONS_EXT2   },
	{ 1, LOCALE_OPTIONS_EXT3   },
	{ 2, LOCALE_OPTIONS_XFS    }
};
.
.
driverSettingsIDE.addItem(new CMenuOptionChooser(LOCALE_DRIVERSETTINGS_IDEMENU_FS, &g_settings.ide_fs_switch, IDE_SETTING_FILESYSTEM_OPTIONS, IDE_SETTINGS_FILESYSTEM_OPTION_COUNT, true, ConsoleDestinationChanger));
Mir fehlt aber das KnowHow die Funktion "g_settings.ide_fs_switch" zu schreiben. In der muss geprüft werden:
- ist ein flag da, wenn ja welches?
- wurde die Option geändert; muss das alte gelöscht, das neue geschrieben werden.

Alternativ dazu habe ich mir überlegt das man eine Datei ide.conf erstellen könnte in der alle Einstellenungen (Swap/Filesystem/HDD-Cache ...) hintelegt werden. So ähnlich wie die boot.conf.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

@SteveSch

so wie ich das sehe habe die Jungs aus England das fuer SquashFS und Jffs geloest.

Ich poste spaeter ;-)
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

tach auch

ich habe das so gemacht:

Code: Alles auswählen

#define OPTIONS_IDE_FS_COUNT 3
const CMenuOptionChooser::keyval OPTIONS_IDE_FS[OPTIONS_IDE_FS_COUNT] =
{
	{ 0, LOCALE_HDDSETTINGS_HDD_FS_XFS  },
	{ 1, LOCALE_HDDSETTINGS_HDD_FS_EXT3  },
	{ 2, LOCALE_HDDSETTINGS_HDD_FS_EXT2 }
};


void IdeConfWidget::getMountpoint(int dev)
{
	FILE *f=fopen("/proc/mounts", "rb");
	if (!f)
		return;
	
	int c=!!(dev&1);
	char line[1024];
	char path[30];
	sprintf(path, "/dev/ide/host0/bus0/target%d/lun0/",c);
	int pathsize=sizeof(path);
	
	while (1)
	{
		if (!fgets(line, 1024, f))
		{
			sprintf(mountpoint, "/hdd");
			printf("[neutrino ide] /proc/mounts missing or mountpoint not found\n");
			printf("[neutrino ide] Set mountpoint to default: %s\n", mountpoint );
			break;
		}
		if (!strncmp(line, path, pathsize ) )
		{
			char dummy[30];
			sscanf(line, "%s %s %s", (char*) &dummy, (char*) &mountpoint, (char*) &dummy);
			fclose(f);
			return;
		}
	}
}



bool IdeConfWidget::Mounting()
{
	std::string 	cmdmount  = ( (g_settings.hddfs==0) ? "mount -t xfs" : ( (g_settings.hddfs == 1 )  ? "mount -t ext3" : "mount -t ext2") );
			cmdmount += " ";
			cmdmount += ( (g_settings.swap==0) ? HDDPART1 : HDDPART2 );
			cmdmount += " ";
			cmdmount += mountpoint;

	int res = system (cmdmount.c_str() );
	if ( res !=0)
		printf("[neutrino ide] mount %s failed\n", mountpoint);
		
	if (g_settings.swap != 0)
	{
		res = system(SWAPON);
		if ( res !=0)
			printf("[neutrino ide] swapon failed\n");
	}
	if (g_settings.samba == 1)
	{
		system("/bin/nmbd");
		system("/bin/smbd -D -s /etc/smb.conf");
	}
	
	return res;
}

bool IdeConfWidget::Umounting()
{
	int res = umount(mountpoint);
	if (res != 0)
	{
		res = umount(mountpoint);
		if (res != 0)
			printf("[neutrino ide] cannot umount: %s\n", mountpoint);
	}
	
	if (g_settings.swap != 0)
	{
		res = system(SWAPOFF);
		if (res !=0 )
			printf("[neutrino ide] swapoff failed\n");
	}
	
	if (g_settings.samba == 1)
		system("killall -9 smbd nmbd");
	
	// rmmod nfs deamon ??? 
	//if (g_settings.nfs == 1)
	//	system("killall -9 nfsd");

	return res;
}



		/*#######################*/
		/*  filesystem marker    */
		/*#######################*/
		if(access("/var/etc/.ext3", R_OK) == 0)
			unlink("/var/etc/.ext3");
		if(access("/var/etc/.ext2", R_OK) == 0)
			unlink("/var/etc/.ext2");
		if(access("/var/etc/.xfs", R_OK) == 0)
			unlink("/var/etc/.xfs");

if (g_settings.hddfs == 0)
		{
			markerfile = fopen("/var/etc/.xfs", "w");
			fclose(markerfile);
		}
		if (g_settings.hddfs == 1)
		{
			markerfile = fopen("/var/etc/.ext3", "w");
			fclose(markerfile);
		}
		if (g_settings.hddfs == 2)
		{
			markerfile = fopen("/var/etc/.ext2", "w");
			fclose(markerfile);
		}


scIDE->addItem(new CMenuOptionChooser(LOCALE_HDDSETTINGS_HDD_FS, &g_settings.hddfs, OPTIONS_IDE_FS, OPTIONS_IDE_FS_COUNT, true ));
Nico 77
Semiprofi
Semiprofi
Beiträge: 1383
Registriert: Freitag 18. April 2003, 15:12

Beitrag von Nico 77 »

Solltet euch vielleicht mal auf einen Standart einigen, ext oder xfs.
Enigma macht es vor...

Ps: NTFS ist nun auf Linux auch möglich.
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

Nico 77 hat geschrieben:Solltet euch vielleicht mal auf einen Standart einigen, ext oder xfs.
Enigma macht es vor...

Ps: NTFS ist nun auf Linux auch möglich.
kann man machen, muß man aber nicht. die freie auswahl für den user hat auch seine vorteile. wenn man sich das forum anschaut, welche einstellung für welche box die beste ist, variiert das ja genauso, wie alle anderen system settings.

ps: für ntfs kannst du mal einen overdrive prozessor entwerfen ;-)
jmittelst
Tuxboxer
Tuxboxer
Beiträge: 6044
Registriert: Montag 17. November 2003, 06:48

Beitrag von jmittelst »

Innuendo hat geschrieben:...
ps: für ntfs kannst du mal einen overdrive prozessor entwerfen ;-)
Hmmm.... bitte gleich mit ein wenig Support für einen Zoran Vaddis - dann kann man sich die Sache mit VLC auch nahezu komplett sparen ;)

cu
Jens
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

8)

werde in kürze riker ein IDE Menü update schicken - vlt macht er dann nochmal einen testsnap.

innu
StevenSch
Einsteiger
Einsteiger
Beiträge: 105
Registriert: Mittwoch 20. Oktober 2004, 12:41

Beitrag von StevenSch »

Nico 77 hat geschrieben:Solltet euch vielleicht mal auf einen Standart einigen, ext oder xfs.
Enigma macht es vor...

Ps: NTFS ist nun auf Linux auch möglich.
Wichtiger wäre noch ob die IDE-Settings standartmäßig in einer z.B. ide.conf gespechert werden (das könnten dann ale GUIs nutzen, wenn sie wollen) - wie von den UK-Leuten vorgeschlagen oder weiterhin per /var/etc/.swap, .ext2 etc.
Zumindet sollte man gemeinsam in eine Richtung entwickeln.
Für mich persönlich ist die conf-Version die sauberere Lösung.
Andererseits ist die Entwicklung von Innuendo schon recht weit vorgeschritten...
Z80
Erleuchteter
Erleuchteter
Beiträge: 710
Registriert: Dienstag 3. September 2002, 12:54

Beitrag von Z80 »

Innuendo hat geschrieben:
Nico 77 hat geschrieben:Solltet euch vielleicht mal auf einen Standart einigen, ext oder xfs.
Enigma macht es vor...

Ps: NTFS ist nun auf Linux auch möglich.
kann man machen, muß man aber nicht. die freie auswahl für den user hat auch seine vorteile.
genau, bitte nicht ein dateisystem zugunsten eines anderen rauswerfen!

p.s. war enigma jemals ein (gutes) vorbild für neutrino? :D *duckundweg*
Gorcon
Tuxboxer
Tuxboxer
Beiträge: 5873
Registriert: Samstag 23. Februar 2002, 22:46

Beitrag von Gorcon »

Nico 77 hat geschrieben:Solltet euch vielleicht mal auf einen Standart einigen, ext oder xfs.
Enigma macht es vor...

Ps: NTFS ist nun auf Linux auch möglich.
Keine gute Idee. Denn wenn man XFS nutzen will muss man die Platte sofern man sie am PC auslesen will eh dort formatieren da sie sonst nicht lesbar ist.
Daher kann es sinvoll sein lieber ext3 zu nehmen.

Ext3 hat aber den Nachteil etwas langsamer und CPU lastiger zu sein.

Gruß Gorcon
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

meine meinung
warum das fest in code "verdrahten" ? die scriptlösungen sind dafür besser, da schneller angepasst werden kann. nicht jeder kann kompilieren. einen editor hat jeder auf seinen system. auf die 2 getouchten dateien mehr kommt es nicht drauf an. eine ide.config dafür ist zwar nicht schlecht, aber was soll da alles rein ??

swap
filesystem
hdd spindown zeit
irq(?)

mehr kann ich nicht finden, was wichtig ist.
new.life
Erleuchteter
Erleuchteter
Beiträge: 797
Registriert: Sonntag 19. Februar 2006, 01:17

Beitrag von new.life »

Z80 hat geschrieben:genau, bitte nicht ein dateisystem zugunsten eines anderen rauswerfen!
..dem kann ich im Moment nur zustimmen mit ganz grossem ABER: die Qual der Wahl zwischen 3 Möglichkeiten ist nicht besonders prickelnd, oder? Die theoretischen Vor und Nachteile sind bekannt, aber wie stellt sich das in der Praxis mit dem IDE2-Interface und der schwachen oft überlasteten Box-CPU dar?
Erfahrungen gibt es ja inzwischen und wenn ich mir die vielen diesbezüglichen Threads dazu(Performance/korruptes Filesystem/usw.) durchlese, denke ich dass es dringend eine kompetente, hier allgemein akzeptierte Empfehlung geben sollte...und die koennte/sollte imo spaeter in der Beschraenkung der komfortablen Unterstützung, nur eines FS liegen. Die Box soll doch in Verbindung mit dem IDE2-Interface ein digitaler VDR sein und keine atomschlagsichere Datenablage die auch noch mit groesstem Komfort administrierbar ist, oder?

just my 2c
AudioSlyer
Erleuchteter
Erleuchteter
Beiträge: 450
Registriert: Sonntag 28. Juli 2002, 01:18

Beitrag von AudioSlyer »

Könnt ihr das nicht in einem anderen Forum bequatschen? Hier soll der Entwurf unter die Lupe genommen werden und nicht was ist besser xfs oder ext!
StevenSch
Einsteiger
Einsteiger
Beiträge: 105
Registriert: Mittwoch 20. Oktober 2004, 12:41

Beitrag von StevenSch »

Nein. Der Entwurf dafür ist ein anderer Thread: http://tuxbox-forum.dreambox-fan.de/for ... hp?t=44948
Hier kann/sollte es also auch um Grundsätzliches gehen.
new.life
Erleuchteter
Erleuchteter
Beiträge: 797
Registriert: Sonntag 19. Februar 2006, 01:17

Beitrag von new.life »

AudioSlyer hat geschrieben:Könnt ihr das nicht in einem anderen Forum bequatschen? Hier soll der Entwurf unter die Lupe genommen werden und nicht was ist besser xfs oder ext!
..ja, Du hast Recht...kann der Admin/Mod ja nach Laberbacke verschieben. Der hier angedachte Entwurf wuerde sich allerdings ändern/vereinfachen wenn man sich für ein FS entscheiden könnte.
StevenSch
Einsteiger
Einsteiger
Beiträge: 105
Registriert: Mittwoch 20. Oktober 2004, 12:41

Beitrag von StevenSch »

Ein Auswahlmenü ist m.M. nach aber auch unter anderem dafür gedacht Auswahlmöglichkeiten zu schaffen ...