[abgeschlossen] Entwurf: IDE Menü

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

so - hier nun die neue version.
folgende änderungen sind gemacht:
- swap auf an/aus mit fixed size 128MB geändert - im alten code war ein dreher bei der swap/swapsize var drin - sorry dr.stoned ;-)
- ide Treiber werden nun bei bedarf ge/entladen
- abspeichern der settings IDE_MODE, SWAP und HDDFS ohne die Festplatte einzurichten nicht mehr möglich

bisher war es möglich, die HDD mit XFS und Swap einzurichten und anschließend im Menü andere Settings zu speichern - macht wenig Sinn. Ob die Lösung mit global vars und system calls so gut ist ... kann ja jeder für sich optimieren.
die funktionen LoadDrivers und UnloadDrivers sind nur zur vorbereitung auf mmc.

immernoch nur ein entwurf!

edit: veraltete version gelöscht

eine neue locals:
hddsettings.hdd.savesettings.message Die Festplatte muss neu eingerichtet werden\n Fortfahren?\n

feedback wäre nett

Innu
Zuletzt geändert von Innuendo am Montag 26. März 2007, 08:54, insgesamt 1-mal geändert.
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

@ Innuendo

Mein Feedback: "Ein dickes DANKE für Deine Arbeit!"


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

Beitrag von mb405 »

mein ide interface ist zum rtc auflöten.
wenn es wieder da ist, bau ich es ein, und teste weiter
StevenSch
Einsteiger
Einsteiger
Beiträge: 105
Registriert: Mittwoch 20. Oktober 2004, 12:41

Beitrag von StevenSch »

Kann mir jemand sagen wie ich folgenden Code kompiliert bekomme, oder besser Kompileirt und direkt nach /bin verschoben (so wie z.B. camd).
loadsupport.cpp

Code: Alles auswählen

 /*
 * Tool to determine whether or not the extended support like
 * IDE should be loaded
 *
 * $Id: extsupport.cpp,v 0.1 2007/04/04 13:46:24 Speedy2206 Exp $
 *
 * Copyright (C) 2006 the Tuxbox project http://www.tuxbox.org.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

int main()
{
	int idestatus = 0;
	int activesoftcam = 0;
	FILE* fdconf = fopen("/var/tuxbox/config/ide.conf", "r");
	if(fdconf)
	{
		char buffer[120];
		while(fgets(buffer, 120, fdconf)!=NULL)
		{
			sscanf(buffer, "IDEMODE=%i", idestatus);
			sscanf(buffer, "SWAP=%i", ideswap);
			sscanf(buffer, "HDDFS=%i", idefs);
		}
		fclose(fdconf);
	}
	if (idestatus == 0) 		// IDE Functionality is Disabled (dont load kernel stuff)
	{
		printf("[LOAD-SUPPORT] IDE Support Disabled\n");
	}
	else				// IDE Functionality is Enabled (load everything)
	{
		printf("[LOAD-SUPPORT] IDE Support Enabled\n");
		system("insmod ide-core.o");
		system("insmod dboxide.o");
		system("insmod ide-detect.o");
		system("insmod ide-disk.o");
		if (idefs == 0)
			system("insmod xfs.o");
			system("/bin/mount -t xfs /dev/ide/host0/bus0/target0/lun0/part2 /hdd");
		if (idefs == 1)
			system("insmod jbd.o");
			system("insmod ext3.o");
			system("/bin/mount -t ext2 /dev/ide/host0/bus0/target0/lun0/part2 /hdd");
		if (idefs == 2)
			system("insmod ext2.o");
			system("/bin/mount -t ext2 /dev/ide/host0/bus0/target0/lun0/part2 /hdd");
		if (idefs != 0)
			system("/sbin/swapon /dev/ide/host0/bus0/target0/lun0/part1");
	}
}
Makefile.am

Code: Alles auswählen

bin_PROGRAMS = loadsupport

loadsupport_SOURCES = loadsupport.cpp
Ich hab unter apps/tuxbox/tools den Ordner loadsupport erstellt.
Darin die Dateien loadsupport.cpp (siehe oben) und Makefile.am.
Dann eine Ebene höher das Makefile.am und das configure.ac angepasst.

Der komplette ImageBuildvorgang läuft auch durch nur loadsupport wird nicht erstellt.

Ich will das Programm so wie von der englischen Fraktion ursprünglich angedacht, dazu nutzen um mit Hilfe der ide.conf die IDE-Treiber zu starten.
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

Bild

neuer entwurf hdd menü:
- swap fest auf part1 mit 128MB
- swap kann aktiv/inaktiv gesetzt werden
- über das hauptmenü wird nur part1(swap) und part2(daten) eingerichtet
- über das untermenü können bis zu 3 partitionen angelegt werden (optional)
- jede partition kann ein anderes filesystem haben
- jede partition kann aktiv/inaktiv gesetzt werden
- umount über alle /proc/mounts mit ide device
- mount entweder über formating.end/hddcheck.end scripts (wenn vorhanden) oder über festen mountpoint /hdd
- HDD an target0/target1 verwendbar (Master/Slave)

ein beispiel für rcS, mount script etc steht im kopf der cpp
in der locale können noch überflüssige (test)zeilen sein

hdd_menu_source

Feedback wäre prima

regards
Innu
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

@ Innuendo

Sieht echt genial aus!!

Schön wäre aber auch wenn man eine 2te Platte einrichten könnte und
den Swapbereich auswählen könnte (Master/Slave).


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

Beitrag von Innuendo »

PauleFoul hat geschrieben:Schön wäre aber auch wenn man eine 2te Platte einrichten könnte und den Swapbereich auswählen könnte (Master/Slave).
machbar ist alles (irgendwie), aber das ide if ist imho nicht für 2 platten ausgelegt (halteblech, ide kabel, netzteil) - wer so eine modifikation hat oder haben möchte, kann sich das menü entsprechend anpassen.
ich bin der meinung, dass wir einen basis hier erstellen können, diverse anpassungen kann ja dann wieder jeder selber für sich machen. ob als basis überhaupt mehrere partitionen sein müssen, ist auch fraglich. für verschiedene aufnahmetests (filesystem, swap on/off etc) bietet der entwurf nun viele möglichkeiten zum rumspielen.

innu
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Innuendo hat geschrieben:
PauleFoul hat geschrieben:Schön wäre aber auch wenn man eine 2te Platte einrichten könnte und den Swapbereich auswählen könnte (Master/Slave).
machbar ist alles (irgendwie), aber das ide if ist imho nicht für 2 platten ausgelegt (halteblech, ide kabel, netzteil) - wer so eine modifikation hat oder haben möchte, kann sich das menü entsprechend anpassen.
ich bin der meinung, dass wir einen basis hier erstellen können, diverse anpassungen kann ja dann wieder jeder selber für sich machen. ob als basis überhaupt mehrere partitionen sein müssen, ist auch fraglich. für verschiedene aufnahmetests (filesystem, swap on/off etc) bietet der entwurf nun viele möglichkeiten zum rumspielen.

innu
Es geht ja nicht darum 2 Festplatten anzuschließen, sondern um einen
zusätzlichen IDE-Flashspeicher in den man dann den SWAP auslagern
könnte.
Ist aber nur eine Idee/Anregung gewesen. Natürlich obligt es Dir zu
entscheiden was in das Menü rein kommt... :D


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

Beitrag von mb405 »

edit

1.)kann mich mal einer aufklären, für was noch die dateien da sind ??

/var/etc/opt_dboxide
/var/etc/opt_hdparm
/var/etc/.start_ide(die ist mir klar, die startet das start.ide script)
/var/etc/.ext3
/var/etc/.ext2
/var/etc/.xfs
/var/etc/.swap
/var/etc/.hddpart2 - 4
/var/etc/.samba(die ist mir auch klar, die startet das samba.server script)
/var/etc/.nfsd(die ist mir auch klar, die startet das nfs.server script)
/tmp/opt_hdformat

müssen die ganzen dateien sein?? wenn man schon eine config hat, wo alles schön reingehört :gruebel: zumindest die filesysteme sollten da rein.
filesystem=0 bis 2 = ext2 bis xfs

2.)das mit dem swap versteh ich nicht als langjähriger windowsnutzer :(
muss ich den eintrag aus der fstab rausnehmen ??

Code: Alles auswählen

/dev/ide/host0/bus0/target0/lun0/part1	swap		swap	noauto		0 0
hab grad den hddcheck gestartet
Harddisk Menu 2007-04-06 Innuendo V0.25
[neutrino ide] found mountpoint /hdd
[neutrino ide] unmount /hdd
[neutrino ide] swapoff successful
[neutrino ide] file /var/tuxbox/config/hddcheck.start was not found - create if needed
Phase 1 - find and verify superblock...
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
__alloc_pages: 0-order allocation failed (gfp=0x1f0/0)
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
__alloc_pages: 0-order allocation failed (gfp=0xf0/0)
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
__alloc_pages: 0-order allocation failed (gfp=0xf0/0)
__alloc_pages: 0-order allocation failed (gfp=0x1f0/0)
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
__alloc_pages: 0-order allocation failed (gfp=0xf0/0)
__alloc_pages: 0-order allocation failed (gfp=0xf0/0)
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
VM: killing process xfs_repair
Killed
Killed
[neutrino ide] HDD check failed
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

/var/etc/opt_dboxide == hier steht nur irq= drin, wird beim laden des treibers mit cat verwendet
/var/etc/opt_hdparm == hier stehen die hdparm settings drin - auch beim start per cat
/var/etc/.start_ide(die ist mir klar, die startet das start.ide script)
/var/etc/.ext3 == alt und kann wech
/var/etc/.ext2 == alt und kann wech
/var/etc/.xfs == alt und kann wech
/var/etc/.swap == swap on/off
/var/etc/.hddpart2 - 4 == hier steht das filesystem und device drin, per cat beim systemstart
/var/etc/.samba(die ist mir auch klar, die startet das samba.server script)
/var/etc/.nfsd(die ist mir auch klar, die startet das nfs.server script)
/tmp/opt_hdformat == temp datei für sfdisk. wird nach dem formatieren gelöscht

beispiele für cat stehen in der cpp datei - so bleibt es flexibel und es kann ich jede config übernommen werden.

__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
VM: killing process xfs_repair
Killed
Killed
[neutrino ide] HDD check failed

erstell mal die xfs tools neu - sieht für mich nach einer fehlerhaften xfs_repair aus - zumindest hab ich im menü nirgends ein mem alloc

Innu
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
(Ram)Speicher der Box ist alle :-)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

wäre es nicht besser, diese ganzen cat geschichten aus dem scripten zu entfernen ??
ich denke, es gehört alles in die config, und nicht überall verstreut im image rumliegen.
wenn man mal ein neues image draufbraten muss(was bei mir immer mal passiert weils fehler gibt) dann braucht man nicht umständlich erst alle dateien wieder neu zu touchen, sondern schmeist die config rein, und alles geht wieder.
die einzige datei die getoucht werden sollte, und das auch bleiben sollte ist die .start_ide.
welche init_ide benutzt du ?
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

mit cat übertrage ich doch den inhalt der datei. wie willst du sonst beim starten wissen, mit welchen dateisystem eine partition gemounted werden soll?

in meiner .hddpart2 steht z.b.: xfs /dev/ide/host0/bus0/target0/lun0/part2
mein start script dazu passend:
if [ -e /var/etc/.hddpart2 ] ; then
mount -t $(cat /var/etc/.hddpart2 2>/dev/null) /movies
fi

also wird ausgeführt: mount -t xfs /dev/ide/host0/bus0/target0/lun0/part2 /movies

ich halte das so für sehr flexibel und simpel(!) in irgendeinem image einzubauen.
ich vermute, das deine idee mit grep ide.conf auslesen ist - läßt sich sicher auch übersichtlich machen.
versteht meinen krams hier nur als entwurf oder vorschlag. mit sicherheit kann ein c/c++ profi auch den quellcode viel besser/schöner/übersichtlicher/etc machen. mit dem krams oben haben wir aber wenigstens mal eine diskussionsgrundlage.

im source oben sind auch noch zwei typofehler. außerdem habe ich das untermenü erweitert:
Bild

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

Beitrag von mb405 »

ich hab dich 100%ig verstanden, aber es ist 100% einfacher eine config einzuspielen, und alles ist ok, als immer wieder erst dateien anzulegen.
das auslesen der config in der start_ide mit grep sollte doch auch nicht das problem darstellen ?
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

grundsätzlich geb ich dir recht. mach mal einen vorschlag - ich bin kein grep/sed künstler und mein bash script buch liegt noch in irgendeinem umzugskarton.

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

Beitrag von mb405 »

-zuerst sollten wir uns auf eine start_ide einigen, damit dort alles rein kann.
-dann wie die start_neutrino oder rcs abwanndeln, damit die ide.conf ausgewetet wird, damit auch die start_ide gestartet wird.
ich kümmere mich drum, und versuche was zusammenzuscripten(mal sehn was rauskommt)
StevenSch
Einsteiger
Einsteiger
Beiträge: 105
Registriert: Mittwoch 20. Oktober 2004, 12:41

Beitrag von StevenSch »

Zum Auslesen der Config Files möchte ich nochmal auf folgenden Ansatz verweisen:http://tuxbox-forum.dreambox-fan.de/for ... hp?t=44944
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

ein extra binary, dass systemcalls ausführt, halte ich für überflüssig.

Code: Alles auswählen

#!/bin/sh
# rcS Stand 2006-11-15

  /bin/mount -n -t proc proc /proc
  /bin/mount -t jffs2 /dev/mtdblock/3 /var
  /bin/mount -n -t tmpfs tmpfs /tmp

# Pfad zu insmod und den Modules festlegen
  export INSMOD="/sbin/insmod"
  export MODDIR="/lib/modules/"$(uname -r)"/misc"

# Pfade setzen
  export PATH=/var/bin:/sbin:/bin:/var/plugins

# Zeitformat setzen
  if [ -e /var/etc/profile.local ]; then
	. /var/etc/profile.local
  else
	. /etc/profile
  fi
  /bin/date -s 010101001970

# Lade MMC Treiber und mounten
  if [ -e /var/etc/.mmc1 ]; then
	. /var/tuxbox/config/mmc_mount.sh &
  fi

# Lade IDE Treiber und mounten
  if [ -e /var/etc/.start_ide ]; then
	. /var/tuxbox/config/ide_mount.sh &
  fi
....

Code: Alles auswählen

#!/bin/sh
# ide_mount.sh Stand 2007-04-08

insmod ide-core
insmod dboxide $(cat /var/etc/opt_dboxide 2>/dev/null)
insmod ide-detect
insmod ide-disk

# wenn fs nicht im kernel enthalten
#insmod xfs.o
#insmod ext2.o
#insmod jbd.o
#insmod ext3.o

if [ -e /var/etc/.hddpart1 ] ; then 
  /sbin/swapon $(cat /var/etc/.hddpart1 2>/dev/null) && /bin/mount -n -t tmpfs tmpfs /tmp -o size=128M,remount
fi

if [ -e /var/etc/.hddpart2 ] ; then
  mount -t $(cat /var/etc/.hddpart2 2>/dev/null) /movies
fi

if [ -e /var/etc/.hddpart3 ] ; then
  mount -t $(cat /var/etc/.hddpart3 2>/dev/null) /pictures
fi

if [ -e /var/etc/.hddpart4 ] ; then
  mount -t $(cat /var/etc/.hddpart4 2>/dev/null) /epg
fi

if [ -e /var/etc/opt_hdparm ] ; then
  hdparm $(cat /var/etc/opt_hdparm 2>/dev/null) /dev/ide/host0/bus0/target0/lun0/disc
fi

exit 0
innu
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

so dann häng ich mal meinen senf dazu an :)
hab mal bisserl gescriptet

für die rcs

Code: Alles auswählen

....
IDE_CONF="/var/tuxbox/config/ide.conf"
IDEMODE=`grep "^IDEMODE=" $IDE_CONF | cut -d '=' -f 2`
....
if [ ! $IDEMODE -eq 0 ]; then
	/var/etc/init.d/init.ide &
fi
....
und die init.ide

Code: Alles auswählen

#!/bin/sh
IDE_CONF="/var/tuxbox/config/ide.conf"
IDEMODE=`grep "^IDEMODE=" $IDE_CONF | cut -d '=' -f 2`
TARGET=`grep "^TARGET=" $IDE_CONF | cut -d '=' -f 2`
SLEEPTIME=`grep "^SLEEPTIME=" $IDE_CONF | cut -d '=' -f 2`
HDDCACHE=`grep "^HDDCACHE=" $IDE_CONF | cut -d '=' -f 2`

PARTITION1_ACTIVE=`grep "^PARTITION1_ACTIVE=" $IDE_CONF | cut -d '=' -f 2`
PARTITION1_SIZE=`grep "^PARTITION1_SIZE=" $IDE_CONF | cut -d '=' -f 2`

PARTITION2_ACTIVE=`grep "^PARTITION2_ACTIVE=" $IDE_CONF | cut -d '=' -f 2`
PARTITION2_SIZE=`grep "^PARTITION2_SIZE=" $IDE_CONF | cut -d '=' -f 2`
PARTITION2_HDDFS=`grep "^PARTITION2_HDDFS=" $IDE_CONF | cut -d '=' -f 2`

PARTITION3_ACTIVE=`grep "^PARTITION3_ACTIVE=" $IDE_CONF | cut -d '=' -f 2`
PARTITION3_SIZE=`grep "^PARTITION3_SIZE=" $IDE_CONF | cut -d '=' -f 2`
PARTITION3_HDDFS=`grep "^PARTITION3_HDDFS=" $IDE_CONF | cut -d '=' -f 2`

PARTITION4_ACTIVE=`grep "^PARTITION4_ACTIVE=" $IDE_CONF | cut -d '=' -f 2`
PARTITION4_SIZE=`grep "^PARTITION4_SIZE=" $IDE_CONF | cut -d '=' -f 2`
PARTITION4_HDDFS=`grep "^PARTITION4_HDDFS=" $IDE_CONF | cut -d '=' -f 2`

export IM="/sbin/insmod"

# IDE Treiber Laden
$IM -f $DIR/ide-core.o

# interrupt= ?  / 0=original IRQ  / 1oder2=IRQ6
if [ ! $IDEMODE -eq 2 ]; then
	$IM -f dboxide.o IRQ6=0
else
	$IM -f dboxide.o IRQ6=1
fi
$IM -f ide-detect.o
$IM -f ide-disk.o

# SWAP mounten Part1
echo "Now initializing the Part1 (swap) partition."
if [ $PARTITION1_ACTIVE -eq 1 ]; then
	swapon /dev/ide/host0/bus0/target$TARGET/lun0/part1 && mount -n -t tmpfs tmpfs /tmp -o size="$PARTITION1_SIZE"M,remount
fi

# Datenpartition mounten Part2
if [ $PARTITION2_ACTIVE -eq 1 ]; then
	if [ $PARTITION2_HDDFS -eq 0 ]; then
		$IM xfs.o
		mount -t xfs /dev/ide/host0/bus0/target$TARGET/lun0/part2 /hdd
		echo "Now initializing the Part2 partition."
	else if [ $PARTITION2_HDDFS -eq 1 ]; then
		$IM ext3.o
		mount -t ext3 /dev/ide/host0/bus0/target$TARGET/lun0/part2 /hdd
		echo "Now initializing the Part2 partition."
	else
		$IM ext2.o
		mount -t ext2 /dev/ide/host0/bus0/target$TARGET/lun0/part2 /hdd
		echo "Now initializing the Part2 partition."
	fi
	fi
fi

# Datenpartition mounten Part3
if [ $PARTITION3_ACTIVE -eq 1 ]; then
	if [ $PARTITION3_HDDFS -eq 0 ]; then
		$IM xfs.o
		mount -t xfs /dev/ide/host0/bus0/target$TARGET/lun0/part3 /hdd
		echo "Now initializing the Part2 partition."
	else if [ $PARTITION3_HDDFS -eq 1 ]; then
		$IM ext3.o
		mount -t ext3 /dev/ide/host0/bus0/target$TARGET/lun0/part3 /hdd
		echo "Now initializing the Part2 partition."
	else
		$IM ext2.o
		mount -t ext2 /dev/ide/host0/bus0/target$TARGET/lun0/part3 /hdd
		echo "Now initializing the Part2 partition."
	fi
	fi
fi

# Datenpartition mounten Part4
if [ $PARTITION4_ACTIVE -eq 1 ]; then
	if [ $PARTITION4_HDDFS -eq 0 ]; then
		$IM xfs.o
		mount -t xfs /dev/ide/host0/bus0/target$TARGET/lun0/part4 /hdd
		echo "Now initializing the Part2 partition."
	else if [ $PARTITION4_HDDFS -eq 1 ]; then
		$IM ext3.o
		mount -t ext3 /dev/ide/host0/bus0/target$TARGET/lun0/part4 /hdd
		echo "Now initializing the Part2 partition."
	else
		$IM ext2.o
		mount -t ext2 /dev/ide/host0/bus0/target$TARGET/lun0/part4 /hdd
		echo "Now initializing the Part2 partition."
	fi
	fi
fi

hdparm -S $SLEEPTIME -W $HDDCACHE /dev/ide/host0/bus0/target$TARGET/lun0/disc

exit 0
und in der start_neutrino noch das samba/nfs zeugs

Code: Alles auswählen

...
IDE_CONF="/var/tuxbox/config/ide.conf"
SAMBA=`grep "^SAMBA=" $IDE_CONF | cut -d '=' -f 2`
NFS=`grep "^NFS=" $IDE_CONF | cut -d '=' -f 2`
...
if [ $SAMBA -eq 1 ]; then
	if [ -e /var/bin/nmbd ]; then
		/var/bin/nmbd -D &
	else
		echo "/var/bin/nmbd nicht vorhanden!"
	fi
	if [ -e /var/bin/smbd ]; then
		/var/bin/smbd -D &
	else
		echo "/var/bin/smbd nicht vorhanden!"
	fi
	echo "Samba Daemon gestartet"
fi
...
if [ $NFS -eq 1 ]; then
	if [ ! -e /var/etc/exports ]; then
		echo "# Diese datei bestimmt das filesytem fuer den export\n# Clienten, die berechtigt sind darauf zuzugreifen.\n\n/hdd *(rw,no_root_squash,sync)\n/var *(rw,sync)" > /var/etc/exports
	fi

	if [ ! -e /var/lib/nfs ]; then
		mkdir /var/lib/nfs
	fi

	insmod /var/bin/nfsd.o
	pidof portmap >/dev/null | /var/bin/portmap -d
	/var/bin/exportfs -r
	/var/bin/rpc.mountd
	/var/bin/rpc.nfsd 3
fi
...
fertig.
somit sind keine anderen getouchten dateien mehr notwendig.
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

die grep lösung sieht zwar schön aus, aber ich sehe darin keinen vorteil. aber es kann ja jeder sein system nach belieben einrichten. wer keine markerfiles haben möchte, kann ja den quellcode entsprechend anpassen.

habe den download link oben aktualisiert.

neu: einzelene partition format und check

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

Beitrag von mb405 »

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

Beitrag von Innuendo »

hab das archiv nochmal aktualisiert -mir ist leider ein zahlendreher bei swap on/off unterlaufen (partition1_active)

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

Beitrag von mb405 »

ich hab grad mal ein neues gebacken.
soweit so schön. wenn ich swap deaktiviere, kommt beim neu formatieren das
Harddisk Menu 2007-04-09 Innuendo V0.26
Old situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start End #cyls #blocks Id System
/dev/ide/host0/bus0/target0/lun0/part1 0+ 16 17- 136552 82 Linux swap / Solaris
/dev/ide/host0/bus0/target0/lun0/part2 17 9732 9716 78043770 83 Linux
/dev/ide/host0/bus0/target0/lun0/part3 0 - 0 0 0 Empty
/dev/ide/host0/bus0/target0/lun0/part4 0 - 0 0 0 Empty
New situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start End #cyls #blocks Id System
/dev/ide/host0/bus0/target0/lun0/part1 0+ 16 17- 136552 82 Linux swap / Solaris
/dev/ide/host0/bus0/target0/lun0/part2 17 9732 9716 78043770 83 Linux
/dev/ide/host0/bus0/target0/lun0/part3 0 - 0 0 0 Empty
/dev/ide/host0/bus0/target0/lun0/part4 0 - 0 0 0 Empty
Successfully wrote the new partition table

Re-reading the partition table ...
/dev/ide/host0/bus0/target0/lun0: p1 p2
also swap wird trotsdem wioeder angelegt :(

nochwas gefunden.
wenn swap aus, und dann partitioniert,formatiert wird nicht gemountet.
wenn swap ein, dann gehts wunderbar.

und nochwas gefunden.
der HDD Check geht irgendwie schief.

Code: Alles auswählen

Harddisk Menu 2007-04-09 Innuendo V0.26
[neutrino ide] found mountpoint /hdd
[neutrino ide] unmount /hdd
[neutrino ide] swapoff successful
[neutrino ide] executing /var/tuxbox/config/hddcheck.start
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
zero_log: head block 4 tail block 4
        - scan filesystem freespace and inode maps...
Segmentation fault
[neutrino ide] HDD check failed
die hddcheck.end wird da dann nicht mehr abgearbeitet(ist klar)wegen segfault.

Edit der HDD check im hautptmenü geht nur nicht. die einzelnen partitions-checks gehen wunderbar.

Code: Alles auswählen

Harddisk Menu 2007-04-09 Innuendo V0.26
[neutrino ide] found mountpoint /hdd
[neutrino ide] unmount /hdd
[neutrino ide] swapoff successful
[neutrino ide] executing /var/tuxbox/config/hddcheck.start
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
zero_log: head block 4 tail block 4
        - scan filesystem freespace and inode maps...
        - found root inode chunk
libxfs_bcache: 0x10095098
Max supported entries = 524288
Max utilized entries = 112
Active entries = 112
Hash table size = 65536
Hits = 96
Misses = 114
Hit ratio = 45.00
Hash buckets with   0 entries 65424 (  0%)
Hash buckets with   1 entries   112 (100%)
Tue Apr 10 16:48:23 2007
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - agno = 8
        - agno = 9
        - agno = 10
        - agno = 11
        - agno = 12
        - agno = 13
        - agno = 14
        - agno = 15
        - process newly discovered inodes...
libxfs_bcache: 0x10095098
Max supported entries = 524288
Max utilized entries = 113
Active entries = 113
Hash table size = 65536
Hits = 114
Misses = 115
Hit ratio = 49.00
Hash buckets with   0 entries 65423 (  0%)
Hash buckets with   1 entries   113 (100%)
Tue Apr 10 16:48:25 2007
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - clear lost+found (if it exists) ...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - agno = 8
        - agno = 9
        - agno = 10
        - agno = 11
        - agno = 12
        - agno = 13
        - agno = 14
        - agno = 15
libxfs_bcache: 0x10095098
Max supported entries = 524288
Max utilized entries = 113
Active entries = 113
Hash table size = 65536
Hits = 117
Misses = 115
Hit ratio = 50.00
Hash buckets with   0 entries 65423 (  0%)
Hash buckets with   1 entries   113 (100%)
Tue Apr 10 16:48:28 2007
Phase 5 - rebuild AG headers and trees...
        - reset superblock...
Phase 6 - check inode connectivity...
        - resetting contents of realtime bitmap and summary inodes
        - ensuring existence of lost+found directory
        - traversing filesystem starting at / ...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - agno = 8
        - agno = 9
        - agno = 10
        - agno = 11
        - agno = 12
        - agno = 13
        - agno = 14
        - agno = 15
        - traversal finished ...
        - traversing all unattached subtrees ...
        - traversals finished ...
        - moving disconnected inodes to lost+found ...
libxfs_icache: 0x10095038
Max supported entries = 524288
Max utilized entries = 4
Active entries = 4
Hash table size = 65536
Hits = 1
Misses = 4
Hit ratio = 20.00
Hash buckets with   0 entries 65532 (  0%)
Hash buckets with   1 entries     4 (100%)
libxfs_bcache: 0x10095098
Max supported entries = 524288
Max utilized entries = 113
Active entries = 82
Hash table size = 65536
Hits = 125
Misses = 197
Hit ratio = 38.00
Hash buckets with   0 entries 65454 (  0%)
Hash buckets with   1 entries    82 (100%)
Tue Apr 10 16:48:47 2007
Phase 7 - verify and correct link counts...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - agno = 8
        - agno = 9
        - agno = 10
        - agno = 11
        - agno = 12
        - agno = 13
        - agno = 14
        - agno = 15
libxfs_icache: 0x10095038
Max supported entries = 524288
Max utilized entries = 4
Active entries = 4
Hash table size = 65536
Hits = 1
Misses = 4
Hit ratio = 20.00
Hash buckets with   0 entries 65532 (  0%)
Hash buckets with   1 entries     4 (100%)
libxfs_bcache: 0x10095098
Max supported entries = 524288
Max utilized entries = 113
Active entries = 1
Hash table size = 65536
Hits = 126
Misses = 198
Hit ratio = 38.00
Hash buckets with   0 entries 65535 (  0%)
Hash buckets with   1 entries     1 (100%)
Tue Apr 10 16:48:48 2007
done
XFS mounting filesystem ide0(3,2)
[neutrino ide] mount /hdd successful
Adding Swap: 136544k swap-space (priority -2)
[neutrino ide] swapon successful
Harddisk Menu 2007-04-09 Innuendo V0.26
nur wird dort auch nicht die hddcheck.end abgearbeitet.

langsam wird das immer besser :)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

in der funktion
bool IdeConfWidget::Check(int dev)
ist ein copy und paste fehler :)deswegen geht das hddcheck.end script nicht.

Code: Alles auswählen

if(access(NEUTRINO_HDDFORMAT_END_SCRIPT, R_OK) == 0)
		execute_script(NEUTRINO_HDDCHECK_END_SCRIPT);
muss so heissen

Code: Alles auswählen

if(access(NEUTRINO_HDDCHECK_END_SCRIPT, R_OK) == 0)
		execute_script(NEUTRINO_HDDCHECK_END_SCRIPT);
ich suche weiter
Innuendo
Einsteiger
Einsteiger
Beiträge: 281
Registriert: Mittwoch 8. Dezember 2004, 21:45

Beitrag von Innuendo »

mb405 hat geschrieben:also swap wird trotsdem wioeder angelegt :(
nochwas gefunden.
wenn swap aus, und dann partitioniert,formatiert wird nicht gemountet.
wenn swap ein, dann gehts wunderbar.
das ist so gewollt ;-)

also ...
Swap off == Part1 wird mit mkswap eingerichtet, aber nicht aktiv gesetzt
Swap on == Part1 wird mit mkswap eingerichtet und aktiv gesetzt
(/var/etc/.hddpartition1_active)

1. alle Festplatten haben viele GB Speicher - da kommt es auf 128MB nicht an
2. mehr als 128MB Swap ist überflüssig (max Speicher DBox imho 64MB)
3. Wenn ich immer ein part1 für swap einrichte (egal ob aktiv oder inaktiv), dann ist folglich die erste Datenpartition immer part2 - das erleichtert jegliches mounten per script.
4. Mal mit und mal ohne Swap die Dbox starten/testen etc geht auf diesem Wege sehr einfach.
mb405 hat geschrieben: und nochwas gefunden.
der HDD Check geht irgendwie schief.
Segmentation fault
huch - setzen, sechs!
schau ich mir heut abend mal an.

Innu