[Problem] aktueller CVS Stand

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Re: [Problem] aktueller CVS Stand

Beitrag von Houdini »

das liegt jetzt (wahrscheinlich) nicht an den printks sondern an deinem Image.
Check mal ob du die busybox und die links dazu (z.B.: init) im image hast
wittinobi
Einsteiger
Einsteiger
Beiträge: 116
Registriert: Montag 29. März 2004, 22:00

Re: [Problem] aktueller CVS Stand

Beitrag von wittinobi »

huhu,
wenn ich die printk so einfüge:

Code: Alles auswählen

		/* Ensure a non-privileged process is not trying to map
		 * lower pages.
		 */
		if (addr < mmap_min_addr && !capable(CAP_SYS_RAWIO))
		        printk("[KERNEL] lowmen patch [NACH] [EPERM] [1] mmap.c\n");
			return -EPERM;
...bekomm ich auch diesen "kernel panik"-fehler und die box bootet nicht mehr weiter.

hab dann bissle gespielt und mich letzendlich auf die datei "linux-2.4.36/mm/mmap.c" konzentriert.
wenn in dieser datei (zeile 660-666) die printk so einfüge:

Code: Alles auswählen

		printk("[KERNEL] lowmen patch [VOR] [EPERM] [1] mmap.c\n");
		/* Ensure a non-privileged process is not trying to map
		 * lower pages.
		 */
		if (addr < mmap_min_addr && !capable(CAP_SYS_RAWIO))
			return -EPERM;
		printk("[KERNEL] lowmen patch [NACH] [EPERM] [1] mmap.c\n");
...bekomm ich zwar haufenweise debug-ausgaben und der bootvorgang kommt mir dadurch langsamer vor.
aber das image bootet.

boot-log:

Code: Alles auswählen

I2C:   ready
DRAM:  32 MB
FLASH:  8 MB
Scanning JFFS2 FS: . done.
env: found "console"
env: found "lcd_inverse"
env: found "lcd_contrast"
FB:    ready
LCD:   ready
In:    serial
Out:   serial
Err:   serial
Net:   SCC ETHERNET

Options:
  1: Console on null
  2: Console on ttyS0
  3: Console on framebuffer
Select option (1-3), other keys to stop autoboot:  0 
### FS (squashfs) loading 'vmlinuz' to 0x100000
### FS load complete: 669188 bytes loaded to 0x100000
............................................................... done
Un-Protected 63 sectors
## Booting image at 00100000 ...
   Image Name:   dbox2
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    669124 Bytes = 653.4 kB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
Linux version 2.4.36-dbox2 (two1@two1) (gcc version 3.4.6) #8 So 20. Jan 21:41:4
6 CET 2008
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: console=ttyS0,9600 root=/dev/mtdblock2 rootfstype=squashfs
Decrementer Frequency = 252000000/60
m8xx_wdt: active wdt found (SWTC: 0xFFFF, SWP: 0x1)
m8xx_wdt: keep-alive trigger installed (PITC: 0x12C0)
Console: colour dummy device 80x25
Calibrating delay loop... 66.96 BogoMIPS
Memory: 30828k available (1140k kernel code, 340k data, 60k init, 0k highmem)
Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
squashfs: version 3.0 (2006/03/15) Phillip Lougher
i2c-core.o: i2c core module version 2.6.1 (20010830)
i2c-dev.o: i2c /dev entries driver module version 2.6.1 (20010830)
CPM UART driver version 0.04
ttyS0 at 0x0280 is on SMC1 using BRGttyS1 at 0x0380 is on SMC2 using BRG2
pty: 256 Unix98 ptys configured
eth0: CPM ENET Version 0.2.dbox2 on SCC2, 00:50:9c:12:a7:d1
loop: loaded (max 8 devices)
D-Box 2 flash driver (size->0x800000 mem->0x10000000)
D-Box 2 flash memory: Found 2 x16 devices at 0x0 in 32-bit bank
 Intel/Sharp Extended Query Table at 0x0035
cfi_cmdset_0001: Erase suspend on write enabled
Creating 6 MTD partitions on "D-Box 2 flash memory":
0x00000000-0x00020000 : "BR bootloader"
0x00020000-0x00040000 : "FLFS (U-Boot)"
0x00040000-0x004a0000 : "root (SquashFS)"
0x004a0000-0x00800000 : "var (JFFS2)"
0x00020000-0x00800000 : "Flash without bootloader"
0x00000000-0x00800000 : "Complete Flash"
Linux video capture interface: v1.00
mice: PS/2 mouse device common for all mice
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 2048 bind 4096)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
VFS: Mounted root (squashfs filesystem) readonly.
Mounted devfs on /dev
Freeing unused kernel memory: 60k init
[KERNEL] lowmen patch [VOR] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [NACH] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [VOR] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [NACH] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [VOR] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [NACH] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [VOR] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [NACH] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [VOR] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [NACH] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [VOR] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [NACH] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [VOR] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [NACH] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [VOR] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [NACH] [EPERM] [1] mmap.c
init started: BusyBox v1.7.2 (2008-01-19 19:05:25 CET)
[KERNEL] lowmen patch [VOR] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [NACH] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [VOR] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [NACH] [EPERM] [1] mmap.c
[KERNEL] lowmen patch [VOR] [EPERM] [1] mmap.c
...usw.
:gruebel:

mfg
wittinobi
Steffi
Einsteiger
Einsteiger
Beiträge: 204
Registriert: Dienstag 12. März 2002, 07:40

Re: [Problem] aktueller CVS Stand

Beitrag von Steffi »

Ja, busybox mit allen Links ist vorhanden (init liegt in sbin).

Wenn ich die printk's wieder entferne und das Image neu baue, habe ich sofort wieder die Endlosschleife. Mit angeschlossenem Netzwerkkabel geht der Bootvorgang meist nur bis hierhin:

Code: Alles auswählen

env: found "lcd_inverse"
env: found "lcd_contrast"
FB:    ready
LCD:   ready
In:    serial
Out:   serial
Err:   serial
Net:   SCC ETHERNET

Options:
  1: Console on null
  2: Console on ttyS0
  3: Console on framebuffer
Select option (1-3), other keys to stop autoboot:  0 
### FS (jffs2) loading 'vmlinuz' to 0x100000
### FS load complete: 669113 bytes loaded to 0x100000
............................................................... done
Un-Protected 63 sectors
## Booting image at 00100000 ...
   Image Name:   dbox2
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    669049 Bytes = 653.4 kB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
Linux version 2.4.36-dbox2 (st@work) (gcc version 3.4.6) #9 So 20. Jan 19
:34:24 CET 2008
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: console=ttyS0,57600 root=/dev/mtdblock2 rw rootfstype=jffs2

Decrementer Frequency = 252000000/60
m8xx_wdt: active wdt found (SWTC: 0xFFFF, SWP: 0x1)
m8xx_wdt: keep-alive trigger installed (PITC: 0x1000)
Console: colour dummy device 80x25
Calibrating delay loop... 66.96 BogoMIPS
Memory: 30828k available (1140k kernel code, 340k data, 60k init, 0k highmem)
Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
squashfs: version 3.0 (2006/03/15) Phillip Lougher
i2c-core.o: i2c core module version 2.6.1 (20010830)
i2c-dev.o: i2c /dev entries driver module version 2.6.1 (20010830)
CPM UART driver version 0.04
ttyS0 at 0x0280 is on SMC1 using BRG1
ttyS1 at 0x0380 is on SMC2 using BRG2
pty: 256 Unix98 ptys configured
eth0: CPM ENET Version 0.2.dbox2 on SCC2, 00:50:9c:1b:74:14
loop: loaded (max 8 devices)
D-Box 2 flash driver (size->0x800000 mem->0x10000000)
D-Box 2 flash memory: Found 2 x16 devices at 0x0 in 32-bit bank
 Intel/Sharp Extended Query Table at 0x0035
cfi_cmdset_0001: Erase suspend on write enabled
Creating 5 MTD partitions on "D-Box 2 flash memory":
0x00000000-0x00020000 : "BR bootloader"
0x00020000-0x00040000 : "FLFS (U-Boot)"
0x00040000-0x00800000 : "root (jffs2)"
0x00020000-0x00800000 : "Flash without bootloader"
0x00000000-0x00800000 : "Complete Flash"
Linux video capture interface: v1.00
mice: PS/2 mouse device common for all mice
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 2048 bind 4096)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
Ohne Netzwerkkabel kommt der Bootvorgang sehr viel weiter, bevor an unterschiedlichen Stellen der Reboot erfolgt.
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Re: [Problem] aktueller CVS Stand

Beitrag von Houdini »

bau das mal so ein so daß nur die Meldung kommt wenn er in den Fehlerfall läuft.

Code: Alles auswählen

    if (address < mmap_min_addr && !capable(CAP_SYS_RAWIO)) {
       printk("lowmen patch EPERM1");
       return -EPERM;
    }
wittinobi
Einsteiger
Einsteiger
Beiträge: 116
Registriert: Montag 29. März 2004, 22:00

Re: [Problem] aktueller CVS Stand

Beitrag von wittinobi »

Houdini hat geschrieben:bau das mal so ein so daß nur die Meldung kommt wenn er in den Fehlerfall läuft.

Code: Alles auswählen

    if (address < mmap_min_addr && !capable(CAP_SYS_RAWIO)) {
       printk("lowmen patch EPERM1");
       return -EPERM;
    }
oh mann die klammern, jetzt seh ichs, lol.
ok test ich nochmal, hrhr.
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Re: [Problem] aktueller CVS Stand

Beitrag von Houdini »

jetzt wirds kompliziert:
ich zitiere mal aus der kernel mailing liste:
- the addition of the mmap_min_addr sysctl which provides the ability to
prevent processes from mapping the NULL address, thus preventing the
exploitation of a kind of possibly yet undiscovered kernel bugs (NULL
dereferences) to escalade privileges. This is the convergence of an
Openwall kernel 2.4 patch by Solar Designer, and Eric Paris' 2.6 patch.

The mmap_min_addr protection is not enabled by default. In order to
activate it, you have to write the minimum allowed user-space address
in mmap_min_addr :

# echo 4096 > /proc/sys/vm/mmap_min_addr

or alternatively :

# sysctl -w vm.mmap_min_addr=4096
der patch sollte also nicht aktiv sein!
dann ist es doch das timing :gruebel:
Hollo
Einsteiger
Einsteiger
Beiträge: 226
Registriert: Mittwoch 22. August 2001, 00:00

Re: [Problem] aktueller CVS Stand

Beitrag von Hollo »

google übersetzt:
-- Die Ergänzung der mmap_min_addr sysctl, bietet die Möglichkeit,
Verhindern, dass Prozesse von der Kartierung der NULL-Adresse, so dass die
Ausbeutung von einer Art möglicherweise noch unentdeckten Kernel Bugs (NULL
Hebt), escalade Privilegien. Dies ist die Konvergenz der
2,4 Openwall Kernel Patches von Solar Designer, und Eric Paris' 2,6 Patch.

Die mmap_min_addr Schutz ist standardmäßig nicht aktiviert. Um
Aktivieren, müssen Sie schreiben das Minimum erlaubt User-Space-Adresse
Mmap_min_addr in:

# Echo 4096> / proc / sys / vm / mmap_min_addr

Oder alternativ:

# Sysctl-w vm.mmap_min_addr = 4096
wittinobi
Einsteiger
Einsteiger
Beiträge: 116
Registriert: Montag 29. März 2004, 22:00

Re: [Problem] aktueller CVS Stand

Beitrag von wittinobi »

hehe,
ich hab eben mal folgendes getestet.

in "linux-2.4.36/include/linux/mm.h" printk eingefügt (zeile 661-664):

Code: Alles auswählen

	/* ensure a non-privileged process is not trying to mmap lower pages */
	if (address < mmap_min_addr && !capable(CAP_SYS_RAWIO))
	{
		printk("[KERNEL] lowmen patch [IN] [EPERM] [1] mm.h (zeile 663)\n");
		return -EPERM;
	}
in "linux-2.4.36/mm/mmap.c" printk eingefügt (zeile 660-667):

Code: Alles auswählen

		/* Ensure a non-privileged process is not trying to map
		 * lower pages.
		 */
		if (addr < mmap_min_addr && !capable(CAP_SYS_RAWIO))
		{
			printk("[KERNEL] lowmen patch [IN] [EPERM] [1] mmap.c (zeile 665)\n");
			return -EPERM;
		}
in "linux-2.4.36/mm/mmap.c" printk eingefügt (zeile 678-682):

Code: Alles auswählen

	if (addr < mmap_min_addr && !capable(CAP_SYS_RAWIO))
	{
		printk("[KERNEL] lowmen patch [IN] [ENOMEM] [1] mmap.c (zeile 680)\n");
		return -ENOMEM;
	}
in "tuxbox-cvs-test/cdk/linux-2.4.36/mm/mremap.c" printk eingefügt (zeile 276-283):

Code: Alles auswählen

		/* Ensure a non-privileged process is not trying to map
		 * lower pages.
		 */
		if (new_addr < mmap_min_addr && !capable(CAP_SYS_RAWIO))
		{
			printk("[KERNEL] lowmen patch [IN] [EPERM] [1] mremap.c (zeile 281)\n");
			return -EPERM;
		}
boot-log (direkt nach flashen > tasten-reset an der box):

Code: Alles auswählen

Initializing RT netlink socket
Starting kswapd
devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
squashfs: version 3.0 (2006/03/15) Phillip Lougher
i2c-core.o: i2c core module version 2.6.1 (20010830)
i2c-dev.o: i2c /dev entries driver module version 2.6.1 (20010830)
CPM UART driver version 0.04
ttyS0 at 0x0280 is on SMC1 using BRGttyS1 at 0x0380 is on SMC2 using BRG2
pty: 256 Unix98 ptys configured
eth0: CPM ENET Version 0.2.dbox2 on SCC2, 00:50:9c:12:a7:d1
loop: loaded (max 8 devices)
D-Box 2 flash driver (size->0x800000 mem->0x10000000)
D-Box 2 flash memory: Found 2 x16 devices at 0x0 in 32-bit bank
 Intel/Sharp Extended Query Table at 0x0035
cfi_cmdset_0001: Erase suspend on write enabled
Creating 6 MTD partitions on "D-Box 2 flash memory":
0x00000000-0x00020000 : "BR bootloader"
0x00020000-0x00040000 : "FLFS (U-Boot)"
0x00040000-0x004a0000 : "root (SquashFS)"
0x004a0000-0x00800000 : "var (JFFS2)"
0x00020000-0x00800000 : "Flash without bootloader"
0x00000000-0x00800000 : "Complete Flash"
Linux video capture interface: v1.00
mice: PS/2 mouse device common for all mice
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of C00DA050 SP: C01F1C20 REGS: c01f<4>Oops: kernel 
access of bad area, sig: 11
NIP: C00DA08C XER: 8000907F LR: DAR: D38B5626, DSISR: C0000000
1b70 TRAP: 0300    Not tainted
MSR: 00009032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
00000000
TASK = c01f0000[1] 'swapper' Last syscall: 120 
last math 00000000 last altivec GPR08: C0180000 C0160000 D38B55AGPR00: 0E16A000 
C01F1C20 C01F0000 00000000 0000F011 015C65E5 00000000 C1F7A200 
4 00000000 00001032 C0160000 C01A C017FF8C 55303033 00031B58 01FFAB00 00000001 
GPR16: FFFFFFFF 007FFF00 01FF5238DCB6 C0A8DCF7 
F1CD8 00000109 
Call backtrace: C1F65080 00000000 00000000 C1F7A200 00000002 C0A
C1F1D000 C00DCCC4 C00CB57C C00CB698 C00CB7FC C0014AB0 C0003C24 
                                                               C0155328 C00022A0
 C000511C 
C0002AA0 00000000 C000F8A8 C000FB3C C000FD80 C015486C C0154B0C 
ng
Kernel panic: Aiee, killing interrupt handler!
In interrupt handler - not syncig
...box blieb stehen.

direkt danach nochmals tasten-reset an der box:

Code: Alles auswählen

debug: DDF: Calibrating delay loop... debug: DD
F: 67.79 BogoMIPS
debug: BMon V1.0  mID 01
debug: feID dd    gtxID 0b
debug: fpID 5a     dsID xx-xx.xx.xx.xx.xx.xx-xx
debug: HWrev X5  SWrev 0.81
debug: B/Ex/Fl(MB) 16/16/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/nokia-dbox2/kernel/os in Flash-FS
debug: Got Block #0036

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


U-Boot 1.2.0 (Tuxbox) (Jan 19 2008 - 18:59:54)

CPU:   PPC823ZTnnA at 67.200 MHz: 2 kB I-Cache 1 kB D-Cache
         *** Warning: CPU Core has Silicon Bugs -- Check the Errata ***
Board: DBOX2, Nokia, BMon V1.0
       Watchdog enabled
I2C:   ready
DRAM:  32 MB
FLASH:  8 MB
Scanning JFFS2 FS: . done.
env: found "console"
env: found "lcd_inverse"
env: found "lcd_contrast"
FB:    ready
LCD:   ready
In:    serial
Out:   serial
Err:   serial
Net:   SCC ETHERNET

Options:
  1: Console on null
  2: Console on ttyS0
  3: Console on framebuffer
Select option (1-3), other keys to stop autoboot:  0 
### FS (squashfs) loading 'vmlinuz' to 0x100000
### FS load complete: 669745 bytes loaded to 0x100000
............................................................... done
Un-Protected 63 sectors
## Booting image at 00100000 ...
   Image Name:   dbox2
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    669681 Bytes = 654 kB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
Linux version 2.4.36-dbox2 (two1@two1) (gcc version 3.4.6) #10 So 20. Jan 22:58:
41 CET 2008
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: console=ttyS0,9600 root=/dev/mtdblock2 rootfstype=squashfs
Decrementer Frequency = 252000000/60
m8xx_wdt: active wdt found (SWTC: 0xFFFF, SWP: 0x1)
m8xx_wdt: keep-alive trigger installed (PITC: 0x1000)
Console: colour dummy device 80x25
Calibrating delay loop... 66.96 BogoMIPS
Memory: 30824k available (1140k kernel code, 344k data, 60k init, 0k highmem)
Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
squashfs: version 3.0 (2006/03/15) Phillip Lougher
i2c-core.o: i2c core module version 2.6.1 (20010830)
i2c-dev.o: i2c /dev entries driver module version 2.6.1 (20010830)
CPM UART driver version 0.04
ttyS0 at 0x0280 is on SMC1 using BRGttyS1 at 0x0380 is on SMC2 using BRG2
pty: 256 Unix98 ptys configured
eth0: CPM ENET Version 0.2.dbox2 on SCC2, 00:50:9c:12:a7:d1
loop: loaded (max 8 devices)
D-Box 2 flash driver (size->0x800000 mem->0x10000000)
D-Box 2 flash memory: Found 2 x16 devices at 0x0 in 32-bit bank
 Intel/Sharp Extended Query Table at 0x0035
cfi_cmdset_0001: Erase suspend on write enabled
Creating 6 MTD partitions on "D-Box 2 flash memory":
0x00000000-0x00020000 : "BR bootloader"
0x00020000-0x00040000 : "FLFS (U-Boot)"
0x00040000-0x004a0000 : "root (SquashFS)"
0x004a0000-0x00800000 : "var (JFFS2)"
0x00020000-0x00800000 : "Flash without bootloader"
0x00000000-0x00800000 : "Complete Flash"
Linux video capture interface: v1.00
mice: PS/2 mouse device common for all mice
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 2048 bind 4096)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
VFS: Mounted root (squashfs filesystem) readonly.
Mounted devfs on /dev
Freeing unused kernel memory: 60k init
init started: BusyBox v1.7.2 (2008-01-19 19:05:25 CET)
event: $Id: event.c,v 1.12 2003/09/30 05:45:38 obi Exp $
[i2c-8xx]: mpc 8xx i2c init
[i2c-8xx]: adapter: 0
Detected STB:
  Vendor: Nokia
  Model: D-BOX2 
$Id: cam.c,v 1.30 2004/01/10 16:36:34 alexw Exp $
cam: no firmware file found
$Id: avia_napi.c,v 1.18 2003/11/24 09:53:01 obi Exp $
DVB: registering new adapter (C-Cube AViA GTX/eNX with AViA 500/600).
dvb_i2c_bridge: enabled DVB i2c bridge to PowerPC 8xx I2C adapter
$Id: cam_napi.c,v 1.8 2003/09/30 05:45:34 obi Exp $
ifup: can't open '/var/run/ifstate': No such file or directory
avia_av: $Id: avia_av_core.c,v 1.99 2006/01/08 21:36:22 carjay Exp $
avia_av_core.c: avia_av_firmware_read: Unable to load '/var/tuxbox/ucodes/avia50
0.ux'.
avia_av: microcode not found, setting up dummy
avia_av_proc: $Id: avia_av_proc.c,v 1.15 2007/07/29 18:14:12 papst Exp $
avia_gt_core: $Id: avia_gt_core.c,v 1.48 2004/12/20 01:01:22 carjay Exp $
avia_gt_core: autodetecting chip type... GTX
avia_gt_gtx: $Id: avia_gt_gtx.c,v 1.24 2003/09/30 05:45:35 obi Exp $
avia_gt_accel: $Id: avia_gt_accel.c,v 1.19 2003/09/30 05:45:35 obi Exp $
avia_gt_dmx: $Id: avia_gt_dmx.c,v 1.210 2004/06/26 16:08:15 carjay Exp $
avia_gt_core: masking unhandled irq reg 1 bit 11
avia_gt_core: masking unhandled irq reg 1 bit 13
avia_gt_ucode: loaded ucode v0014
avia_gt_ucode: ucode section filters enabled.
avia_gt_dmx: warning, misaligned queue 0 (is 0xFD200, size 65536), aligning...
avia_gt_gv: $Id: avia_gt_gv.c,v 1.39 2004/08/28 16:44:56 carjay Exp $
avia_gt_gv: set_input_size (width=720, height=576)
avia_gt_pcm: $Id: avia_gt_pcm.c,v 1.29 2004/01/29 19:38:20 zwen Exp $
avia_gt_pcm_set_rate(44100)
avia_gt_capture: $Id: avia_gt_capture.c,v 1.32 2003/09/30 05:45:35 obi Exp $
avia_gt_pig: $Id: avia_gt_pig.c,v 1.40 2003/09/30 05:45:35 obi Exp $
avia_gt_vbi: $Id: avia_gt_vbi.c,v 1.26 2003/08/01 17:31:22 obi Exp $
avia_gt_core: Loaded AViA eNX/GTX driver
avia_gt_fb: $Id: avia_gt_fb_core.c,v 1.54 2004/03/17 18:42:18 zwen Exp $
avia_gt_gv: set_input_mode (mode=2)
avia_gt_gv: set_input_size (width=720, height=576)
avia_gt_gv: set_input_mode (mode=2)
avia_gt_gv: set_input_size (width=720, height=576)
avia_gt_gv: set_input_mode (mode=2)
avia_gt_gv: set_input_size (width=720, height=576)
Console: switching to colour frame buffer device 82x32
avia_gt_fb: fb0: AViA eNX/GTX Framebuffer frame buffer device
lcd.o: init lcd driver module
lcd.o: found KS0713/SED153X lcd interface
avia_gt_lirc: $Id: avia_gt_lirc.c,v 1.14 2003/09/30 05:45:35 obi Exp $
avia_gt_ir: $Id: avia_gt_ir.c,v 1.30 2003/09/30 05:45:35 obi Exp $
avia_oss: $Id: avia_gt_oss.c,v 1.26 2004/05/31 22:56:02 carjay Exp $
avia_gt_pcm_set_rate(44100)
avia_gt_v4l2: $Id: avia_gt_v4l2.c,v 1.12 2003/09/30 04:54:03 obi Exp $
DVB: registering frontend 0:0 (VES1893)...
avia_av_napi.c: $Id: avia_av_napi.c,v 1.33 2004/03/11 15:30:27 derget Exp $
avia_gt_napi: $Id: avia_gt_napi.c,v 1.203 2005/01/05 05:49:56 carjay Exp $
...usw.
danach wiederum tasten-reset und netzstecker-resets getestet.
der fehler vom ersten booten kam danach nicht mehr.
danach lief alles normal (auf den ersten blick).

mir scheint auch das timing schuld daran zu sein.

:gruebel:

mfg
wittinobi
wittinobi
Einsteiger
Einsteiger
Beiträge: 116
Registriert: Montag 29. März 2004, 22:00

Re: [Problem] aktueller CVS Stand

Beitrag von wittinobi »

huhu,
hab für meinen teil die optimale lösung gefunden.
ich muss einfach nur in der datei "linux-2.4.36/mm/mmap.c" folgende änderung machen.

aus dem hier (zeile 663):

Code: Alles auswählen

		if (addr < mmap_min_addr && !capable(CAP_SYS_RAWIO))
			return -EPERM;
wir das hier:

Code: Alles auswählen

		if (addr < mmap_min_addr && !capable(CAP_SYS_RAWIO)) {
			/* need more time, ...plz check */
			printk("[KERNEL] lowmem patch fix [mmap.c zeile 665]\n");
			return -EPERM;
		}
damit rennt bei mir alles wieder wie gewohnt.
warum ? :gruebel: ...kein plan, aber funktioniert.

mfg
wittinobi
Steffi
Einsteiger
Einsteiger
Beiträge: 204
Registriert: Dienstag 12. März 2002, 07:40

Re: [Problem] aktueller CVS Stand

Beitrag von Steffi »

Ich verstehe bei dieser mmap-Geschichte so einiges nicht.

Warum gibt es auf einigen Boxen anscheinend ein Timing-Problem, wenn diese if-Abfragen aktiv sind? Wenn ich diese Abfragen auskommentiere läuft auf diesen Boxen alles normal.

Warum gibt es dieses Problem nur bei Selbstcompilaten einiger User? Nehme ich z.B. ein Image von DietmarW, das ja imho unverändert aus dem CVS gebaut wird, habe ich jedenfalls dieses Problem nicht.

Kann dieses vermeintliche Timingproblem vielleicht daran liegen, dass ich ein minimales System baue (ohne IDE, ohne EXT3, ohne XFS, ohne NFSSERVER)? Die bekannten öffentlichen Image-Bauer haben imho zumindest einige dieser Zusätze im Kernel aktiviert.

Ich habe heute Nacht einen Hardcore-Test gemacht und mit einer meiner Problem-Nokias (mmap-Zeilen auskommentiert) mehrere Filme auf einen NFS-Server im Netz aufgenommen. Die Box lief ohne Probleme durch und alle Filme wurden ohne Aussetzer aufgenommen.

Steffi
Zuletzt geändert von Steffi am Montag 21. Januar 2008, 10:11, insgesamt 1-mal geändert.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Problem] aktueller CVS Stand

Beitrag von seife »

So langsam riecht das nach einem Compilerfehler oder etwas ähnlichem.

Da offensichtlich der Watchdog auslöst sollte man mal untersuchen, warum dieser Watchdog-reset-interrupt nicht aufgerufen wird (oder ob er zwar aufgerufen wird, aber den Watchdog nicht resettet, warum auch immer). Vielleicht brauchen diese Watchdog-writes ja etwas mehr als nur "volatile", vielleicht wollen die ja eine explizite memory barrier. Mit ppc kenne ich mich da aber noch weniger aus, als mit "Industriestandard"-Architekturen.
Steffi
Einsteiger
Einsteiger
Beiträge: 204
Registriert: Dienstag 12. März 2002, 07:40

Re: [Problem] aktueller CVS Stand

Beitrag von Steffi »

Aber warum haben dann mehrere Leute diesen Compilerfehler? Und warum baut der Compiler anscheinend genau an der gleichen Stelle Mist?

Ich werde es heute abend mal mit einem Suse 10.1-System versuchen.
geko37
Einsteiger
Einsteiger
Beiträge: 133
Registriert: Sonntag 6. April 2003, 18:26

Re: [Problem] aktueller CVS Stand

Beitrag von geko37 »

Steffi hat geschrieben:Aber warum haben dann mehrere Leute diesen Compilerfehler? Und warum baut der Compiler anscheinend genau an der gleichen Stelle Mist?

Ich werde es heute abend mal mit einem Suse 10.1-System versuchen.
Das sit ja das merkwürdige ! Ich sag ja ich baue mindestens alle 3 Tage ein Image zusammen und habe diese Probs nicht beim Bau meines Squashfs Image ! ( Suse 10.2 ) Also es ist echt komisch !
wittinobi
Einsteiger
Einsteiger
Beiträge: 116
Registriert: Montag 29. März 2004, 22:00

Re: [Problem] aktueller CVS Stand

Beitrag von wittinobi »

was für tools haben denn die leute installiert, bei denen dieser fehler nicht auftritt ?
bisher haben sich nur diejenigen gemeldet die den fehler haben.
und komischerweise haben wir die gleichen tools installiert.
ich würd da gerne mal was an meinem system ändern, hab aber so noch keinen plan wo ich anfangen soll.

mfg
wittinobi
Steffi
Einsteiger
Einsteiger
Beiträge: 204
Registriert: Dienstag 12. März 2002, 07:40

Re: [Problem] aktueller CVS Stand

Beitrag von Steffi »

Wenn ich gerade neu ins Imagebauen einsteigen würde, könnte ich mir das noch erklären. Aber ich erstelle mir seit Jahren meine Images selbst - immer mit der gleichen Entwicklungsumgebung - und hatte noch nie Probleme, die ich nicht irgendwie selbst lösen konnte.

Diese Probleme mit dem Kernel 2.4.36 lassen mich allmählich an meinem Verstand zweifeln. :dash:
ingrid
Erleuchteter
Erleuchteter
Beiträge: 600
Registriert: Samstag 14. Oktober 2006, 10:53

Re: [Problem] aktueller CVS Stand

Beitrag von ingrid »

wittinobi hat geschrieben:was für tools haben denn die leute installiert, bei denen dieser fehler nicht auftritt ?
bisher haben sich nur diejenigen gemeldet die den fehler haben.
und komischerweise haben wir die gleichen tools installiert.
Nee, da haste was falsch verstanden. ;) Ich habe weiter oben meine Tools gepostet (identisch mit Deinen, wenn ich mich richtig erinnere) und bei mir klappt alles einwandfrei. Keine Probleme, keine Reboots, alles okay. (SquashFS / Newmake / ybuild) Allerdings habe ich noch die eine oder andere Änderung mit drin... (z.B. diverse Updates in rules-archive/rules-make, die nicht im CVS sind)

Hier war's: http://forum.tuxbox-cvs.sourceforge.net ... 07#p351207
AudioSlyer
Erleuchteter
Erleuchteter
Beiträge: 450
Registriert: Sonntag 28. Juli 2002, 01:18

Re: [Problem] aktueller CVS Stand

Beitrag von AudioSlyer »

Die die Probleme haben, können die Archive ja mal neu auschecken, vielleicht war da mal ein "schwarzer Peter" beim Auschecken bei.
wittinobi
Einsteiger
Einsteiger
Beiträge: 116
Registriert: Montag 29. März 2004, 22:00

Re: [Problem] aktueller CVS Stand

Beitrag von wittinobi »

huch ok, dank dir.
hmm, dann weiss ich nimmer weiter. :gruebel:
und für die "watchdog-geschichte" reicht mein wissen definitiv auch nicht aus.
naja muss ich halt in zukunft diesen einen printk in mmap.c reinpatchen, ist ja auch nicht die welt.
aber trotzdem, ...seltsam, seltsam.
wittinobi
Einsteiger
Einsteiger
Beiträge: 116
Registriert: Montag 29. März 2004, 22:00

Re: [Problem] aktueller CVS Stand

Beitrag von wittinobi »

AudioSlyer hat geschrieben:Die die Probleme haben, können die Archive ja mal neu auschecken, vielleicht war da mal ein "schwarzer Peter" beim Auschecken bei.
naja, es wurde ja auch schon der ausgepackte und compilierte kernel gedifft und verglichen.
dann wäre das doch da schon aufgefallen, oder nicht ? :gruebel:
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Problem] aktueller CVS Stand

Beitrag von seife »

wittinobi hat geschrieben:naja, es wurde ja auch schon der ausgepackte und compilierte kernel gedifft und verglichen.
dann wäre das doch da schon aufgefallen, oder nicht ? :gruebel:
Ja, wäre es.
Das ist irgendein "Dreckeffekt". Dummerweise sieht es so aus, als ob er durch total unzusammenhängende Änderungen auftaucht und auch wieder verschwindet (deine printk's, die ja nie triggern, ändern wohl nix am timing, aber der Code liegt evtl. anders im Speicher). Insofern ist das sehr schwer zu finden.

Ich persönlich würde drauf tippen, daß das mit dem IO-Zugriff im watchdog-Treiber über "volatile" nicht ganz korrekt ist. Das ist aber nur eine Vermutung, ich habe da keine Ahnung von.
mohousch
Einsteiger
Einsteiger
Beiträge: 362
Registriert: Mittwoch 14. Dezember 2005, 03:25

Re: [Problem] aktueller CVS Stand

Beitrag von mohousch »

Hi

verstehe von dem wdt auch nicht viel, was passiert wenn man das speiziale dbox wdt_reset() aus der time.c rausnimmt, evtl das wdt_reset und wdt_get_time_out bleibt weiter von der ppc_ksym.c weiter geführt, habe's auf nicht problem Box probiert und es bootet durch, wdt wird initialisiert wie immer.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Problem] aktueller CVS Stand

Beitrag von seife »

probiert's mal damit:

Code: Alles auswählen

diff -rup linux-2.4.36-broken/arch/ppc/kernel/m8xx_wdt.c linux-2.4.36/arch/ppc/kernel/m8xx_wdt.c
--- linux-2.4.36-broken/arch/ppc/kernel/m8xx_wdt.c      2008-01-01 13:06:40.000000000 +0100
+++ linux-2.4.36/arch/ppc/kernel/m8xx_wdt.c     2008-01-21 15:24:50.000000000 +0100
@@ -33,7 +33,9 @@ m8xx_wdt_reset(void)
        volatile immap_t *imap = (volatile immap_t *) IMAP_ADDR;

        imap->im_siu_conf.sc_swsr = 0x556c;     /* write magic1 */
+       barrier();
        imap->im_siu_conf.sc_swsr = 0xaa39;     /* write magic2 */
+       barrier();
 }

 static void
Wenn ich das richtig verstanden habe (und wenn meine Kollegen meine Laienhafte Problembeschreibung verstanden haben ;)) dann sagt "volatile" nämlich dem Compiler nur, daß der Wert jedes mal neu aus dem "Speicher" (oder I/O-Port) gelesen werden muß, und daß dieser Lesezugriff nicht wegoptimiert werden darf. Über's Schreiben sagt volatile hingegen nichts, und das tun wir hier. Also sollte "barrier();" sicherstellen, daß der Wert auch tatsächlich im Watchdog ankommt. Hoffentlich :-)
Hollo
Einsteiger
Einsteiger
Beiträge: 226
Registriert: Mittwoch 22. August 2001, 00:00

Re: [Problem] aktueller CVS Stand

Beitrag von Hollo »

AudioSlyer hat geschrieben:Die die Probleme haben, können die Archive ja mal neu auschecken, vielleicht war da mal ein "schwarzer Peter" beim Auschecken bei.
nein, einmal mit "alten Archiven" dieses Rebootimage bekommen, das gleiche mit "neuen Archiven"
trulli

Re: [Problem] aktueller CVS Stand

Beitrag von trulli »

@wittinobi

Hi,

ich kann nicht beurteilen, ob Dein Workaround was "sinnvolles" oder "korrektes" ist.
(die Änderung in mmap.c meine ich)

Aber damit funktioniert es bei mir auch wieder ganz normal (bei squashfs und auch bei jffs2 Images).

MfG
wittinobi
Einsteiger
Einsteiger
Beiträge: 116
Registriert: Montag 29. März 2004, 22:00

Re: [Problem] aktueller CVS Stand

Beitrag von wittinobi »

seife hat geschrieben:probiert's mal damit:

Code: Alles auswählen

diff -rup linux-2.4.36-broken/arch/ppc/kernel/m8xx_wdt.c linux-2.4.36/arch/ppc/kernel/m8xx_wdt.c
--- linux-2.4.36-broken/arch/ppc/kernel/m8xx_wdt.c      2008-01-01 13:06:40.000000000 +0100
+++ linux-2.4.36/arch/ppc/kernel/m8xx_wdt.c     2008-01-21 15:24:50.000000000 +0100
@@ -33,7 +33,9 @@ m8xx_wdt_reset(void)
        volatile immap_t *imap = (volatile immap_t *) IMAP_ADDR;

        imap->im_siu_conf.sc_swsr = 0x556c;     /* write magic1 */
+       barrier();
        imap->im_siu_conf.sc_swsr = 0xaa39;     /* write magic2 */
+       barrier();
 }

 static void
Wenn ich das richtig verstanden habe (und wenn meine Kollegen meine Laienhafte Problembeschreibung verstanden haben ;)) dann sagt "volatile" nämlich dem Compiler nur, daß der Wert jedes mal neu aus dem "Speicher" (oder I/O-Port) gelesen werden muß, und daß dieser Lesezugriff nicht wegoptimiert werden darf. Über's Schreiben sagt volatile hingegen nichts, und das tun wir hier. Also sollte "barrier();" sicherstellen, daß der Wert auch tatsächlich im Watchdog ankommt. Hoffentlich :-)
huhu,
hab das eben mal getestet.
leider kein erfolg, reboots bleiben.

mfg
wittinobi