On Sat, Aug 6, 2011 at 11:06 AM, Mulyadi Santosa <mulyadi.santosa@gmail.com>wrote:
On Sat, Aug 6, 2011 at 12:55, Venkatram Tummala <venkatram867@gmail.com> wrote:
Hi,
I need to use some unexported kernel symbols in my kernel module but in the particular kernel version i am based on (2.6.18 - RHEL 5.7), kallsyms_lookup_name is not exported and there is no kallsyms_on_each_symbol in this kernel. And I can't change the kernel owing to reasons i have no control over.
In this scenario, how do i use unexported symbols. Is there any other mechanism by which i can lookup the address of a kernel symbol.
You can: - grep kallsyms_lookup from /proc/kallsyms (it is there on SL 5.5 and SL 6.0. You can edit your program and assign something like: int (*my_kallsyms_lookup_name)(const char *name) = (void *) KALLSYMS; where KALLSYMS is address found above, or your loading script can feed this address. if your kernel is compiled with kprobe, you can use it to get address too.