Kernel 2.6 - IDE Unterstützung einbauen

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von Tommy »

flasher hat geschrieben:Hi

So wie ich die Config gepostet habe braucht man da nichts dran zu ändern. Wenn Du etwas möchtest, dann über die Parameter beim configure.
--enable-ide
--enable-xfs
--disable-ext3

Gruß
Okay - ich habe mein Buildskript mal darauf angepaßt und den XFS Part aus der config-flash wieder rausgenommen. Der eis ist momentan noch mit streamen beschäftigt. Danach starte ich mal einen neuen Build. Das ganze sieht jetzt so aus:

Code: Alles auswählen

#!/bin/sh

cvsdir=$HOME/tuxbox/tuxbox-cvs
cdkdir=$HOME/tuxbox/tuxbox-cvs/cdk
privatedir=$HOME/tuxbox/Private
distridir=$HOME/tuxbox/dbox2

# Clean
cd $cdkdir
make clean

# Checkout
cd $cvsdir
export CVS_RSH=ssh
BUILDDIR=$PWD
CVS=:ext:anoncvs@cvs.tuxbox.org:/cvs/tuxbox
cvs -qz9 -d $CVS co -f -r newmake -P .
cvs -qz9 update -dP -r driver_2_6_branch driver/

ln -s $HOME/Archive $HOME/tuxbox/tuxbox-cvs/cdk/Archive

# prebuild changings

cp $HOME/tuxbox/Private/busybox.config.m4 $cdkdir/Patches
cp $HOME/tuxbox/Private/linuxkernel.mk $cdkdir/make
cp $HOME/tuxbox/Private/linux-2.6.23-dbox2.config-flash $cdkdir/Patches
cp $HOME/tuxbox/Private/makedevices.c $cvsdir/apps/misc/tools/makedevices
cp $HOME/tuxbox/Private/rcS.m4 $cdkdir/root/etc/init.d
cp $HOME/tuxbox/Private/fstab $cdkdir/root/etc

cd $cdkdir
./autogen.sh
./configure --enable-maintainer-mode \
            --prefix=$distridir \
            --enable-flashrules \
            --enable-lirc \
            --enable-cdkVcInfo \
            --enable-kernel26 \
            --enable-ide \
            --enable-xfs \
            --disable-ext3 \
            --with-checkImage=rename \
            --with-cvsdir=$cvsdir \
            --with-ucodesdir=$privatedir/Ucodes \
            --with-customizationsdir=$privatedir/locals \
            --with-logosdir=$privatedir/Logos \
            --enable-ccache

time make flash-neutrino-squashfs-all
EDIT: Script wurde auf Hinweis von flasher (weiter unten) korrigiert


Die Dateien die ich oben kopiere

Code: Alles auswählen

cp $HOME/tuxbox/Private/busybox.config.m4 $cdkdir/Patches
cp $HOME/tuxbox/Private/linuxkernel.mk $cdkdir/make
cp $HOME/tuxbox/Private/makedevices.c $cvsdir/apps/misc/tools/makedevices
cp $HOME/tuxbox/Private/rcS.m4 $cdkdir/root/etc/init.d
cp $HOME/tuxbox/Private/fstab $cdkdir/root/etc
Sind die gesammelten werke/Erkenntnisse aus dem ganzen thread hier. Sehe ich das richtig das unter Newmake trotzdem die BB über die m4 konfiguriert und die rCS auch über m4 gebaut wird?

fstab:

Code: Alles auswählen

proc	/proc		proc	defaults	0 0
tmpfs	/tmp		tmpfs	defaults	0 0
sysfs	/sys		sysfs	noauto		0 0
devpts  /dev/pts	devpts	noauto		0 0
/dev/hda1 none swap defaults 0 0
/dev/hda2 /hdd xfs defaults 1 2
rCS.m4

Code: Alles auswählen

dnl This file generates rcS and (with macro insmod defined) rcS.insmod
dnl
dnl Most of its "power" comes from the macro loadmodule, that is expanded
dnl differently depending upon if insmod is defined or not.
dnl 
changequote({,})dnl
define({loadmodule},{ifdef({insmod},{$IM ${{MD}}$1 $2},{modprobe $1 $2})})dnl
define({ifmarkerfile},{if [ -e /var/etc/.$1 ]; then
	$2
ifelse($3,,,{else
	$3})
fi})dnl
define({runprogifexists},{if [ -e $1 ]; then
	$2 $3
fi})dnl
define({runaltprogifexists},{if [ -e $1 ]; then
	$2
else
	$3
fi})dnl
define({runprogcreatedirifexists},{if [ -e $1 ]; then
	if [ ! -d $2 ]; then
		mkdir $2
	fi
	$3
fi})dnl
define({runifexists},{if [ -x $1 ]; then
	$1 $2
fi})dnl
dnl
dnl
#!/bin/sh
# This file was automatically generated from rcS.m4
#
PATH=/sbin:/bin
ifdef({insmod},{IM=/sbin/{insmod}
MD=/lib/modules/$(uname -r)/misc/
})dnl

# extract kernel minor without using cut
OLD_IFS=$IFS
IFS='.'
get_second() {{ echo $2; }}
KMINOR=`get_second $(uname -r)`
IFS=$OLD_IFS

if [ $KMINOR -ge 6 ]; then
	MD=
	mount -t proc proc /proc
	mount -t tmpfs tmp /tmp
	mount -t tmpfs dev /dev
	mount -t sysfs sys /sys
	echo "/sbin/hotplug" > /proc/sys/kernel/hotplug
	# create necessary nodes,
	# static for now, i am just too lazy for udev :-)
	mkdir -p /dev/pts /dev/dbox /dev/dvb/adapter0 /dev/loop /dev/i2c /dev/input /dev/sound /dev/v4l /dev/fb /dev/vc /dev/mtdblock /dev/mtd /dev/tts
	if type -p makedevices; then
		makedevices
	else
		# in theory, now it is too late to create /dev/console...
		mknod /dev/console c 5 1
		mknod /dev/null c 1 3
		mknod /dev/tty c 5 0
		mknod /dev/tty0 c 4 0
		mknod /dev/tty1 c 4 1
		mknod /dev/tty2 c 4 2
		mknod /dev/tty3 c 4 3
		mknod /dev/ptmx c 5 2

		mknod /dev/urandom c 1 9
		mknod /dev/random c 1 8
		mknod /dev/mem c 1 1
		mknod /dev/kmem c 1 2

		mknod /dev/watchdog c 10 130

		mknod /dev/dvb/adapter0/audio0 c 212 1
		mknod /dev/dvb/adapter0/ca0 c 212 6
		mknod /dev/dvb/adapter0/ca1 c 212 22
		mknod /dev/dvb/adapter0/demux0 c 212 4
		mknod /dev/dvb/adapter0/dvr0 c 212 5
		mknod /dev/dvb/adapter0/frontend0 c 212 3
		mknod /dev/dvb/adapter0/net0 c 212 7
		mknod /dev/dvb/adapter0/video0 c 212 0
		
		mknod /dev/fb0 c 29 0

		mknod /dev/v4l/video0 c 81 0
		
		mknod /dev/sound/dsp c 14 3
		mknod /dev/sound/mixer c 14 0
		mknod /dev/sound/mixer1 c 14 16
		
		mknod /dev/input/event0 c 13 64
		mknod /dev/input/mouse0 c 13 32
		mknod /dev/input/mice c 13 63

		mknod /dev/i2c/0 c 89 0

		# 6 loop devices are enough.
		for i in 0 1 2 3 4 5; do
			mknod /dev/loop/$i b 7 $i
			mknod /dev/mtdblock/$i b 31 $i
		done
		mknod /dev/mtd/0 c 90 0
		mknod /dev/mtd/1 c 90 2
		mknod /dev/mtd/2 c 90 4
		mknod /dev/mtd/3 c 90 6
		mknod /dev/mtd/4 c 90 8
		mknod /dev/mtd/5 c 90 10
		mknod /dev/mtd/0ro c 90 1
		mknod /dev/mtd/1ro c 90 3
		mknod /dev/mtd/2ro c 90 5
		mknod /dev/mtd/3ro c 90 7
		mknod /dev/mtd/4ro c 90 9
		mknod /dev/mtd/5ro c 90 11

		mknod /dev/tts/0 c 4 64
		mknod /dev/tts/1 c 4 65
	fi
	# devices with dynamic minor numbers are created by /sbin/hotplug

	ln -sf /dev/fb0 /dev/fb/0
	ln -sf /dev/tty0 /dev/vc/0
		
	mount /dev/pts
fi

# If appropriate, load ide drivers and file system drivers
if [ $KMINOR -ge 6 ]; then
	# kernel 2.6
	if [ -e /lib/modules/$(uname -r)/extra/ide/dboxide.ko ] ; then
		loadmodule(dboxide)
		loadmodule(ide-disk)
		loadmodule(xfs)
	fi
else
	# kernel 2.4
	if [ -e /lib/modules/$(uname -r)/misc/dboxide.o ] ; then
		loadmodule(ide-core)
		loadmodule(dboxide)
		loadmodule(ide-detect)
		loadmodule(ide-disk)
		loadmodule(ext2)
		loadmodule(jbd)
		loadmodule(ext3)
		loadmodule(xfs)
	fi
fi

if [ $KMINOR -ge 6 ]; then
	# everything else is already mounted
	mount /var
else
	# Mount file systems in /etc/fstab
	mount -a
fi

# Turn on swap
ifmarkerfile({swap},{swapon -a})

runprogifexists({/var/tuxbox/config/target0.hdparm},{hdparm},{"`cat /var/tuxbox/config/target0.hdparm`" /dev/ide/host0/bus0/target0/lun0/disc})
runprogifexists({/var/tuxbox/config/target1.hdparm},{hdparm},{"`cat /var/tuxbox/config/target1.hdparm`" /dev/ide/host0/bus0/target1/lun0/disc})

# Set time zone etc
. /etc/profile
  
# Setup hostname
hostname -F /etc/hostname
ifup -a

ifdef({insmod},{loadmodule(event)},{type -p depmod > /dev/null && touch /etc/modules.conf && depmod -ae}) dnl

loadmodule(tuxbox)

# Get info about the current box
eval `/bin/tuxinfo -e`

echo "Detected STB:"
echo "	Vendor: $VENDOR"
echo "	Model: $MODEL $SUBMODEL"

loadmodule(dvb-core, dvb_shutdown_timeout=0)

if [ $MODEL_ID -eq 2 ]; then
	# Dreambox, not supported
	echo "For the Dreambox, please use another version"
	exit 1
fi

if [ $KMINOR -ge 6 ]; then
	# kernel 2.6

	dnl FIXME: using loadmodule makes no sense here
	dnl since modprobe is used to pull in the dependencies

	# I2C core
	loadmodule(dbox2_i2c)
	# load order is somehow important, if dbox2_napi (which pulls in
	# e.g. the demodulator drivers) is loaded first, at least tda80{xx,44h}
	# hang while initalizing the i2c-bus :-(
	loadmodule(saa7126)
	loadmodule(avs)
	loadmodule(lcd)

	loadmodule(dbox2_fp_input)

	loadmodule(dbox2_napi)

	loadmodule(avia_gt_fb)
	loadmodule(avia_gt_lirc)
	loadmodule(avia_gt_oss)
	loadmodule(avia_gt_v4l2)

	loadmodule(aviaEXT)
else
	# kernel 2.4

	# I2C core
	loadmodule(dbox2_i2c)

	# Frontprocessor
	loadmodule(dbox2_fp)
	if [ -e /var/etc/.oldrc ]; then
    		loadmodule(dbox2_fp_input, disable_new_rc=1)
	elif [ -e /var/etc/.newrc ]; then
		loadmodule(dbox2_fp_input, disable_old_rc=1)
	elif [ -e /var/etc/.philips_rc_patch ]; then
		loadmodule(dbox2_fp_input, philips_rc_patch=1)
	else
			loadmodule(dbox2_fp_input)
	fi

	# Misc IO
	loadmodule(avs)
	loadmodule(saa7126)

	# Frontends
	if [ $VENDOR_ID -eq 1 ]; then
		# Nokia
		loadmodule(ves1820)
		loadmodule(ves1x93, board_type=1)
		loadmodule(cam, mio=0xC000000 firmware=/var/tuxbox/ucodes/cam-alpha.bin)
	elif [ $VENDOR_ID -eq 2 ]; then
		# Philips
		ifmarkerfile({tda80xx.o},
			{loadmodule(tda80xx)},
			{loadmodule(tda8044h)})
		loadmodule(cam, mio=0xC040000 firmware=/var/tuxbox/ucodes/cam-alpha.bin)
	elif [ $VENDOR_ID -eq 3 ]; then
		# Sagem
		loadmodule(at76c651)
		loadmodule(ves1x93, board_type=2)
		loadmodule(cam, mio=0xC000000 firmware=/var/tuxbox/ucodes/cam-alpha.bin)
	fi

	loadmodule(dvb_i2c_bridge)

	loadmodule(avia_napi)
	loadmodule(cam_napi)
	loadmodule(dbox2_fp_napi)

	# Possibly turn off the watchdog on AVIA 500
	ifmarkerfile({no_watchdog},
		{loadmodule(avia_av, firmware=/var/tuxbox/ucodes no_watchdog=1)},
		{loadmodule(avia_av, firmware=/var/tuxbox/ucodes)})

	# Bei Avia_gt hw_sections und nowatchdog abfragen
	GTOPTS=""
	ifmarkerfile({hw_sections},{GTOPTS="hw_sections=0 "})
	ifmarkerfile({no_enxwatchdog},{GTOPTS="${{GTOPTS}}no_watchdog=1 "})

	loadmodule(avia_gt, {ucode=/var/tuxbox/ucodes/ucode.bin ${GTOPTS}})
  
	loadmodule(avia_gt_fb, console_transparent=0)
	loadmodule(lcd)
	loadmodule(avia_gt_lirc)
	loadmodule(avia_gt_oss)
	loadmodule(avia_gt_v4l2)

	loadmodule(avia_av_napi)
	ifmarkerfile({spts_mode},
		{loadmodule(avia_gt_napi, mode=1)
			loadmodule(dvb2eth)},
		{loadmodule(avia_gt_napi)})

	loadmodule(aviaEXT)
fi

# Create a telnet greeting
echo "$VENDOR $MODEL - Kernel %r (%t)." > /etc/issue.net

# compatibility links
if [ $KMINOR -lt 6 ]; then
	# compatibility links
	ln -sf demux0 /dev/dvb/adapter0/demux1
	ln -sf dvr0 /dev/dvb/adapter0/dvr1
	ln -sf fb/0 /dev/fb0
fi

if [ ! -d /var/etc ] ; then
    mkdir /var/etc
fi

runprogcreatedirifexists({/sbin/syslogd},{/var/log},{/sbin/syslogd})
runprogifexists({/var/tuxbox/config/lirc/lircd.conf},{lircd},
	{/var/tuxbox/config/lirc/lircd.conf})
runifexists({/bin/loadkeys},{/share/keymaps/i386/qwertz/de-latin1-nodeadkeys.kmap.gz})
runifexists({/sbin/inetd})
runprogifexists({/sbin/sshd},{/etc/init.d/start_sshd},{&})
runifexists({/sbin/dropbear})
runprogifexists({/sbin/automount},{/etc/init.d/start_automount})
runprogifexists({/bin/djmount},{/etc/init.d/start_upnp})
ifmarkerfile({boot_info},{runifexists({/bin/cdkVcInfo})})

# Start the nfs server if /etc/exports exists
runprogifexists({/etc/exports},{loadmodule(nfsd)
	pidof portmap >/dev/null || portmap
	exportfs -r
	rpc.mountd
	rpc.nfsd 3})	

#Start the samba server if /var/etc/.sambaserver and /etc/smb.conf.dbox exist
ifmarkerfile({sambaserver},{if [ -e /etc/smb.conf -a -x /bin/nmbd -a -x /bin/smbd ]; then
		/bin/nmbd -D
		/bin/smbd -D -a -s /etc/smb.conf
	fi})

ifmarkerfile({tuxmaild},{tuxmaild})
ifmarkerfile({tuxcald},{tuxcald})
ifmarkerfile({rdate},{rdate time.fu-berlin.de})
ifmarkerfile({initialize},{/etc/init.d/initialize && rm /var/etc/.initialize})

if [ -e /var/etc/init.d/rcS.local ]; then
	. /var/etc/init.d/rcS.local
elif [ -e /etc/init.d/rcS.local ]; then
	. /etc/init.d/rcS.local
fi
makedevices.c

Code: Alles auswählen

/*  $Id
    A small hack to create all needed device nodes in rcS.
    Ten times faster than doing it in a script.

    Copyright (C) 2007 Stefan Seyfried
    All rights reserved.

    This program is released under the GNU General Public License
    (GPL) Version 2, not any other version of that license.
 */

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>

#define C S_IFCHR
#define B S_IFBLK

struct deventry {
	const char *name;
	const int type;
	const char major;
	const char minor;
};

struct deventry devices[] = {
	{ "mem",	C, 1, 1 },
	{ "kmem",	C, 1, 2 },
	{ "null",	C, 1, 3 },
	{ "random",	C, 1, 8 },
	{ "urandom",	C, 1, 9 },
	{ "tty0",	C, 4, 0 },
	{ "tty1",	C, 4, 1 },
	{ "tty2",	C, 4, 2 },
	{ "tty3",	C, 4, 3 },
	{ "tts/0", C, 204, 46 },
	{ "tts/1", C, 204, 47 },
	{ "tty",	C, 5, 0 },
	{ "console",	C, 5, 1 },
	{ "ptmx",	C, 5, 2 },
	{ "loop0",	B, 7, 0 },
	{ "loop1",	B, 7, 1 },
	{ "loop2",	B, 7, 2 },
	{ "loop3",	B, 7, 3 },
	{ "loop4",	B, 7, 4 },
	{ "loop5",	B, 7, 5 },
	{ "loop6",	B, 7, 6 },
	{ "loop7",	B, 7, 7 },
	{ "hda", B, 3, 0 },
  { "hda1", B, 3, 1 },
  { "hda2", B, 3, 2 },
  { "hda3", B, 3, 3 },
  { "hda4", B, 3, 4 },
  { "hda5", B, 3, 5 },
	{ "input/mouse0",	C, 13, 32 },
	{ "input/mice",		C, 13, 63 },
	{ "input/event0",	C, 13, 64 },
	{ "sound/mixer",	C, 14, 0 },
	{ "sound/dsp",		C, 14, 3 },
	{ "sound/mixer1",	C, 14, 16 },
	{ "fb0",	C, 29, 0 },
	{ "mtdblock/0",	B, 31, 0 },
	{ "mtdblock/1",	B, 31, 1 },
	{ "mtdblock/2",	B, 31, 2 },
	{ "mtdblock/3",	B, 31, 3 },
	{ "mtdblock/4",	B, 31, 4 },
	{ "mtdblock/5",	B, 31, 5 },
	{ "v4l/video0",	C, 81, 0 },
	{ "i2c/0",	C, 89, 0 },
	{ "mtd/0",	C, 90, 0 },
	{ "mtd/1",	C, 90, 2 },
	{ "mtd/2",	C, 90, 4 },
	{ "mtd/3",	C, 90, 6 },
	{ "mtd/4",	C, 90, 8 },
	{ "mtd/5",	C, 90, 10 },
	{ "mtd/0ro",	C, 90, 1 },
	{ "mtd/1ro",	C, 90, 3 },
	{ "mtd/2ro",	C, 90, 5 },
	{ "mtd/3ro",	C, 90, 7 },
	{ "mtd/4ro",	C, 90, 9 },
	{ "mtd/5ro",	C, 90, 11 },
	{ "dvb/adapter0/video0",	C, 212, 0 },
	{ "dvb/adapter0/audio0",	C, 212, 1 },
	{ "dvb/adapter0/frontend0",	C, 212, 3 },
	{ "dvb/adapter0/demux0",	C, 212, 4 },
	{ "dvb/adapter0/dvr0",		C, 212, 5 },
	{ "dvb/adapter0/ca0",		C, 212, 6 },
	{ "dvb/adapter0/net0",		C, 212, 7 },
	{ "dvb/adapter0/ca1",		C, 212, 22 },
	{ NULL, 0, 0, 0 }
};

int main(void)
{
	int i = 0;
	char devname[100];
	while (devices[i].name) {
		strcpy(devname, "/dev/");
		strcat(devname, devices[i].name);
		if (mknod(devname, devices[i].type|0600,
			  makedev(devices[i].major,devices[i].minor)))
			fprintf(stderr, "mknod %s: %s\n", devname,
							strerror(errno));
		i++;
	}
	return 0;
}
Zuletzt geändert von Tommy am Sonntag 18. Mai 2008, 10:15, insgesamt 1-mal geändert.
flasher
Developer
Beiträge: 467
Registriert: Dienstag 15. Juli 2003, 10:58

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von flasher »

Hi

Ja, die BB und die rcS sind beide m4 bei newmake.
Welche Dateien ausschliesslich zu newmake gehören kannst Du auch in der Datei : newmake.files im cdk Ordner nachlesen.

Was ich aber in Deinem Script vermisse ist das kopieren meiner angepassten Kernel-Config nach cdk/Patches...
mohousch
Einsteiger
Einsteiger
Beiträge: 362
Registriert: Mittwoch 14. Dezember 2005, 03:25

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von mohousch »

Hi

die rcS ist auch sehr unübersichtlich, kann man die nicht nur für 26 anpassen? sieht einfacher aus. :)
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von Tommy »

Was ich aber in Deinem Script vermisse ist das kopieren meiner angepassten Kernel-Config nach cdk/Patches...
verdammt :wink: - habs bei mir angepaßt und oben editiert.

Das mit der rCS ist wirklich nicht toll aber aus der m4 wird auch die 2.4er gebaut. Das könnte man also nicht eichecken. Ich werd mich aber heute nachmittag mal hinsetzen und die datei "entfilzen". Zumindest für die "reinkopierlösung" kann man eine 2.6 only machen.
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von Barf »

Warum nicht die Kernelversion an m4 übergeben, und m4 die Arbeit machen lassen? Kernelversion ist ja während Build bekannt. Also, statt

Code: Alles auswählen

if [ $KMINOR -ge 6 ]; then
    # 2.6 zeugs
else
    # 2.4 zeugs
fi
so hier

Code: Alles auswählen

ifelse(kernelversion,{2.6},
{# 2.6 zeugs},{# 2.4 zeugs})
angenommen z.B. dass m4 mit

Code: Alles auswählen

m4 -Dkernelversion=2.6
gestartet wird. (Hat mich eine längere Zeit gestört. :wink: )
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von Tommy »

hi Barf - schön das Du mal vorbeischaust. Ich habe Deinen Vorschlag mal umgesetzt. Damit die Änderungen zu finden sind habe ich 2.6 zeugs/2.4zeugs drinstehen lassen ;-). Wenn das syntaktisch richtig ist müssen wir nur noch die Kernelversion übergeben.

Code: Alles auswählen

dnl This file generates rcS and (with macro insmod defined) rcS.insmod
dnl
dnl Most of its "power" comes from the macro loadmodule, that is expanded
dnl differently depending upon if insmod is defined or not.
dnl 
changequote({,})dnl
define({loadmodule},{ifdef({insmod},{$IM ${{MD}}$1 $2},{modprobe $1 $2})})dnl
define({ifmarkerfile},{if [ -e /var/etc/.$1 ]; then
   $2
ifelse($3,,,{else
   $3})
fi})dnl
define({runprogifexists},{if [ -e $1 ]; then
   $2 $3
fi})dnl
define({runaltprogifexists},{if [ -e $1 ]; then
   $2
else
   $3
fi})dnl
define({runprogcreatedirifexists},{if [ -e $1 ]; then
   if [ ! -d $2 ]; then
      mkdir $2
   fi
   $3
fi})dnl
define({runifexists},{if [ -x $1 ]; then
   $1 $2
fi})dnl
dnl
dnl
#!/bin/sh
# This file was automatically generated from rcS.m4
#
PATH=/sbin:/bin
ifdef({insmod},{IM=/sbin/{insmod}
MD=/lib/modules/$(uname -r)/misc/
})dnl

# extract kernel minor without using cut
OLD_IFS=$IFS
IFS='.'
get_second() {{ echo $2; }}
KMINOR=`get_second $(uname -r)`
IFS=$OLD_IFS

ifelse(kernelversion,{2.6},
{
  # 2.6 zeugs
   MD=
   mount -t proc proc /proc
   mount -t tmpfs tmp /tmp
   mount -t tmpfs dev /dev
   mount -t sysfs sys /sys
   echo "/sbin/hotplug" > /proc/sys/kernel/hotplug
   # create necessary nodes,
   # static for now, i am just too lazy for udev :-)
   mkdir -p /dev/pts /dev/dbox /dev/dvb/adapter0 /dev/loop /dev/i2c /dev/input /dev/sound /dev/v4l /dev/fb /dev/vc /dev/mtdblock /dev/mtd /dev/tts
   if type -p makedevices; then
      makedevices
   else
      # in theory, now it is too late to create /dev/console...
      mknod /dev/console c 5 1
      mknod /dev/null c 1 3
      mknod /dev/tty c 5 0
      mknod /dev/tty0 c 4 0
      mknod /dev/tty1 c 4 1
      mknod /dev/tty2 c 4 2
      mknod /dev/tty3 c 4 3
      mknod /dev/ptmx c 5 2

      mknod /dev/urandom c 1 9
      mknod /dev/random c 1 8
      mknod /dev/mem c 1 1
      mknod /dev/kmem c 1 2

      mknod /dev/watchdog c 10 130

      mknod /dev/dvb/adapter0/audio0 c 212 1
      mknod /dev/dvb/adapter0/ca0 c 212 6
      mknod /dev/dvb/adapter0/ca1 c 212 22
      mknod /dev/dvb/adapter0/demux0 c 212 4
      mknod /dev/dvb/adapter0/dvr0 c 212 5
      mknod /dev/dvb/adapter0/frontend0 c 212 3
      mknod /dev/dvb/adapter0/net0 c 212 7
      mknod /dev/dvb/adapter0/video0 c 212 0
      
      mknod /dev/fb0 c 29 0

      mknod /dev/v4l/video0 c 81 0
      
      mknod /dev/sound/dsp c 14 3
      mknod /dev/sound/mixer c 14 0
      mknod /dev/sound/mixer1 c 14 16
      
      mknod /dev/input/event0 c 13 64
      mknod /dev/input/mouse0 c 13 32
      mknod /dev/input/mice c 13 63

      mknod /dev/i2c/0 c 89 0

      # 6 loop devices are enough.
      for i in 0 1 2 3 4 5; do
         mknod /dev/loop/$i b 7 $i
         mknod /dev/mtdblock/$i b 31 $i
      done
      mknod /dev/mtd/0 c 90 0
      mknod /dev/mtd/1 c 90 2
      mknod /dev/mtd/2 c 90 4
      mknod /dev/mtd/3 c 90 6
      mknod /dev/mtd/4 c 90 8
      mknod /dev/mtd/5 c 90 10
      mknod /dev/mtd/0ro c 90 1
      mknod /dev/mtd/1ro c 90 3
      mknod /dev/mtd/2ro c 90 5
      mknod /dev/mtd/3ro c 90 7
      mknod /dev/mtd/4ro c 90 9
      mknod /dev/mtd/5ro c 90 11

      mknod /dev/tts/0 c 4 64
      mknod /dev/tts/1 c 4 65
   fi
   # devices with dynamic minor numbers are created by /sbin/hotplug

   ln -sf /dev/fb0 /dev/fb/0
   ln -sf /dev/tty0 /dev/vc/0
      
   mount /dev/pts
},{
# 2.4 zeugs
})

# If appropriate, load ide drivers and file system drivers
ifelse(kernelversion,{2.6},
{
# 2.6 zeugs

   # kernel 2.6
   if [ -e /lib/modules/$(uname -r)/extra/ide/dboxide.ko ] ; then
      loadmodule(dboxide)
      loadmodule(ide-disk)
      loadmodule(xfs)
   fi

},{
# 2.4 zeugs

   if [ -e /lib/modules/$(uname -r)/misc/dboxide.o ] ; then
      loadmodule(ide-core)
      loadmodule(dboxide)
      loadmodule(ide-detect)
      loadmodule(ide-disk)
      loadmodule(ext2)
      loadmodule(jbd)
      loadmodule(ext3)
      loadmodule(xfs)
   fi

})

ifelse(kernelversion,{2.6},
{
# 2.6 zeugs
   # everything else is already mounted
   mount /var
},{
# 2.4 zeugs
   # Mount file systems in /etc/fstab
   mount -a
})

# Turn on swap
ifmarkerfile({swap},{swapon -a})

runprogifexists({/var/tuxbox/config/target0.hdparm},{hdparm},{"`cat /var/tuxbox/config/target0.hdparm`" /dev/ide/host0/bus0/target0/lun0/disc})
runprogifexists({/var/tuxbox/config/target1.hdparm},{hdparm},{"`cat /var/tuxbox/config/target1.hdparm`" /dev/ide/host0/bus0/target1/lun0/disc})

# Set time zone etc
. /etc/profile
  
# Setup hostname
hostname -F /etc/hostname
ifup -a

ifdef({insmod},{loadmodule(event)},{type -p depmod > /dev/null && touch /etc/modules.conf && depmod -ae}) dnl

loadmodule(tuxbox)

# Get info about the current box
eval `/bin/tuxinfo -e`

echo "Detected STB:"
echo "   Vendor: $VENDOR"
echo "   Model: $MODEL $SUBMODEL"

loadmodule(dvb-core, dvb_shutdown_timeout=0)

if [ $MODEL_ID -eq 2 ]; then
   # Dreambox, not supported
   echo "For the Dreambox, please use another version"
   exit 1
fi

ifelse(kernelversion,{2.6},
{
# 2.6 zeugs

   # kernel 2.6

   dnl FIXME: using loadmodule makes no sense here
   dnl since modprobe is used to pull in the dependencies

   # I2C core
   loadmodule(dbox2_i2c)
   # load order is somehow important, if dbox2_napi (which pulls in
   # e.g. the demodulator drivers) is loaded first, at least tda80{xx,44h}
   # hang while initalizing the i2c-bus :-(
   loadmodule(saa7126)
   loadmodule(avs)
   loadmodule(lcd)

   loadmodule(dbox2_fp_input)

   loadmodule(dbox2_napi)

   loadmodule(avia_gt_fb)
   loadmodule(avia_gt_lirc)
   loadmodule(avia_gt_oss)
   loadmodule(avia_gt_v4l2)

   loadmodule(aviaEXT)

},{
# 2.4 zeugs
   # kernel 2.4

   # I2C core
   loadmodule(dbox2_i2c)

   # Frontprocessor
   loadmodule(dbox2_fp)
   if [ -e /var/etc/.oldrc ]; then
          loadmodule(dbox2_fp_input, disable_new_rc=1)
   elif [ -e /var/etc/.newrc ]; then
      loadmodule(dbox2_fp_input, disable_old_rc=1)
   elif [ -e /var/etc/.philips_rc_patch ]; then
      loadmodule(dbox2_fp_input, philips_rc_patch=1)
   else
         loadmodule(dbox2_fp_input)
   fi

   # Misc IO
   loadmodule(avs)
   loadmodule(saa7126)

   # Frontends
   if [ $VENDOR_ID -eq 1 ]; then
      # Nokia
      loadmodule(ves1820)
      loadmodule(ves1x93, board_type=1)
      loadmodule(cam, mio=0xC000000 firmware=/var/tuxbox/ucodes/cam-alpha.bin)
   elif [ $VENDOR_ID -eq 2 ]; then
      # Philips
      ifmarkerfile({tda80xx.o},
         {loadmodule(tda80xx)},
         {loadmodule(tda8044h)})
      loadmodule(cam, mio=0xC040000 firmware=/var/tuxbox/ucodes/cam-alpha.bin)
   elif [ $VENDOR_ID -eq 3 ]; then
      # Sagem
      loadmodule(at76c651)
      loadmodule(ves1x93, board_type=2)
      loadmodule(cam, mio=0xC000000 firmware=/var/tuxbox/ucodes/cam-alpha.bin)
   fi

   loadmodule(dvb_i2c_bridge)

   loadmodule(avia_napi)
   loadmodule(cam_napi)
   loadmodule(dbox2_fp_napi)

   # Possibly turn off the watchdog on AVIA 500
   ifmarkerfile({no_watchdog},
      {loadmodule(avia_av, firmware=/var/tuxbox/ucodes no_watchdog=1)},
      {loadmodule(avia_av, firmware=/var/tuxbox/ucodes)})

   # Bei Avia_gt hw_sections und nowatchdog abfragen
   GTOPTS=""
   ifmarkerfile({hw_sections},{GTOPTS="hw_sections=0 "})
   ifmarkerfile({no_enxwatchdog},{GTOPTS="${{GTOPTS}}no_watchdog=1 "})

   loadmodule(avia_gt, {ucode=/var/tuxbox/ucodes/ucode.bin ${GTOPTS}})
  
   loadmodule(avia_gt_fb, console_transparent=0)
   loadmodule(lcd)
   loadmodule(avia_gt_lirc)
   loadmodule(avia_gt_oss)
   loadmodule(avia_gt_v4l2)

   loadmodule(avia_av_napi)
   ifmarkerfile({spts_mode},
      {loadmodule(avia_gt_napi, mode=1)
         loadmodule(dvb2eth)},
      {loadmodule(avia_gt_napi)})

   loadmodule(aviaEXT)
})

# Create a telnet greeting
echo "$VENDOR $MODEL - Kernel %r (%t)." > /etc/issue.net

# compatibility links
ifelse(kernelversion,{2.6},
{
# 2.6 zeugs
   # compatibility links
   ln -sf demux0 /dev/dvb/adapter0/demux1
   ln -sf dvr0 /dev/dvb/adapter0/dvr1
   ln -sf fb/0 /dev/fb0

},{
# 2.4 zeugs
})

if [ ! -d /var/etc ] ; then
    mkdir /var/etc
fi

runprogcreatedirifexists({/sbin/syslogd},{/var/log},{/sbin/syslogd})
runprogifexists({/var/tuxbox/config/lirc/lircd.conf},{lircd},
   {/var/tuxbox/config/lirc/lircd.conf})
runifexists({/bin/loadkeys},{/share/keymaps/i386/qwertz/de-latin1-nodeadkeys.kmap.gz})
runifexists({/sbin/inetd})
runprogifexists({/sbin/sshd},{/etc/init.d/start_sshd},{&})
runifexists({/sbin/dropbear})
runprogifexists({/sbin/automount},{/etc/init.d/start_automount})
runprogifexists({/bin/djmount},{/etc/init.d/start_upnp})
ifmarkerfile({boot_info},{runifexists({/bin/cdkVcInfo})})

# Start the nfs server if /etc/exports exists
runprogifexists({/etc/exports},{loadmodule(nfsd)
   pidof portmap >/dev/null || portmap
   exportfs -r
   rpc.mountd
   rpc.nfsd 3})   

#Start the samba server if /var/etc/.sambaserver and /etc/smb.conf.dbox exist
ifmarkerfile({sambaserver},{if [ -e /etc/smb.conf -a -x /bin/nmbd -a -x /bin/smbd ]; then
      /bin/nmbd -D
      /bin/smbd -D -a -s /etc/smb.conf
   fi})

ifmarkerfile({tuxmaild},{tuxmaild})
ifmarkerfile({tuxcald},{tuxcald})
ifmarkerfile({rdate},{rdate time.fu-berlin.de})
ifmarkerfile({initialize},{/etc/init.d/initialize && rm /var/etc/.initialize})

if [ -e /var/etc/init.d/rcS.local ]; then
   . /var/etc/init.d/rcS.local
elif [ -e /etc/init.d/rcS.local ]; then
   . /etc/init.d/rcS.local
fi
 
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von seife »

Wie isses denn damit?
linux-2.6.23-dbox2.config-flash

Ich habe jetzt nicht alle Kombinationen durchkompiliert, aber zumindest "make oldconfig" beschwerte sich weder mit --enable-ide, noch ohne. Dasselbe mit "--disable-ext3" und "--enable-xfs".
Auch mit "--enable-nfsserver" keine Fragen.

Ob es dann auch funktioniert, ist eine ganz andere Sache... ;-)
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von Tommy »

seife hat geschrieben:Wie isses denn damit?
linux-2.6.23-dbox2.config-flash

Ich habe jetzt nicht alle Kombinationen durchkompiliert, aber zumindest "make oldconfig" beschwerte sich weder mit --enable-ide, noch ohne. Dasselbe mit "--disable-ext3" und "--enable-xfs".
Auch mit "--enable-nfsserver" keine Fragen.

Ob es dann auch funktioniert, ist eine ganz andere Sache... ;-)
Ich weiß nicht was an Deiner config anders ist (hab sie jetzt nicht getestet) - die von flasher läuft durch. Auf der box testen kann ich erst später.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von seife »

Meine config hat alle features enabled (als Modul), die werden dann vom linuxkernel.mk per sed selektiv ausgeschaltet. Das führt dazu, dass es nicht vorkommen sollte, dass plötzlich eine neue Option (als Folge des Einschaltens von z.B. IDE) auftaucht, die dann bestätigt werden muss. Im Ergebnis sollten beide Configs gleich sein.
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von Tommy »

seife hat geschrieben:Meine config hat alle features enabled (als Modul), die werden dann vom linuxkernel.mk per sed selektiv ausgeschaltet. Das führt dazu, dass es nicht vorkommen sollte, dass plötzlich eine neue Option (als Folge des Einschaltens von z.B. IDE) auftaucht, die dann bestätigt werden muss. Im Ergebnis sollten beide Configs gleich sein.
ich habe jetzt nochmal einen build mit Deiner gestartet - in 47Minuten bin ich schlauer ;-)

BTW: wie kann man m4 den Kernel übergeben (s. Barfs Post) das würde die rCS gründlich entschlacken
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von seife »

Ich habe die config im upload gerade nochmal upated - sie fragte nun nach squashfs ;-)
Also einfach 2x [Enter], oder nochmal neu anfangen.
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von Tommy »

seife hat geschrieben:Ich habe die config im upload gerade nochmal upated - sie fragte nun nach squashfs ;-)
Also einfach 2x [Enter], oder nochmal neu anfangen.
...ich hatte es schon im clipboard habe aber den thread nochmal aktualisiert :lol:
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von Tommy »

so - image mit flashers config startet nicht:

Code: Alles auswählen

debug: DDF: Calibrating delay loop... debug: DDF: 66.76 BogoMIPS
debug: BMon V1.2  mID 03
debug: feID 00    enxID 03
debug: fpID 52     dsID 01-f1.e5.06.08.00.00-5c
debug: HWrev 21  FPrev 0.23
debug: B/Ex/Fl(MB) 32/00/08
WATCHDOG reset enabled
dbox2:root> debug: 
BOOTP/TFTP bootstrap loader (v0.3)
debug: 
debug: Transmitting BOOTP request via broadcast
debug: Given up BOOTP/TFTP boot
boot net failed

Flash-FS bootstrap loader (v1.5)

Found Flash-FS superblock version 3.1
Found file /root/platform/sagem-dbox2/kernel/os in Flash-FS
debug: Got Block #0040

will verify ELF image, start= 0x800000, size= 160440
verify sig: 262
Branching to 0x40000


U-Boot 1.2.0 (Tuxbox) (May 18 2008 - 10:25:29)

CPU:   PPC823ZTnnB2 at 66 MHz: 2 kB I-Cache 1 kB D-Cache
Board: DBOX2, Sagem, BMon V1.2
       Watchdog enabled
I2C:   ready
DRAM:  32 MB
FLASH:  8 MB
Scanning JFFS2 FS: . done.
find_inode failed for name=boot.conf
load: Failed to find inode
FB:    ready
LCD:   ready
In:    serial
Out:   serial
Err:   serial
Net:   SCC ETHERNET
find_inode failed for name=logo-lcd
load: Failed to find inode
ready - can't find logo in flash

Options:
  1: console on ttyCPM0 (2.6)
  2: console on fb0
  3: console on ttyS0 (2.4)
Select option (1-3), other keys to stop autoboot:  0 
### FS (squashfs) loading 'vmlinuz' to 0x200000
### FS load complete: 949256 bytes loaded to 0x200000
............................................................... done
Un-Protected 63 sectors
## Booting image at 00200000 ...
   Image Name:   Linux-2.6.23-dbox2
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    949192 Bytes = 926.9 kB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
[    0.000000] Linux version 2.6.23-dbox2 (tommy@eis) (gcc version 3.4.6) #6 PRE
EMPT Sun May 18 10:31:40 CEST 2008
[    0.000000] Zone PFN ranges:
[    0.000000]   DMA             0 ->     8192
[    0.000000]   Normal       8192 ->     8192
[    0.000000] Movable zone start PFN for each node
[    0.000000] early_node_map[1] active PFN ranges
[    0.000000]     0:        0 ->     8192
[    0.000000] Built 1 zonelists in Zone order.  Total pages: 8128
[    0.000000] Kernel command line: console=ttyCPM0,9600 root=/dev/mtdblock2 roo
tfstype=squashfs
[    0.000000] PID hash table entries: 128 (order: 7, 512 bytes)
[    0.000000] Decrementer Frequency = 247500000/60
[    0.000000] m8xx_wdt: active wdt found (SWTC: 0xFFFF, SWP: 0x1)
[    0.000000] m8xx_wdt: keep-alive trigger installed (PITC: 0x2000)
[   11.548001] Console: colour dummy device 80x25
[   11.548144] cpm_uart: console: compat mode
[   11.548360] console [ttyCPM0] enabled
[   12.545051] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[   12.624128] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[   12.713916] Memory: 30340k available (1580k kernel code, 456k data, 64k init,
 0k highmem)
[   12.999754] Mount-cache hash table entries: 512
[   13.065157] NET: Registered protocol family 16
[   13.206825] NET: Registered protocol family 2
[   13.338368] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[   13.419455] TCP established hash table entries: 1024 (order: 1, 8192 bytes)
[   13.501575] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[   13.577313] TCP: Hash tables configured (established 1024 bind 1024)
[   13.653104] TCP reno registered
[   13.718675] dbox2: Sagem board detected.
[   13.783303] squashfs: version 3.3 (2007/10/31) Phillip Lougher
[   13.850849] JFFS2 version 2.2. (NAND)  2001-2006 Red Hat, Inc.
[   13.924622] io scheduler noop registered
[   13.969048] io scheduler deadline registered (default)
[   14.061258] Serial: CPM driver $Revision: 0.02 $
[   14.114106] cpm_uart: WARNING: no UART devices found on platform bus!
[   14.190819] cpm_uart: the driver will guess configuration, but this mode is n
o longer supported.
[   14.296215] ttyCPM0 at MMIO 0xff000a80 (irq = 20) is a CPM UART
[   14.368725] ttyCPM1 at MMIO 0xff000a90 (irq = 19) is a CPM UART
[   14.457034] loop: module loaded
[   14.495700] Linux video capture interface: v2.00
[   14.552702] D-Box 2 flash driver (size->0x800000 mem->0x10000000)
[   14.626312] D-Box 2 flash memory: Found 1 x16 devices at 0x0 in 16-bit bank
[   14.706756]  Intel/Sharp Extended Query Table at 0x0031
[   14.769127] Using buffer write method
[   14.812357] cfi_cmdset_0001: Erase suspend on write enabled
[   14.879414] Creating 6 MTD partitions on "D-Box 2 flash memory":
[   14.950976] 0x00000000-0x00020000 : "BR bootloader"
[   15.015334] 0x00020000-0x00040000 : "FLFS (U-Boot)"
[   15.076614] 0x00040000-0x006a0000 : "root (squashfs)"
[   15.140494] 0x006a0000-0x00800000 : "var (JFFS2)"
[   15.200835] 0x00020000-0x00800000 : "Flash without bootloader"
[   15.274415] 0x00000000-0x00800000 : "Complete Flash"
[   15.338841] mice: PS/2 mouse device common for all mice
[   15.406949] eth0: CPM ENET Version 0.2 on SCC2, 00:50:9c:33:23:65
[   15.476550] TCP cubic registered
[   15.515614] NET: Registered protocol family 1
[   15.567674] NET: Registered protocol family 17
[   15.634941] VFS: Mounted root (squashfs filesystem) readonly.
[   15.715703] Freeing unused kernel memory: 64k it
/sbin/init: error while loading shared libraries[   15.943422] Kernel panic - no
t syncing: Attempted to kill init!
: libncurses.so.5: cannot open shared object file: No such file [   16.059907] R
ebooting in 180 seconds..or directory
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von seife »

Das hat aber mit der Kernel-Konfiguration nichts zu tun. Dein /sbin/init verlangt nach libncurses - ich haber aber keine Ahnung, warum.
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von Tommy »

seife hat geschrieben:Das hat aber mit der Kernel-Konfiguration nichts zu tun. Dein /sbin/init verlangt nach libncurses - ich haber aber keine Ahnung, warum.
dewr Fehler liegt irgendwo in meinem customizing :evil:

wenn ich die locals weglasse löppts:

Code: Alles auswählen

[   15.020999] Freeing unused kernel memory: 64k it
init started: BusyBox v1.7.2 (2008-05-18 15:36:51 CEST)
starting pid 103, tty '': '/etc/init.d/rcS'
/bin/makedevices
[   17.652864] Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
[   17.747225] ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
[   17.973091] dboxide: $Id: main.c,v 1.4.2.6 2007/10/09 01:04:06 carjay Exp $
[   18.062258] dboxide: activating cs2
[   18.100869] dboxide: address space of DBox2 IDE CPLD is at: 0xc38b4000
[   22.142216] hda: SAMSUNG HM100JC, ATA DISK drive
[   22.912491] dbox2  at 0x010-0x017,0x04e on irq 47
[   23.205657] hda: max request size: 512KiB
[   23.373097] hda: 195371568 sectors (100030 MB) w/8192KiB Cache, CHS=16383/255/63
[   23.458085] hda: cache flushes supported
[   23.505774]  hda: hda1 hda2
[   27.783981] SGI XFS with no debug enabled
Detected STB:
        Vendor: Sagem
        Model: D-BOX2 
[   29.432929] [i2c-8xx]: mpc 8xx i2c init
[   29.502203] [i2c-8xx]: adapter: 0
Allerdings ist die Platte nach dem booten nicht gemountet

fstab:

Code: Alles auswählen

proc	/proc		proc	defaults	0 0
tmpfs	/tmp		tmpfs	defaults	0 0
sysfs	/sys		sysfs	noauto		0 0
devpts  /dev/pts	devpts	noauto		0 0
/dev/hda1 none swap defaults 0 0
/dev/hda2 /hdd xfs defaults 1 2
/dev/mtdblock/3     /var     jffs2     defaults     0 0
/dev/ide/host0/bus0/target0/lun0/part2 /hdd xfs defaults 1 2
wer/was ballert da die letzten beiden zeilen rein? Die sind nicht von mir. Ansonsten müßte es doch so laufen?!

händisch mounten geht:

Code: Alles auswählen

~ # mount -t xfs /dev/hda2 /hdd
~ # mount
rootfs on / type rootfs (rw)
/dev/root on / type squashfs (ro)
dev on /dev type tmpfs (rw)
proc on /proc type proc (rw)
tmp on /tmp type tmpfs (rw)
dev on /dev type tmpfs (rw)
sys on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw)
/dev/mtdblock/3 on /var type jffs2 (rw)
/dev/hda2 on /hdd type xfs (rw)
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von Tommy »

wie funktioniert diese fstab eigentlich? Wird die nur einmal gelesen? Evtl. _vor_ dem IDE Treiber?

Wo kann man am besten mounten wenn fstab nicht geht? Wäre der Automounter eine Option?

Ansonsten fallen mir nur

Code: Alles auswählen

rcS
rcS.local
start_neutrino
ein
mohousch
Einsteiger
Einsteiger
Beiträge: 362
Registriert: Mittwoch 14. Dezember 2005, 03:25

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von mohousch »

die fstab ist hauptsächtilch für die filesystem des System zuständig, die kann man in der rcS rufen mit mount -a (root user) falls da was schief geht und es für das hochfahren des system nicht wichtig denn kann man die auch später in der console aufrufen.

2-automount was in fstab mounten ist ein ganz schlechte Idee.
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von Tommy »

mohousch hat geschrieben: die fstab ist hauptsächtilch für die filesystem des System zuständig, die kann man in der rcS rufen mit mount -a (root user) falls da was schief geht und es für das hochfahren des system nicht wichtig denn kann man die auch später in der console aufrufen.
Wenn das IDE drin ist würde ich das mounten der Platte schon als wichtig betrachten - das gehört da einfach rein. Die Frage ist nur zu welcher Zeit und wie kommen die Einträge da rein. Beim bauen des images weis ja keiner ob der Enduser ein IDE hat. Womit sich vermutl. der Kreis zum IDE Menü schließt. Von dort aus müssen die Einträge in die fstab geschrieben werden. Allerdings erkennt der IDE Treiber ja schon wie die Platte aussieht:

Code: Alles auswählen

[   23.505774]  hda: hda1 hda2
[   27.783981] SGI XFS with no debug enabled
wenn man jetzt noch rausbekäme ob/welche Partition Swap ist könnte man von der rcS aus die fstab beschreiben.
mohousch hat geschrieben:
2-automount was in fstab mounten ist ein ganz schlechte Idee.
beim automounter dachte ich eher an die auto.net :wink:

BTW es erschließt sich mir immernoch nicht wie der letzte eintrag (/lun0/..) in die fstab gelangt - das muß beim bauen mit --enable-ide zusammenhängen ?!
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von seife »

Schau mal in make/flashable-dirs.mk

und in rcS.m4:

Code: Alles auswählen

if [ $KMINOR -ge 6 ]; then
        # everything else is already mounted
        mount /var
else
        # Mount file systems in /etc/fstab
        mount -a
fi
Das "everything else is already mounted" ist halt glatt gelogen, wenn man ein IDE-Interface hat ;-)

Wenn du da hinter das "mount /var" noch ein

Code: Alles auswählen

        mount /hdd
schreibst (vor dem "else" ;-)), dann ist alles gut.
MarcM
Foren-Moderator
Beiträge: 1119
Registriert: Sonntag 9. Juni 2002, 13:28

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von MarcM »

Tommy hat geschrieben:BTW es erschließt sich mir immernoch nicht wie der letzte eintrag (/lun0/..) in die fstab gelangt - das muß beim bauen mit --enable-ide zusammenhängen ?!
Joa....das steht bei Newmake im Makefile mit drin......
cdk/Makefile hat geschrieben:HDD_MOUNT_ENTRY = /dev/ide/host0/bus0/target0/lun0/part2 /hdd $(EXT3)$(XFS) \
echo $(HDD_MOUNT_ENTRY) >> $@/etc/fstab
cdk/Makefile.in hat geschrieben:@ENABLE_IDE_TRUE@@TARGETRULESET_FLASH_TRUE@HDD_MOUNT_ENTRY = /dev/ide/host0/bus0/target0/lun0/part2 /hdd $(EXT3)$(XFS) \
mach dir per customscript deine eigene fstab nach /etc.....hab ich wegen der SD/MMC auch.....

Marc
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von Tommy »

okay - gut zu wissen :wink:

Da gibt es aber immernoch das Problem - wie kommen die Einträge in die fstab. Wenn man selber baut kein thema. Dem enduser kann man aber nicht zumuten selber in der fstab rumzufummeln.

In Deinem Beispiel oben wird nur /var gemountet. /var ist auch in der fstab. fstab wird mit mount -a gemountet. Soweit richtig? Dann könnte man doch die 2.6 Abfrage gleich weglassen und nur mount -a machen. Wenn in der fstab kein eintrag zur hdd is wird es auch nicht gemountet. Oder liege ich da jetzt verkehrt?
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von Tommy »

MarcM hat geschrieben:
Tommy hat geschrieben:BTW es erschließt sich mir immernoch nicht wie der letzte eintrag (/lun0/..) in die fstab gelangt - das muß beim bauen mit --enable-ide zusammenhängen ?!
Joa....das steht bei Newmake im Makefile mit drin......
cdk/Makefile hat geschrieben:HDD_MOUNT_ENTRY = /dev/ide/host0/bus0/target0/lun0/part2 /hdd $(EXT3)$(XFS) \
echo $(HDD_MOUNT_ENTRY) >> $@/etc/fstab
cdk/Makefile.in hat geschrieben:@ENABLE_IDE_TRUE@@TARGETRULESET_FLASH_TRUE@HDD_MOUNT_ENTRY = /dev/ide/host0/bus0/target0/lun0/part2 /hdd $(EXT3)$(XFS) \
mach dir per customscript deine eigene fstab nach /etc.....hab ich wegen der SD/MMC auch.....

Marc
Das wäre aber "dirty" stattdessen gehört doch an die Stelle eher noch eine Abfrage nach der Kernelversion? Der Schalter wird doch im configure gesetzt, sollte als Parameter also verfügbar sein.
mohousch
Einsteiger
Einsteiger
Beiträge: 362
Registriert: Mittwoch 14. Dezember 2005, 03:25

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von mohousch »

In Deinem Beispiel oben wird nur /var gemountet. /var ist auch in der fstab. fstab wird mit mount -a gemountet. Soweit richtig? Dann könnte man doch die 2.6 Abfrage gleich weglassen und nur mount -a machen.
jein, den ist zu spät für die Devices nodes, warum? weiß ich auch vielleicht kann Seife das erklären :); vielleicht macht auch Sinn momentan die fstab wegzulassen die mount Befehle in rcS stellen.(so läuft auch z.B. in das JTG Image)
Wenn in der fstab kein eintrag zur hdd is wird es auch nicht gemountet. Oder liege ich da jetzt verkehrt?
richtig, wenn das HDD nicht gemountet wird stört das System beim hochfahren gar nicht die kann man in jeder belibiege Stelle machen nur die Ordnung des mounten die FS und die IDE Treiber muss geachtet :)

PS:die rcS wird per m4 erstellt, vielleicht greift ein Dev hier und lässt die Sachen nach Kernel Versionen abtrennen :)
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von Tommy »

Ich meinte das

Code: Alles auswählen

if [ $KMINOR -ge 6 ]; then
        # everything else is already mounted
        mount /var
else
        # Mount file systems in /etc/fstab
        mount -a
fi
durch das

Code: Alles auswählen

 mount -a
zu ersetzen da ja var auch in der fstab ist. Die devicenodes sind doch vorher schon mit makedevices + seifes safetynet :wink: gebaut?
mohousch
Einsteiger
Einsteiger
Beiträge: 362
Registriert: Mittwoch 14. Dezember 2005, 03:25

Re: Kernel 2.6 - IDE Unterstützung einbauen

Beitrag von mohousch »

kann man machen hat keine negative Wirkung ob die anderen Einträge vor /var schon gemountet sind mount -a versucht die nochmal zu mounten.