[abgeschlossen] Entwurf: IDE Menü
-
- Einsteiger
- Beiträge: 281
- Registriert: Mittwoch 8. Dezember 2004, 21:45
[abgeschlossen] Entwurf: IDE Menü
Tach ihrs,
hier mein Entwurf für ein IDE Menü:
edit: veraltete version gelöscht
hier mein Entwurf für ein IDE Menü:
edit: veraltete version gelöscht
Zuletzt geändert von Innuendo am Montag 26. März 2007, 08:52, insgesamt 1-mal geändert.
-
- Einsteiger
- Beiträge: 281
- Registriert: Mittwoch 8. Dezember 2004, 21:45
-
- Einsteiger
- Beiträge: 281
- Registriert: Mittwoch 8. Dezember 2004, 21:45
-
- Einsteiger
- Beiträge: 281
- Registriert: Mittwoch 8. Dezember 2004, 21:45
So - der Krams war in Riker's Testsnap.
Es wäre nett, wenn Veränderungen/Erweiterungen/Korrekturen auch zurückkommen.
beispiel formating.start
beispiel formating.end
regards
Innu
Es wäre nett, wenn Veränderungen/Erweiterungen/Korrekturen auch zurückkommen.
beispiel formating.start
Code: Alles auswählen
#!/bin/sh
# HDD format start script
# here you may add something like backup or other task, eg
# tar -cvf hddbackup.tar ./hdd
exit 0
Code: Alles auswählen
#!/bin/sh
# HDD format end script
# here you may add tasks after hdd format
mkdir /hdd/movies
mkdir /hdd/pictures
mkdir /hdd/mp3
mkdir /hdd/epg
exit 0
Innu
-
- Einsteiger
- Beiträge: 105
- Registriert: Mittwoch 20. Oktober 2004, 12:41
Hallo,
habe die ide_setup.h und cpp nach neutrino/src/gui gelegt und die neutrino.cpp sowie die diversen locales und local.h files angepasst.
Fehlt hier noch ein Eintrag in der neutrino.h oder von wo kommt der folgende Fehler ?
habe die ide_setup.h und cpp nach neutrino/src/gui gelegt und die neutrino.cpp sowie die diversen locales und local.h files angepasst.
Fehlt hier noch ein Eintrag in der neutrino.h oder von wo kommt der folgende Fehler ?
neutrino.o(.text+0x44b0): In function `CNeutrinoApp::InitMainMenu(CMenuWidget&, CMenuWidget&, CMenuWidget&, CMenuWidget&, CMenuWidget&, CMenuWidget&, CMenuWidget&, CMenuWidget&, CMenuWidget&, CMenuWidget&, CMenuWidget&, CMenuWidget&, CMenuWidget&, CMenuWidget&, CMenuWidget&, CMenuWidget&, CMenuWidget&, CMenuWidget&)':
: undefined reference to `IdeConfWidget::IdeConfWidget()'
collect2: ld returned 1 exit status
make[4]: *** [neutrino] Fehler 1
make[4]: Leaving directory `/home/steven/tuxbox/tuxbox-cvs/apps/tuxbox/neutrino/src'
make[3]: *** [all-recursive] Fehler 1
make[3]: Leaving directory `/home/steven/tuxbox/tuxbox-cvs/apps/tuxbox/neutrino/src'
make[2]: *** [all-recursive] Fehler 1
make[2]: Leaving directory `/home/steven/tuxbox/tuxbox-cvs/apps/tuxbox/neutrino'
make[1]: *** [all] Fehler 2
make[1]: Leaving directory `/home/steven/tuxbox/tuxbox-cvs/apps/tuxbox/neutrino'
make: *** [/home/steven/tuxbox/dbox2/cdkflash/root-neutrino] Fehler 2
Zuletzt geändert von StevenSch am Dienstag 20. März 2007, 01:48, insgesamt 1-mal geändert.
-
- Tuxboxer
- Beiträge: 2614
- Registriert: Montag 20. Mai 2002, 10:49
- Image: JTG-Image [IDE] Version 2.4.4
- Image: (7025SS) Merlin
Da fehlt jetzt noch eine hddcheck.start und eine hddcheck.end.
Teste gerade einen Testsnap von Riker, in dem das HDD-Menü eingebaut ist. Der HDD-Check ging erst, als ich smbd und nmbd beendet habe, da diese noch auf der Platte liefen.
Beispieldatei hddcheck.start
Beispieldatei hddcheck.end
Ausserdem wäre es sinnvoll, nach der Überprüfung das Ergebnis des HDD-Checks anzuzeigen, damit man weiss, ob eventuell Fehler im Dateisystem der Festplatte vorliegen.
Greetz von DrStoned
Teste gerade einen Testsnap von Riker, in dem das HDD-Menü eingebaut ist. Der HDD-Check ging erst, als ich smbd und nmbd beendet habe, da diese noch auf der Platte liefen.
Beispieldatei hddcheck.start
Code: Alles auswählen
#!/bin/sh
# HDD-Check start script
# here you may add something like killing deamons and programs which are running from HDD
killall smbd
killall nmbd
exit 0
Code: Alles auswählen
#!/bin/sh
# HDD-Check end script
# here you may add tasks after hdd checking, for example restart deamons and programs, which are running from HDD
/hdd/bin/nmbd -D
/hdd/bin/smbd -D
exit 0
Greetz von DrStoned
-
- Erleuchteter
- Beiträge: 710
- Registriert: Dienstag 3. September 2002, 12:54
-
- Einsteiger
- Beiträge: 362
- Registriert: Mittwoch 14. Dezember 2005, 03:25
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
@Innuendo
ich hab die beiden gui dateien mal bisserl bearbeitet.kannst ja mal drüberschauen. getestet hab ich die nicht, da ich das manü nicht eingebaut habe.
edit rausgenommen, da was neues
ich werde mal versuchen die g.settings_ rauszubekommen, und das in eine eigene config zu packen.nicht, das es wieder in neutrino landet, wo du so schön den ganzen code dort rausgenommen hast. so stört der in neutrino.cpp nicht.
klasse arbeit
ich hab die beiden gui dateien mal bisserl bearbeitet.kannst ja mal drüberschauen. getestet hab ich die nicht, da ich das manü nicht eingebaut habe.
edit rausgenommen, da was neues
ich werde mal versuchen die g.settings_ rauszubekommen, und das in eine eigene config zu packen.nicht, das es wieder in neutrino landet, wo du so schön den ganzen code dort rausgenommen hast. so stört der in neutrino.cpp nicht.
klasse arbeit
Zuletzt geändert von mb405 am Dienstag 10. April 2007, 10:04, insgesamt 1-mal geändert.
-
- Interessierter
- Beiträge: 64
- Registriert: Mittwoch 26. April 2006, 09:44
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
so ich hab mal bisserl umgecodet.
in der ide_setup.cpp
ganz oben das rein
die funktion void IdeConfWidget::PaintSettings() hab ich zum einlesen der config missbraucht. da fehlen noch die default einstellungen.
die funktion bool IdeConfWidget::SaveSettings() speicher die config ab.
natürlich müsste der ganze code noch angepasst werden. und die config muss auch noch einen treffenden namen erhalten. ide.conf passt ja nicht so richtig.
in der ide_setup.cpp
ganz oben das rein
Code: Alles auswählen
#define IDECFG "/var/tuxbox/config/ide.conf"
Code: Alles auswählen
void IdeConfWidget::PaintSettings()
{
printf("Harddisk Menu 2006-12-08 Innuendo V0.10 \n");
//#############################################################################################################
printf(" modifiziert 2007-03-20 mb405 V0.01 \n");
FILE *ide_conf; //ide conf
char *read_puffer;
char line_buffer[256];
// open config
if(!(ide_conf = fopen(IDECFG, "r")))
{
printf("%s nicht gefunden. Benutze Voreinstellungen.\n", IDECFG);
//hier müssen die Voreinstellungen rein.
}
// read config
while(fgets(line_buffer, sizeof(line_buffer), ide_conf))
{
if((read_puffer = strstr(line_buffer, "IDEMODE=")))
{
sscanf(read_puffer + 8, "%d", &ide_mode);
}
else if((read_puffer = strstr(line_buffer, "SWAP=")))
{
sscanf(read_puffer + 5, "%s", (char *)&swap);
}
else if((read_puffer = strstr(line_buffer, "HD-FS=")))
{
sscanf(read_puffer + 5, "%d", &hd_fs);
}
else if((read_puffer = strstr(line_buffer, "SLEEPTIME=")))
{
sscanf(read_puffer + 10, "%s", (char *)&hddsleep);
}
else if((read_puffer = strstr(line_buffer, "HDDCACHE=")))
{
sscanf(read_puffer + 9, "%s", (char *)&hddcache);
}
else if((read_puffer = strstr(line_buffer, "SAMBA=")))
{
sscanf(read_puffer + 6, "%s", &samba);
}
else if((read_puffer = strstr(line_buffer, "NFS=")))
{
sscanf(read_puffer + 4, "%s", &nfs);
}
}
// close config
fclose(ide_conf);
//#############################################################################################################
}
Code: Alles auswählen
bool IdeConfWidget::SaveSettings()
{
//#############################################################################################################
FILE* ide_conf = 0;
ide_conf = fopen(IDECFG, "w");
if(!ide_conf)
{
printf("Kann Datei nicht erstellen %s\n", IDECFG);
return false;
}
printf("schreibe in Datei %s\n", SECTCFG);
fprintf(ide_conf, "================= IDE Config =======================\n");
fprintf(ide_conf, "IDEMODE=%d\n",ide_mode);
fprintf(ide_conf, "SWAP=%s\n",swap);
fprintf(ide_conf, "HD-FS=%d\n",hd_fs);
fprintf(ide_conf, "SLEEPTIME=%s\n",hddsleep);
fprintf(ide_conf, "HDDCACHE=%s\n",hddcache);
fprintf(ide_conf, "================ Samba Config ======================\n");
fprintf(ide_conf, "SAMBA=%d\n",samba);
fprintf(ide_conf, "================= NFS Config =======================\n");
fprintf(ide_conf, "NFS=%d\n",nfs);
fclose(ide_conf);
//##################################################################################################
#############
}
-
- Einsteiger
- Beiträge: 281
- Registriert: Mittwoch 8. Dezember 2004, 21:45
schön - scheint ja doch ein paar zu interessieren.
leider gibt es ein problem beim einrichten der partitionen (sehr große und/oder sehr kleine (alte) hdds)
edit: veraltete version gelöscht
so werden die partitionsgrößen über zylinder berechnet. bitte mal testen.
swap partitionen über 4GB (alles über 128MB halte ich eh für quark) funktioniert nicht.
innu
leider gibt es ein problem beim einrichten der partitionen (sehr große und/oder sehr kleine (alte) hdds)
edit: veraltete version gelöscht
so werden die partitionsgrößen über zylinder berechnet. bitte mal testen.
swap partitionen über 4GB (alles über 128MB halte ich eh für quark) funktioniert nicht.
innu
Zuletzt geändert von Innuendo am Montag 26. März 2007, 08:53, insgesamt 1-mal geändert.
-
- Einsteiger
- Beiträge: 281
- Registriert: Mittwoch 8. Dezember 2004, 21:45
-
- Einsteiger
- Beiträge: 281
- Registriert: Mittwoch 8. Dezember 2004, 21:45
wegen mir können wir eine eigene conf dafür erstellen. aber wenn du dich damit schon grad beschäftigst könntest du ja auch das ide treiber laden/entladen mit einpflegen. dann wäre der lästige reboot auch erledigt.mb405 hat geschrieben:ich werde mal versuchen die g.settings_ rauszubekommen, und das in eine eigene config zu packen.nicht, das es wieder in neutrino landet, wo du so schön den ganzen code dort rausgenommen hast. so stört der in neutrino.cpp nicht.
vorrausgesetzt natürlich wir gehen davon aus, dass treiber und fs als module geladen werden.
innu
-
- Tuxboxer
- Beiträge: 2614
- Registriert: Montag 20. Mai 2002, 10:49
- Image: JTG-Image [IDE] Version 2.4.4
- Image: (7025SS) Merlin
@Innuendo
Könntest Du bei Gelegenheit das hier auch noch einbauen. Ist nämlich ganz schön lästig, die Deamons vor dem Plattencheck abzuschießen.
Wenn mir Riker mit Deinen geposteten Änderungen einen Testsnap baut, kann ich das mal mit meiner Testplatte überprüfen. Diese ist nämlich so ein Kandidat, die Platte wird mit dem neuen HDD-Menü partioniert und formatiert, und lässt sich auch beschreiben. Aber wenn ich sie mit cfdisk überprüfe, gibt es Fehler, und cfdisk stürzt ab. Initialisiere ich sie hingegen mit dem Skript, funktioniert auch cfdisk.
Hier noch Infos von smartctl zu dieser Platte.
Eigenartigerweise wird diese Platte nur mit max. 8GB formatiert, obwohl 10,06 GB draufsteht. Ist also ein idealer Kandidat zum Testen des neuen Codes.
Greetz von DrStoned
Könntest Du bei Gelegenheit das hier auch noch einbauen. Ist nämlich ganz schön lästig, die Deamons vor dem Plattencheck abzuschießen.
Wenn mir Riker mit Deinen geposteten Änderungen einen Testsnap baut, kann ich das mal mit meiner Testplatte überprüfen. Diese ist nämlich so ein Kandidat, die Platte wird mit dem neuen HDD-Menü partioniert und formatiert, und lässt sich auch beschreiben. Aber wenn ich sie mit cfdisk überprüfe, gibt es Fehler, und cfdisk stürzt ab. Initialisiere ich sie hingegen mit dem Skript, funktioniert auch cfdisk.
Hier noch Infos von smartctl zu dieser Platte.
Code: Alles auswählen
smartctl version 5.36 [powerpc-tuxbox-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF INFORMATION SECTION ===
Model Family: IBM Travelstar 32GH, 30GT, and 20GN family
Device Model: IBM-DJSA-210
Serial Number: 9ZV9ZJ33705
Firmware Version: JS2OAB8A
User Capacity: 8,000,000,000 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 5
ATA Standard is: ATA/ATAPI-5 T13 1321D revision 1
Local Time is: Wed Mar 21 07:51:21 2007 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
Greetz von DrStoned
Greetz von DrStoned
-
- Einsteiger
- Beiträge: 281
- Registriert: Mittwoch 8. Dezember 2004, 21:45
kann ich machen, das ist schnell erledigtDrStoned hat geschrieben:Könntest Du bei Gelegenheit das hier auch noch einbauen. Ist nämlich ganz schön lästig, die Deamons vor dem Plattencheck abzuschießen.
sobald riker lust & zeit hat, geb ich ihm den krams wieder für einen testsnapDrStoned hat geschrieben: Wenn mir Riker mit Deinen geposteten Änderungen einen Testsnap baut, kann ich das mal mit meiner Testplatte überprüfen. Diese ist nämlich so ein Kandidat, die Platte wird mit dem neuen HDD-Menü partioniert und formatiert, und lässt sich auch beschreiben. Aber wenn ich sie mit cfdisk überprüfe, gibt es Fehler, und cfdisk stürzt ab. Initialisiere ich sie hingegen mit dem Skript, funktioniert auch cfdisk.
innu
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
also das mit den filesystem modulen hab ich anders gemacht.vorrausgesetzt natürlich wir gehen davon aus, dass treiber und fs als module geladen werden.
ext2 und ext3 ist bei mir im kernel. muss also nicht als modul sein.damit spart man sich das entladen der module. (ext2 und ext3 im kernel < weniger platz als ext2+ext3(als modul)+kernel)
xfs hab ich als modul gebaut, und in den var bereich verschoben. wenn ich das mal nutze, dann kann ich das einfach laden.
somit muss nur xfs geladen werden.
@Innuendo
kannst du mir mal die ide_menu sourchen auf meine mail schicken ? danke
wenn ich das hier aus dem board kopiere muss ich immer so viel nacharbeiten.
noch was anderes, was zwar nicht hier reingehört wir sollten uns mal über eine einheitliche code schreibweise einigen. das führt zum besseren verständnis bei allen. auch die tabs sind bei dir wohl 4 breit, ich nutze 8 wie denke ich im cvs auch. oder es hat mir beim copieren deiner sourcen von hier irgendwas kaputt gemacht.
dann das
einmal so
Code: Alles auswählen
if (g_settings.samba == 1)
{
system("/bin/nmbd");
system("/bin/smbd -D -s /etc/smb.conf");
}
Code: Alles auswählen
if (g_settings.samba == 1) {
system("/bin/nmbd");
system("/bin/smbd -D -s /etc/smb.conf");
}
-
- Einsteiger
- Beiträge: 281
- Registriert: Mittwoch 8. Dezember 2004, 21:45
dann bleiben wir einfach beim reboot - dann ist es für alle tauglich und jeder kann es für sein system anpassen (oder auch nicht)mb405 hat geschrieben:also das mit den filesystem modulen hab ich anders gemacht.
ext2 und ext3 ist bei mir im kernel. muss also nicht als modul sein.damit spart man sich das entladen der module. (ext2 und ext3 im kernel < weniger platz als ext2+ext3(als modul)+kernel)
xfs hab ich als modul gebaut, und in den var bereich verschoben. wenn ich das mal nutze, dann kann ich das einfach laden.
somit muss nur xfs geladen werden.
zeitgleich zum unterricht "schönschreiben" wurde rumlümmeln & nix tun angeboten - ich hab letzteres gewählt ;-)mb405 hat geschrieben: ich weis, das beides richtig ist, aber eine einheitliche sache ist von vorteil, wenn man sich fremden code ansieht.
innu
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
-
- Tuxboxer
- Beiträge: 2614
- Registriert: Montag 20. Mai 2002, 10:49
- Image: JTG-Image [IDE] Version 2.4.4
- Image: (7025SS) Merlin
@Innuendo
Riker hat mir gestern Abend einen Testsnap mit dem neuen Formatierungscode erstellt. Es geht immer noch nicht richtig mit meiner alten IBM-Platte.
Hier das Ergebnis:
Formatiere ich hingegen die Platte mit dem Skript erhalte ich folgendes:
Hier die wesentlichen Inhalte des Skripts:
Ergebnis Initialisierung mit dem Skript:
Was mir auffällt, ist dass die Platte beim Cylinder 1023 aufhört.
Vermutlich liegt es an der Platte. Sie wird mit 8 GB formatiert, obwohl laut Aufdruck auf der Platte 10,01 GB drin sein sollten. Eventuell sollte sie umgejumpert werden, aber ich kann da bei der 2,5 Zoll Platte nichts finden.
Mit meiner neuen Platte kann und möchte ich momentan nicht testen, da ich da noch ca. 60 GB Filme draufhabe. Vielleicht komme ich nächste Woche mal dazu, den Datenbestand zu sichern und mal mit der neuen Platte zu testen.
Greetz von DrStoned
Riker hat mir gestern Abend einen Testsnap mit dem neuen Formatierungscode erstellt. Es geht immer noch nicht richtig mit meiner alten IBM-Platte.
Code: Alles auswählen
smartctl version 5.36 [powerpc-tuxbox-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF INFORMATION SECTION ===
Model Family: IBM Travelstar 32GH, 30GT, and 20GN family
Device Model: IBM-DJSA-210
Serial Number: 9ZV9ZJ33705
Firmware Version: JS2OAB8A
User Capacity: 8,000,000,000 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 5
ATA Standard is: ATA/ATAPI-5 T13 1321D revision 1
Local Time is: Wed Mar 21 07:51:21 2007 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
Code: Alles auswählen
~ > umount /hdd
~ > swapoff /dev/ide/host0/bus0/target0/lun0/part1
~ > cfdisk -P t /dev/ide/host0/bus0/target0/lun0/disc
FATAL ERROR: Bad primary partition 1: logical partitions overlap
Hier die wesentlichen Inhalte des Skripts:
Code: Alles auswählen
umount /hdd
swapoff /dev/ide/host0/bus0/target0/lun0/part1
sleep 3
sfdisk /dev/ide/host0/bus0/target0/lun0/disc << EOF
,128,S
,,L
EOF
mkswap /dev/ide/host0/bus0/target0/lun0/part1
/sbin/mkfs.ext3 -T largefile -m0 /dev/ide/host0/bus0/target0/lun0/part2
insmod jbd
insmod ext3
Code: Alles auswählen
~ > cfdisk -P t /dev/ide/host0/bus0/target0/lun0/disc
Partition Table for /dev/ide/host0/bus0/target0/lun0/disc
---Starting--- ----Ending---- Start Number of
# Flags Head Sect Cyl ID Head Sect Cyl Sector Sectors
-- ----- ---- ---- ---- ---- ---- ---- ---- ----------- -----------
1 0x00 0 2 0 0x82 15 63 127 1 129023
2 0x00 0 1 128 0x83 15 63 1023 129024 15494976
3 0x00 0 0 0 0x00 0 0 0 0 0
4 0x00 0 0 0 0x00 0 0 0 0 0
Vermutlich liegt es an der Platte. Sie wird mit 8 GB formatiert, obwohl laut Aufdruck auf der Platte 10,01 GB drin sein sollten. Eventuell sollte sie umgejumpert werden, aber ich kann da bei der 2,5 Zoll Platte nichts finden.
Mit meiner neuen Platte kann und möchte ich momentan nicht testen, da ich da noch ca. 60 GB Filme draufhabe. Vielleicht komme ich nächste Woche mal dazu, den Datenbestand zu sichern und mal mit der neuen Platte zu testen.
Greetz von DrStoned
-
- Tuxboxer
- Beiträge: 2614
- Registriert: Montag 20. Mai 2002, 10:49
- Image: JTG-Image [IDE] Version 2.4.4
- Image: (7025SS) Merlin
Habe gerade noch zusammen mit Innuendo getestet, SWAP ausgeschaltet, dann gings ohne Probleme. Innu hat den Fehler in seinen Sourcen gefunden.
@Riker, Innu schickt Dir die geänderten Sourcen, machst Du mir bitte wieder einen Testsnap, dann teste ichs Morgen früh.
Greetz von DrStoned
Code: Alles auswählen
~ > cfdisk -P t /dev/ide/host0/bus0/target0/lun0/disc
Partition Table for /dev/ide/host0/bus0/target0/lun0/disc
---Starting--- ----Ending---- Start Number of
# Flags Head Sect Cyl ID Head Sect Cyl Sector Sectors
-- ----- ---- ---- ---- ---- ---- ---- ---- ----------- -----------
1 0x00 0 2 0 0x83 15 63 1023 1 15621983
2 0x00 0 0 0 0x00 0 0 0 0 0
3 0x00 0 0 0 0x00 0 0 0 0 0
4 0x00 0 0 0 0x00 0 0 0 0 0
Greetz von DrStoned
Greetz von DrStoned
-
- Einsteiger
- Beiträge: 281
- Registriert: Mittwoch 8. Dezember 2004, 21:45
fehler ist gefunden und behoben - riker bekommt später die beiden files für einen testschnapsDrStoned hat geschrieben:Code: Alles auswählen
FATAL ERROR: Bad primary partition 1: logical partitions overlap
innu
-
- Einsteiger
- Beiträge: 281
- Registriert: Mittwoch 8. Dezember 2004, 21:45
-
- Einsteiger
- Beiträge: 105
- Registriert: Mittwoch 20. Oktober 2004, 12:41