[comp.unix.microport] Memory expansion problems

makela@tukki.jyu.fi (Otto J. Makela) (04/27/89)

I use a Unisys 800 (same as the Acer 1100) 20MHz 386 PC/AT clone under
MicroPort UNIX/386 3.0U3.0e; the system has 4992k of 80ns memory (640k+
256k on motherboard + 4096k on a 32-bit expansion board).

I installed an extra 4096k piggyback card onto the expansion board to get
to a total of 9088k memory.  I set the DIP switches, plugged the card in,
powered up the machine and used the BIOS ROM setup to change the CMOS
count of memory above 1M.
I booted DOS and ran the machine's diagnostics on the memory board, and
it checked out as OK (the test did only take about an hour, though...)

Then I tried booting the Unix from the ESDI hard disk.  Right after it had
said "Ram disk 0 found.  size=32Kb" (what the s**t is this, by the way?
I've seen it being used at system build time, but for nothing else...)
it went into an endless loop of:
	"Could not allocate memory for default 0 buffers"...
(the next thing I normally see is "buffers=1400k" or something like that).

Does anyone know what's happening here?  Is the weirding module incorrectly
tuned or what?

Otto J. Makela (with poetic license to kill), University of Jyvaskyla

InterNet: makela@tukki.jyu.fi, BitNet: MAKELA_OTTO_@FINJYU.BITNET
BBS: +358 41 211 562 (V.22bis/V.22/V.21, 24h/d), Phone: +358 41 613 847
Mail: Kauppakatu 1 B 18, SF-40100 Jyvaskyla, Finland, EUROPE

plocher%sally@Sun.COM (John Plocher) (04/28/89)

In article <589@tukki.jyu.fi> makela@tukki.jyu.fi (Otto J. Makela) writes:
|  <had uport 3.0e w/4Mb, ran OK.  Added another 4Mb, now won't boot>

Easy fix (It is a known - and fixed in 3.0e.1 - bug for 386 systems only):

1) Remove (either physically or cmos setup) the new 4Mb of memory.

2) Boot Unix - it will work correctly again.

3) type this command (as root):

	/etc/patch /unix Nbuf

   It should print  0  (that's zero)
   This means that the system dynamically figures out how much memory
   to allocate for disk buffers depending on how much real memory there is.
   When you have more than 8Mb this table allocates too much memory for
   buffers and the kernel runs out of alloc()able memory.  This table 
   can be found in /etc/atconf/modules/kernel/space.c for those brave 
   enuf to fix it [just make the numbers smaller]  :-)

4) Modify this to some non zero value (i.e., lets use 100Kb of buffers):

	/etc/patch /unix Nbuf 100

5) Modify the    #define NBUF 0   line in the kernel configuration file
   /usr/include/sys/kdef.h to use this value too.  This keeps this problem
   from biting you next time you reconfigure the system.

6) shut the system down

	/etc/shutdown -g0 -y

7) Add the extra 4Mb again

8) Reboot Unix and all should be well.

9) If desired, copy your boot diskette and patch that kernel too:
	diskcopy
	# put the new - unwriteprotected disk in the drive
	mount /dev/dsk/fd /mnt
	/etc/patch /mnt/unix Nbuf 100
	umount /mnt
	# take the disk out and put in a safe place

    -John Plocher