There was an article posted on slashdot today that answers this problem. basically, ksyms is the old kernel symbols file, and kallsyms is the 2.6 kernel symbols file.
int /etc/rc.sysinit, there is mention of these two things. The articles go into more detail, but basically wherever you see a reference to ksyms, you need to change it to kallsyms. If you want to go between kernels 2.4 and 2.6, then you'll need to do one thing if the kernel is 2.4, and another if the kernel is 2.6. here's what i did:
Code:
#set kernel version
VERSION=`uname -a | sed -e 's;.* \(2\.6\).*;\1;'`
if [ "x$VERSION" = "x" ] ; then
VERSION="2.4"
fi
and from /etc/rc.sysinit:
Code:
#if 2.6 kernel, this next is true
if [[ -d /sys ]] && grep -q sysfs /proc/filesystems; then
i=5
while [ $i -ge 0 ]; do
if [ -f /var/log/kallsyms.$i ]; then
mv /var/log/kallsyms.$i /var/log/kallsyms.$(($i+1))
fi
i=$(($i-1))
done
(/bin/date;
/bin/uname -a;
/bin/cat /proc/cpuinfo;
[ -r /proc/modules ] && /bin/cat /proc/modules;
[ -r /proc/kallsyms ] && /bin/cat /proc/kallsyms) >/var/log/kallsyms.0
fi
# if kernel 2.4, do this:
if [ "x$VERSION" = "x2.4" ] ; then
i=5
while [ $i -ge 0 ]; do
if [ -f /var/log/ksyms.$i ]; then
mv /var/log/ksyms.$i /var/log/ksyms.$(($i+1))
fi
i=$(($i-1))
done
(/bin/date;
/bin/uname -a;
/bin/cat /proc/cpuinfo;
[ -r /proc/modules ] && /bin/cat /proc/modules;
[ -r /proc/ksyms ] && /bin/cat /proc/ksyms) >/var/log/ksyms.0
fi
The article can be found at:
http://linuxdevices.com/articles/AT5793467888.html