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