kldload & dhcp client not working properly after upgrade to 6.0

Danny MacMillan flowers at users.sourceforge.net
Fri Nov 11 23:51:10 GMT 2005


Hi,

I recently upgraded two of the systems under my purview to FreeBSD
6.0-RELEASE, both from FreeBSD 5.4-RELEASE-p8.  On one of them,
everything appeared to work perfectly.  On the other, something is
definitely fubar'ed.

There are two notable symptoms of this that I have seen.  The first is
minor, the second less so.

I have in the /etc/rc.conf of both systems:

saver="star"

I noticed some text on the screwed up system (during boot, I think, my
memory is fuzzy about where I saw it) indicating that star_saver could
not be loaded.  Interesting.  So I tried

hobbit% sudo kldload star_saver
Password:
kldload: can't load star_saver: No such file or directory

Interesting.  So:

hobbit% sudo kldload /boot/kernel/star_saver.ko
hobbit% kldstat
Id Refs Address    Size     Name
 1    4 0xc0400000 657ab0   kernel
 2    1 0xc0a58000 5c3c     vesa.ko
 3    1 0xc3728000 2000     star_saver.ko
hobbit%

If I specify the fully-qualified path, it works.

It was working before the upgrade to 6.0.  It was and is still working
on the other system I upgraded at the same time.

The other issue is with adding alias IP addresses to an interface whose
primary address is assigned via DHCP.  I think it might be related to
the above.  The non-working system had in its /etc/rc.conf the following
lines:

ifconfig_rl0="DHCP"
ifconfig_rl0_alias0="inet 192.168.1.251 netmask 255.255.255.255"
ifconfig_rl0_alias1="inet 192.168.1.250 netmask 255.255.255.255"

The DHCP server is configured to always assign 192.168.1.6/24 to this
machine's NIC.  After the upgrade to 6.0, ifconfig -a reported that the
rl0 interface had acquired 192.168.1.6 and 192.168.1.250, but not
192.168.1.251!  This had rather serious consequences for our network
since that is the IP we use for our internal DNS cache.  I was able to
grab the IP address by typing:

sudo ifconfig rl0 inet 192.168.1.251 netmask 255.255.255.255 alias

However, this was not sufficient because we need that server to come up
when we reboot the machine.  So I changed rc.conf to this:

defaultrouter="192.168.1.253"
ifconfig_rl0="inet 192.168.1.6 netmask 255.255.255.0"
#ifconfig_rl0="DHCP"
ifconfig_rl0_alias0="inet 192.168.1.251 netmask 255.255.255.255"
ifconfig_rl0_alias1="inet 192.168.1.250 netmask 255.255.255.255"

I then rebooted, and everything worked fine.  The machine that has no
problems with kldload does not have any IP aliases.

The only notable differences between the systems are these:  The working
system started its life as FreeBSD 5.3-RELEASE, while the non-working
system started its life as FreeBSD 5.1-RELEASE.  Also, the non-working
system is a "CPU: AMD-K6(tm) 3D processor (400.91-MHz 586-class CPU)" as
reported by dmesg.  The working system is a "CPU: AMD Athlon(TM) XP1600+
(1059.44-MHz 686-class CPU)" (I like underclocking :)

Note that the upgrade of the non-working system was performed in several
steps:

cvsup to RELENG_5_1 and upgrade
cvsup to RELENG_5_2 and upgrade
cvsup to RELENG_5_3 and upgrade
cvsup to RELENG_5_4 and upgrade
cvsup to RELENG_6_0 and upgrade

After each of these steps, except the final upgrade to 6.0, everything
was still working fine.  Before each of these steps, with one exception
(see below) I copied GENERIC over my own kernel file and 'customized' it
by changing the IDENT and removing I486_CPU and I686_CPU.  These were
the only changes I made.

I thought I must have screwed something up during the upgrade, so I
repeated the build and install of (6.0) kernel and world as described in
the handbook.  No dice.  I thought I must have incorrectly merged
something during the mergemaster, so I ran mergemaster -s and carefully
scrutinized each change.  Still no dice.

Then I realized that before I built world with the RELENG_6_0 source, I
had forgotten to copy GENERIC over my own kernel config and modify.  So
I did that, then built and installed just the kernel.  That didn't work,
so I then repeated the entire "rebuilding world" and mergemaster -s
again, just in case.  Everything went well, but the problem did not go away.

Does anyone have any idea what's going on?  I feel like I'm taking crazy
pills!

-- 
Danny MacMillan


More information about the freebsd-questions mailing list