Mar 201999

Saving and using the kernel change information

If you’ve ever installed FreeBSD, then you know about the visual configuration screen.   This screen allows you to remove any hardware conflicts and to set the values of various system components.  You can then save this information and continue the boot process.  In short, this step allows you to specify changes to the existing kernel.   These changes are saved to disk.  However, under 3.1 they are not saved to the correct location.  This article shows you how to fix that.

System changes

All of this information came from the errata.txt file for 3.1.   And here’s the steps I went through to invoke those recommended changes.

I booted the system and logged in.  Then I did this:

# mv /kernel.config /boot/kernel.conf

Then I added the following to /boot/loader.rc:

load /kernel
load -t userconfig_script /boot/kernel.conf
autoboot 5

Then I rebooted and noticed some new stuff in the boot up process.  The system actually entered a configuration screen and issued various config commands.  I think this is a very powerful tool.

Here’s my dmesg information to demonstate the modified boot information.

$ dmesg
Copyright (c) 1992-1999 FreeBSD Inc.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California. All rights reserved.
FreeBSD 3.1-RELEASE #0: Mon Feb 15 11:08:08 GMT 1999
Timecounter "i8254"  frequency 1193182 Hz
CPU: i486DX (486-class CPU)
real memory  = 8650752 (8448K bytes)
config> di zp0
config> di ze0
config> di lnc0
config> di le0
config> di ie0
config> di fe0
config> di ex0
config> di ep0
config> di cs0
config> di wt0
config> di wdc1
config> di scd0
config> di mcd0
config> di matcdc0
config> di bt0
config> di aha0
config> di adv0
config> en ed0
config> po ed0 0x300
config> ir ed0 5
config> iom ed0 0xd8000
config> f ed0 0
config> q
avail memory = 5476352 (5348K bytes)
Preloaded elf kernel "kernel" at 0xf0340000.
Preloaded userconfig_script "/boot/kernel.conf" at 0xf034009c.
Probing for devices on the ISA bus:
sc0 on isa
sc0: VGA color <16 virtual consoles, flags="0x0">
ed0 at 0x300-0x31f irq 5 on isa
ed0: address 00:80:29:b1:f2:61, type NE2000 (16 bit) 
atkbdc0 at 0x60-0x6f on motherboard
atkbd0 irq 1 on isa
psm0 not found
sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa
sio0: type 16550A
sio1: configured irq 3 not in bitmap of probed irqs 0
sio1 not found at 0x2f8
fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa
fd0: 1.44MB 3.5in
wdc0 at 0x1f0-0x1f7 irq 14 on isa
wdc0: unit 0 (wd0): <maxtor 7425 AV>
wd0: 407MB (833664 sectors), 1002 cyls, 16 heads, 52 S/T, 512 B/S
ppc0 at 0x3bc irq 7 on isa
ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
nlpt0: <generic printer> on ppbus 0
nlpt0: Interrupt-driven port
ppi0: <generic parallel i/o> on ppbus 0
plip0: <Plip network interface> on ppbus 0
vga0 at 0x3b0-0x3df maddr 0xa0000 msize 131072 on isa
npx0 on motherboard
npx0: INT 16 interface
changing root device to wd0s1a