Things look quiet here. But I've been doing a lot of blogging at
dan.langille.org because I prefer WordPress now.
Not all my posts there are FreeBSD related.
I am in the midst of migrating The FreeBSD Diary over to WordPress
(and you can read about that here).
Once the migration is completed, I'll move the FreeBSD posts into the
new FreeBSD Diary website.
This article details how I installed 3.2-release on a box which initially refused to
take any 3.* versions but was quite happy on 2.2.8.
I was given an old DEC box which had an onboard NCR PCI SCSI bus. I could
install 2.2.8 on the box but not 3.* and not even current would install. The problem
was that the system wasn't scanning for the PCI bus.
For the technical minded, here's
something which might mean something to you:
Copyright (c) 1992-1998 FreeBSD Inc.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
FreeBSD 2.2.8-RELEASE #0: Mon Nov 30 06:34:08 GMT 1998
CPU: i486DX (486-class CPU)
real memory = 33554432 (32768K bytes)
avail memory = 30334976 (29624K bytes)
Probing for devices on PCI bus 0:
chip0 <intel 82424ZX (Saturn) cache DRAM controller> rev 2 on pci0:0:0
ncr0 <ncr 53c810 fast10 scsi> rev 1 int a irq 11 on pci0:1:0
ncr0 waiting for scsi devices to settle
(ncr0:0:0): "DEC RZ25M (C) DEC 0680" type 0 fixed SCSI 2
sd0(ncr0:0:0): 10.0 MB/s (100 ns, offset 8)
510MB (1046206 512 byte sectors)
(ncr0:1:0): "SEAGATE ST5660N 0592" type 0 fixed SCSI 2
sd1(ncr0:1:0): 10.0 MB/s (100 ns, offset 8)
520MB (1065664 512 byte sectors)
(ncr0:6:0): "NEC CD-ROM DRIVE:841 1.0" type 5 removable SCSI 2
You can clearly see that the ncr SCSI device is found and works fine. However, we
had no such luck with 3.*.
One of the FreeBSD developers took up my problem and sent me a patch.
Here's the patch:
# cd /usr/src/sys/i386/conf
# cp GENERIC NCR
# config NCR
# cd ../../compile/NCR
# make depend
But wait? How did I create that kernel in the first place? I didn't have
3.2-Release installed, so how could I create a 3.2-Release kernel? This is a classic
chicken-and-egg situation. The answer is easy: I asked someone who has 3.2-Release
to create the kernel for me.
So. Now I have a patched 3.2-Release kernel. But what use was it?
Details of the boot floppies
If you look at the boot floppies for 3.2-RELEASE,
you'll see the following on the first floppy:
# mount /dev/fd0 /mnt
# cd /mnt
boot boot.config kernel.config kernel.gz
That kernel.gz file is just a plan old kernel which has
been gzip'd. There's nothing special about. It's just a GENERIC kernel which
anyone can create. For that matter, you could replace that file with your own kernel
and it would still work as a boot floppy. So I just replaced that kernel with my
own. You might also be interested in compiling a kernel on
If you are doing the above, you may wish to add the following option into your kernel:
options INTRO_USERCONFIG #imply -c and show intro screen
This option forces the visual configuration screen. This can be useful but it not
recommended for the final kernel.
NOTE: during my install, when I tried to mount the floppy, I encountered the following
# mount /dev/fd0 /mnt
mount: Operation not permitted
Here's how I replaced the boot floppy kernel with my own. Remember I created a
new kernel above.
# cd /usr/src/sys/compile/NCR
# gzip kernel >> kernel.gz
# mount /dev/fd0 /mnt
# cp kernel.gz /mnt
# umount /mnt
Well, this was actually the easy part. I've got this down to a routine now.
I followed the same strategy as I did for Installing
FreeBSD to replace Windows 95. That's pretty straight forward. I was
actually installing from a local FTP server which contained only the bin
directory for 3.2-RELEASE.
The important difference is that before I rebooted, I used
the "emergency holographic shell" that's created on vty4 to replace the default
3.2-Release kernel with my own custom 3.2-release kernel. Here's how I did that.
REMEMBER to take out the second floppy and put in the first floppy before doing this.
The first floppy contains kernel.gz. If you don't, all you'll find is
mfsroot.gz, which is of no use to you for this exercise.
Then I went back to the install and did an exit. The system then shutdown and
rebooted. And I had 3.2-Release installed!
But there were problems
During the shutdown, I briefly saw a message which said something about
"vinvalbuf" or something similar to that. When the system booted up, I saw
messages about / not being shut down properly. I've sent a message off to the
-questions mailing list and I'll add a post script if I learn anything more.