On 11/29/2017 11:07 AM, Randy Dunlap wrote: > On 11/28/2017 07:20 PM, Lee Strobel wrote: >> Hi, >> >> I have a question about the Linux kernel, which I have been trying to >> find an answer to through various forums for some time now, but without >> success. I'm wondering if anyone on this mailing list might be able to >> help? >> >> I've been trying to build a Linux From Scratch (LFS) system, using >> SysVinit and sysklogd. However, when I tried to boot up, klogd wasn't >> accepting the System.map file, printing log messages such as: >> >> Oct 9 17:24:17 <lee_lfs> kernel: klogd 1.5.1, log source = /proc/kmsg >> started. >> Oct 9 17:24:17 <lee_lfs> kernel: Inspecting /boot/System.map >> Oct 9 17:24:17 <lee_lfs> kernel: Cannot find map file. >> >> So, I dug into the source code for klogd a little bit, and it appears >> the reason the map file wasn't being accepted was because it didn't >> contain a 'version' line, which klogd was looking for, in the form: >> >> [address] [type] Version_XXXXX >> >> (where XXXXX is the kernel version # in base 256). >> >> So, I've been asking around on various forums. It seems that none of the >> map files that are being produced by more recent kernel versions include >> this line and no-one that I've spoken to on the Linux user forums seems >> to know why this is. >> >> Was a change made to the kernel, to remove this 'version' line >> from the map file? If so, how are the newer init systems verifying that >> the map file is the same version as the running kernel? Perhaps sysklogd >> needs to be updated? >> >> By the way, I tried adding a 'dummy' version line to my map file and >> klogd accepted it fine. >> >> Hopefully someone out there can assist, as no-one in the Linux user >> community seems to know what is going on with this. >> >> Best regards, >> >> Lee Strobel >> Engineer/Tinkerer/Free Software Supporter .. > > Hi, > > Having that symbol in the System.map file depends on the kernel config > symbol CONFIG_KALLSYMS. KALLSYMS must be disabled (unset) for that > symbol to be generated. I don't know why it's like that. > > ffffffff815e50a8 B Version_197216 > > Ted, do you have any idea about that? > > thanks.
ah, git log tells us: commit 197dcffc8ba0ea943fee86e28e99cd9575799772 Author: Daniel Guilak <gui...@linux.vnet.ibm.com> Date: Fri Jul 25 01:45:50 2008 -0700 init/version.c: define version_string only if CONFIG_KALLSYMS is not defined int Version_* is only used with ksymoops, which is only needed (according to README and Documentation/Changes) if CONFIG_KALLSYMS is NOT defined. Therefore this patch defines version_string only if CONFIG_KALLSYMS is not defined. Signed-off-by: Daniel Guilak <dan...@danielguilak.com> Cc: Randy Dunlap <randy.dun...@oracle.com> Signed-off-by: Andrew Morton <a...@linux-foundation.org> Signed-off-by: Linus Torvalds <torva...@linux-foundation.org> I would be OK with reverting that commit so that Version_xxxxxx is always present in System.map. -- ~Randy