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