[Top] [All Lists]

RE: Information required

Subject: RE: Information required
From: Adeel Malik <>
Date: Thu, 28 Aug 2003 20:14:06 +0500
Original-recipient: rfc822;

Hello Jun,

Thanks for the reply.I have checked for the unresolved function symbols like "printk" and "register_chrdev", and found that they are present in /proc/ksyms. So it appears to me that I may be compiling the module with incorrect parameters.

Below is the Makefile for the Loadable Module:


CROSS_COMPILE= /backup/buildroot-QuickMIPS/build/staging_dir/bin/mipsel-uclibc-

TARGET = example_driver

INCLUDE = /backup/buildroot-QuickMIPS/build/linux-2.4.20/include


CFLAGS = -DMODVERSIONS -I${INCLUDE}/linux/modversions.h

${TARGET}.o: ${TARGET}.c

.PHONY: clean


rm -rf ${TARGET}.o


Do you think that I need to modify the makefile or add some more options to CFLAGS.

I have ensured that the kernel is compiled with "module-option" turned on.

Also my module uses symbol versioning (sometimes called module versioning).

I use the following lines of code at the start of header file to accomplish this:


#if defined (CONFIG_MODVERSIONS) && ! defined (MODVERSIONS)

#include <linux/modversions.h>




I have successfully cross-compiled user-space applications on the target platform. Only when i do the kernel work, this unresolved symbol (like printk, register_chrdev, etc..) phenomenon happens.



-----Original Message-----


[]On Behalf Of Jun Sun

Sent: Wednesday, August 27, 2003 9:51 PM

To: Adeel Malik


Subject: Re: Information required


On Wed, Aug 27, 2003 at 07:30:26PM +0500, Adeel Malik wrote:

> Hi All,

> I am involved in Embedded Linux Development for MIPS Processor. I

> need to write a device driver for a MIPS Target Platform. When I insmod the

> driver.o file, the linux bash script running on the target hardware gives me

> the error message like ;

> 1. unable to resolve the printk function

> 2. unable to resolve the register_chardev function

> etc.

> Can you plz give me the direction as to how to proceed to tackle this

> situation.

Make sure your kernel compiled with module option turned on.

Does it use module version (CONFIG_MODVERSIONS)?

If so, add -DMODVERSIONS -include $(KERNEL_PATH)/include/linux/modversions.h

to your CFLAGS.



<Prev in Thread] Current Thread [Next in Thread>