[comp.unix.xenix] Changing Kernel Configurations

kambiz@mrspoc.Transact.COM (Kambiz Aghaiepour) (07/14/90)

I am having problems changing the kernel configurations on one of our
systems here at Transact.  We are running SCO xenix on a 386 machine.
After changing the number of buffers (NBUF) and max. buffer heads
(MAXBUF), relinking xenix, and running hdinstall, I can no longer boot
from the new kernel.  Upon boot, I get the message :

bn void <number>
bn void <number>
bn void <number>
:
.
etc

The <number>s increase and the machine freezes around number 709.
The strange thing is that I cannot boot from xenix.old anymore
either!!  Has anyone else seen this before or am I totally in the
dark?  (What does the error message mean?!!!)

Is there some other parameter I need to change along with NBUF and
MAXBUF?  I am reducing the buffer pool size to free up user memory. 

Thanks in advance

--Kambiz
-- 
"If everything in life was easy, then nothing would be easy."
--
Kambiz Aghaiepour @ Transact Software, Inc -*- Los Altos, CA (415) 961-6112 
Internet:   kambiz@mrspoc.Transact.com, cccbiz@bullwinkle.ucdavis.edu \/\/\

pgd@bbt.se (P.Garbha) (07/16/90)

In article <KAMBIZ.90Jul13114306@mrspoc.Transact.COM> kambiz@mrspoc.Transact.COM (Kambiz Aghaiepour) writes:
>
>I am having problems changing the kernel configurations on one of our
>systems here at Transact.  We are running SCO xenix on a 386 machine.
>After changing the number of buffers (NBUF) and max. buffer heads
>(MAXBUF), relinking xenix, and running hdinstall, I can no longer boot
>from the new kernel.  Upon boot, I get the message :
>
>bn void <number>
>bn void <number>
>bn void <number>

I get the same error message when i install the new irwin tape drivers
from sosco. But I only get one "bn void 2", and then the system boots
normally. (But the tape does not work).

What does "bn void <number>" mean anyway?

rosso@sco.COM (Ross Oliver) (07/20/90)

In article <1990Jul16.125419.1283@bbt.se> pgd@bbt.se (P.Garbha) writes:
>In article <KAMBIZ.90Jul13114306@mrspoc.Transact.COM> kambiz@mrspoc.Transact.COM (Kambiz Aghaiepour) writes:
>>
>>I am having problems changing the kernel configurations on one of our
>>systems here at Transact.  We are running SCO xenix on a 386 machine.
>>After changing the number of buffers (NBUF) and max. buffer heads
>>(MAXBUF), relinking xenix, and running hdinstall, I can no longer boot
>>from the new kernel.  Upon boot, I get the message :
>>
>>bn void <number>
>>bn void <number>
>>bn void <number>
>
>I get the same error message when i install the new irwin tape drivers
>from sosco. But I only get one "bn void 2", and then the system boots
>normally. (But the tape does not work).
>
>What does "bn void <number>" mean anyway?


Well, this is an ugly one.  The following explanation applies only if your
hard disk has more than 1024 cylinders.  During the boot sequence, the
boot program uses the computer's BIOS to load the XENIX kernel from the
hard disk.  However, the BIOS understands only disks of 1024 cylinders
or smaller.  If any of the disk blocks used to store the kernel reside
beyond the 1024th cylinder, the BIOS will not be able to read them, and
the boot program cannot finish loading the operating system.  Since
both of you started having this problem after building a new kernel, it
sounds like your disks have filled up past the 1024th cylinder, and your
new kernel resides (at least partially) on disk blocks past that point.

There is only one sure-fire way to fix the problem and prevent it from
happening again: rebuild your root filesystem so that it is completely
within the first 1024 cylinders.  This means reinstalling your operating
system and everything else on your root filesystem.

There is a less drastic fix you can try that MIGHT fix the problem
for now, but it will most likely happen again should you relink your
kernel again.  First, go into system maintenance mode to make sure there
is no other disk activity.  Then, remove some files that are sure to
be near the beginning of your disk (such as some operating system files).
Remove enough files to equal the size of your new kernel.  Then copy
(not move) your new kernel to another file.  The new file will be created
using the disk blocks freed by removing the other files.  You now should
be able to boot from the copied kernel.  This is only a temporary fix;
eventually, you should rebuild your root filesystem.

Ross Oliver
Technical Support
The Santa Cruz Operation, Inc.

djm@eng.umd.edu (David J. MacKenzie) (07/20/90)

We were getting "bn void" errors every time we tried to boot a newly
made Xenix kernel, too, but found that simply linking the new kernel
in system maintenance mode made the problem go away.  I don't know
why.
--
David J. MacKenzie <djm@eng.umd.edu> <djm@ai.mit.edu>

kambiz@mrspoc.Transact.COM (Kambiz Aghaiepour) (07/24/90)

A few days ago I asked for help as to why I got a strange error
message after rebuilding the Kernel.  To recap, after running
/usr/sys/conf/configure, link_xenix, and hdinstall, I would get the
following error message after rebooting :

bn void <number>
bn void <number>
.
:
etc

where the numbers where integers  increasing by one until around the
number 695 or so.  Then the system would hang.

Well, after reloading off of a copy of the Kernel (/xenix.virgin)
(strange that both /xenix and /xenix.old would give the above
message), changing the parameters to their original settings, and
reinstalling the kernel, I was able to boot off the Kernel I was using
before.

I did some further investigating and found the following simple
solution :

I ran the link_xenix script while running the bash (version 1.04)
shell.  Bash is the bourne again shell (by gnu).  It has a lot of neat
additional features and one of them is that things don't always work
like they're supposed to.  (I still use it though, it's great!)  What
bash does is that when it sees a bourne shell script, it runs in the
current shell instead of spawning a ``sh'' for the process.  The
script /usr/sys/conf/netlink which is included in link_xenix is where
the problem occurs.  (I'm not sure where it blows up...it is supposed
to work exactly the same in bash and sh).  Anyway, the fix for it is,
when running bash, run link_xenix (and hdinstall as well to be safe)
as arguments to sh,  i.e.

bash$  sh link_xenix

and things will happen correctly.

---Kambiz
-- 
"If everything in life was easy, then nothing would be easy."
--
Kambiz Aghaiepour @ Transact Software, Inc -*- Los Altos, CA (415) 961-6112 
Internet:   kambiz@mrspoc.Transact.com, cccbiz@bullwinkle.ucdavis.edu \/\/\