*BSD News Article 5314


Return to BSD News archive

Newsgroups: comp.unix.bsd
Path: sserve!manuel!munnari.oz.au!uunet!spool.mu.edu!caen!hellgate.utah.edu!fcom.cc.utah.edu!cs.weber.edu!terry
From: terry@cs.weber.edu (A Wizard of Earth C)
Subject: Re: [386BSD] Kernel to large.
Message-ID: <1992Sep20.093243.10932@fcom.cc.utah.edu>
Sender: news@fcom.cc.utah.edu
Organization: Weber State University  (Ogden, UT)
References: <1992Sep19.190602.6931@pimacc.pima.edu>
Date: Sun, 20 Sep 92 09:32:43 GMT
Lines: 79

In article <1992Sep19.190602.6931@pimacc.pima.edu> jlackey@pimacc.pima.edu writes:
>Greetings!
>
>I get a kernel too large error when I try to boot off the kernel I made.
>I am using GENERICISA as a model, not LARGE.  (Someone had said something
>about this sometime.  :)
>
>I am also using the new boot stuff.  /sys/i386/boot.
>
>Can point me in the right direction?
>
>I would be happy to supply my machine configuration if you think it might
>help.

Is this the new boot stuff from Julian?  If not, it's not sufficient to the
task.

You may try stripping the kernel as a workaround if the following is overly
complicated:

1)	A kernel can not load in "low" memory (below 1 Meg) unless it is
	less than 640K.  Period.
	
2)	The "LARGE" configuration is simply a configuration resulting in
	a "large" sized kernel.  A large kernel is not an artifact of using
	an editted "LARGE" configuration, but one of putting enough stuff
	into *any* configuration to push the resulting kernel over 640K.

3)	The base address for the kernel load is in "Makefile.i386" in the
	same directory as your configuration files.  You cn change the base
	load address to >= 1 Meg to insure "large" kernels can load.  The
	size of the available kernel is dependant on how much memory you
	have *past* (instead of *in addition to*) 1 Meg.  This is a
	distinction to indicate that the 640K can not be partially used.

4)	The 640K is not necessarily added back into the kernel memory
	pool for reuse (see Julians documentation on this).  You will
	probably lose 640K/640K+384K (1 Meg) if you do this without adding
	more code.  This may not be a big loss to make "large" kernels run
	on a 48 Meg machine.

5)	There may be a loader conflict which you have to overcome.  If the
	loader is at 1 Meg, loading a kernel over it will trash it.  You
	will have to relocate the loader code to < 640K to insure that it
	doesn't trash itself loading the kernel.

6)	Some BIOS's load shadow CMOS settings/Drive type 45 settings into
	locations in the < 1 Meg region.  If your loader or kernel is put
	over these locations, since Julian's boot stuff uses BIOS to load
	everything up (thereby making it work for everything with boot ROMS
	in it 8-) 8-)), the boot will fail.  Big time offenders are Compaq,
	Epson, Toshiba, HP, and AT&T.

7)	No one has reported success using Julian's boot blocks on a Compaq
	(Be famous!  Be the first to do this and tell us if it works!  The
	hard part will be making a boot floppy, of course, and HD install
	afterwards, since the "install" uses compacted cpio archives you
	will have a difficult time rebuilding!  Post your results!) or
	other machine which likes to mirror data in RAM where the kernel or
	the boot loader want's to be.


As another alternative, remove all drivers that you aren't using.  If you
have one of each type of ethernet card, mouse, and disk controller, you
are probably up a creek.  But then again, you're probably rich, so pay
someone to fix it for you 8-) 8-).


					Terry Lambert
					terry_lambert@gateway.novell.com
					terry@icarus.weber.edu
---
Any opinions in this posting are my own and not those of my present
or previous employers.
-- 
-------------------------------------------------------------------------------
                                        "I have an 8 user poetic license" - me
 Get the 386bsd FAQ from agate.berkeley.edu:/pub/386BSD/386bsd-0.1/unofficial
-------------------------------------------------------------------------------