TCLUG Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [TCLUG:4775] Redhat 5.2, Nec Versa LX and unresolved symbol(s)
On 15 Mar, Peter Lukas wrote:
> RedHat kernels can range from a variety of releases for a single kernel
> point release. For example, 5.2 shipped with a pre-2.0.36 kernel which
> they called "2.0.36-0.7" and subsequently placed the respective modules
> into /lib/modules/2.0.36-0.7 and not /lib/modules/`uname -r` which is
> where kerneld expects to find its modules. To compensate, RedHat linked
> the live kernel modules to /lib/modules/preferred and rc.sysinit expects
> to find the modules there. It'll perform a depmod -a preferred rather
> than a depmod -a `uname -r`. This is a porper way to handle things, but
> if you upgrade your kernel, rc.sysinit will link /lib/modules/preferred to
> the previous kernel module tree. Either edit rc.sysinit directly to
> replace the "depmod -a preferred" with "depmod -a 2.0.36-3" (since
> RedHat's kernel module tree follows the kernel's rpm version and release
> name rather than the kernel's version number so you'd have to change this
> the next time you upgrade the kernel rpm).
Actually an easier way to do this to just create .rhkmvtag in the right
directory. For instance, if you compile a new kernel and put the modules in
/lib/modules/foobar
Then do the following
cd /usr/src/linux
strings vmlinux | grep 'Linux version' > /lib/modules/foobar/.rhkmvtag
and you'll be all set. I do this to keep multiple versions of the same
kernel running. rc.sysinit compares all of the .rhkmvtag files in
/lib/modules/* with /proc/version. If they match it makes the preferred
symlink. My strings and grep command get the version information out of
vmlinux. You also may want to copy System.map to /boot/System.map-foobar as
well. It tends to keep it happy. I'm not sure what /boot/module-info is for,
but redhat ships it with their distribution and I try and keep copies for
each kernel I use.
--
Jon Schewe
schewe@tcfreenet.org
http://tcfreenet.org/~schewe