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
-------------------------------------------------------------------------------