[comp.os.minix] PS and Minix-386.

bevan@ecr.mu.oz.au (Bevan Anderson) (03/30/91)

Hi

I have yet another problem with Minix-386. After recompiling init
I got it up and running. Now I have another problem.

I recompiled ps.c with bcc -3 so to give me  a 32 bit
binary. Now when I execute ps (as root) I get:

memory fault: core dumped.

This happens after ps puts up the top line of the output (TTY LINE etc)
I am doing a ps -U but that gets the same problem.

Can anyone help?

Bye,
Bevan.
_______________________________________________________________________________

Bevan Anderson.						Engineering
bevan@ecr.mu.oz.au					Melbourne Uni.

kevin@nuchat.sccsi.com (Kevin Brown) (03/31/91)

In article <7210@munnari.oz.au> bevan@ecr.mu.oz.au (Bevan Anderson) writes:

>I recompiled ps.c with bcc -3 so to give me  a 32 bit
>binary. Now when I execute ps (as root) I get:
>
>memory fault: core dumped.
>
>This happens after ps puts up the top line of the output (TTY LINE etc)
>I am doing a ps -U but that gets the same problem.
>
>Can anyone help?

The problem you describe has bitten me a number of times (you'd think
I'd know better by now  :-).

Ps expects the kernel files to be located in /usr/src/kernel/kernel,
/usr/src/fs/fs, and /usr/src/mm/mm.  However, the Minix-386 makefiles
put those images in /tmp.  So before you do a ps -U, copy /tmp/kernel to
/usr/src/kernel/kernel, /tmp/mm to /usr/src/mm/mm, and /tmp/fs to
/usr/src/fs/fs.

The problem you're having is that ps -U is getting its symbol information
from the OLD kernel, and that symbol information is now bogus.  Thus,
the memory fault.

An additional note: you MUST compile ps.c with -DINTEL_32BITS.  Otherwise
it will be confused about the size of the buffer cache, as an example.

>Bye,
>Bevan.


--
Kevin Brown						Disclaimer: huh?
kevin@nuchat.sccsi.com					csci31f7@cl.uh.edu 

Minix -- the Unix[tm] of the 90's.  System V -- the Multics of the 90's.  :-)

kemp@convex.com (Phil Kemp) (03/31/91)

In <7210@munnari.oz.au> bevan@ecr.mu.oz.au (Bevan Anderson) writes:

>I recompiled ps.c with bcc -3 so to give me  a 32 bit
>binary. Now when I execute ps (as root) I get:

>memory fault: core dumped.

>This happens after ps puts up the top line of the output (TTY LINE etc)
>I am doing a ps -U but that gets the same problem.

I too have had similar problems with the various versions of ps with
the 386 Minix kernel. Maybe someone could post a version of ps.c which
does in fact work with Bruce's 386 Minix...

I know I would sure appreciate it.

Thanks.
PK
--
Phil Kemp
CONVEX Computer of Canada Ltd.
Voice:(403)-233-2815
UUCP:kemp@convex.com

torvalds@cc.helsinki.fi (04/01/91)

In article <kemp.670399990@convex.convex.com>, kemp@convex.com (Phil Kemp) writes:
> In <7210@munnari.oz.au> bevan@ecr.mu.oz.au (Bevan Anderson) writes:
> 
>>I recompiled ps.c with bcc -3 so to give me  a 32 bit
>>binary. Now when I execute ps (as root) I get:
> 
>>memory fault: core dumped.
> 
>>This happens after ps puts up the top line of the output (TTY LINE etc)
>>I am doing a ps -U but that gets the same problem.
> 
> I too have had similar problems with the various versions of ps with
> the 386 Minix kernel. Maybe someone could post a version of ps.c which
> does in fact work with Bruce's 386 Minix...
> 
> I know I would sure appreciate it.
> 
> Thanks.
> PK
> --
> Phil Kemp
> CONVEX Computer of Canada Ltd.
> Voice:(403)-233-2815
> UUCP:kemp@convex.com

RTFSC (Read the F**ing Source Code :-) - It is heavily commented and the
solution should be obvious (take that with a grain of salt, it certainly
stumped me for a while :-). Simply change the 4 define-lines at the
start (well, I'd guess about line 40) that read

#define kernel "/usr/src/kernel/kernel"
#define mm "/usr/src/mm/mm"
#define fs "/usr/src/fs/fs"
#define init "/usr/src/tools/init"

to where-ever you have them now (/etc/system/kernel,fs,init,mm if you
did as the tutor that is floating around said)

NOTE! I wrote this from memory - this is certainly not exactly how the
defines look (and I'm not certain that there is a define for init, I
think it never gets used). It should be no problem finding them though -
there should be nothing like it elsewhere in ps.c. It is inside a #if by
the way. Cdiffs might be a good idea, but I don't have access to my
minix-box right now. Doing them manually wasn't any problem.

		Linus Torvalds		torvalds@cc.helsinki.fi