public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* RE: Insmod problems
@ 2001-12-04 18:24 Tyler BIRD
  0 siblings, 0 replies; 11+ messages in thread
From: Tyler BIRD @ 2001-12-04 18:24 UTC (permalink / raw)
  To: CAmes, apiggyjj; +Cc: linux-kernel

in linux/module.h header file
KERNEL_VERSION is defined.

what you need to do is make sure the directory /usr/include is a link
to the include directory in your kernel source and not the header files os some other kernel.

if you cant do that try something like this

___NO_VERSION___
#include <linux/module.h>
KERNEL_VERSION(major,minor,release)


read more on this site

http://www.xml.com/ldd/chapter/book/ch02.html#t2 


>>> Michael Zhu <apiggyjj@yahoo.ca> 12/04/01 11:13AM >>>
I've changed my source file like this:
#define MODULE

#include <linux/module.h>

int init_module(void)  { printk("<1>Hello, world\n");
return 0; }
void cleanup_module(void) { printk("<1>Goodbye cruel
world\n"); }

And I use the following message to build the module.
But when I use insmod to load the module I got the
following error message:

hello.o : kernel-module version mismatch
         hello.o was compiled for kernel version
2.4.12
         while this kernel is version 2.4.8

What is wrong? My kernel version is 2.4.8. Is there
something wrong with the gcc compilier? My gcc
compilier is gcc-2.95.

Thanks to everyone. Your help is very beneficial to
me.

Michael

--- Christine Ames <CAmes@PacificDigital.com> wrote:
> > -----Original Message-----
> > From: Michael Zhu [mailto:apiggyjj@yahoo.ca] 
> > Sent: Tuesday, December 04, 2001 9:07 AM
> 
> <snip>
> 
> > 
> > 
> > I've define these two when I compile the module.
> The
> > command line is:
> > 
> > gcc -D_KERNEL_ -DMODULE -c hello.c
> > 
> > 
> <snip>
> > 
> 
> See http://www.xml.com/ldd/chapter/book/ch02.html 
> 
> Where your source should be similar to:
> 
> #define MODULE		// <- HERE!!! define MODULE 
> #include <linux/module.h>
> 
> int init_module(void)  { printk("<1>Hello,
> world\n"); return 0; }
> void cleanup_module(void) { printk("<1>Goodbye cruel
> world\n"); }
> 


______________________________________________________ 
Send your holiday cheer with http://greetings.yahoo.ca


^ permalink raw reply	[flat|nested] 11+ messages in thread
[parent not found: <sc0ca5e8.017@mail-smtp.uvsc.edu>]
[parent not found: <81C25B579A82D31192BE00105A812084028931E9@AUGUSTA>]
* Re: Insmod problems
@ 2001-12-04 17:30 Tyler BIRD
  0 siblings, 0 replies; 11+ messages in thread
From: Tyler BIRD @ 2001-12-04 17:30 UTC (permalink / raw)
  To: apiggyjj; +Cc: linux-kernel

Try this

―--------

#define MODULE

#include <linux/module.h>
int init_module(void) { printk("<1>Hello World"); return 0;}
void cleanup_module(void) {printk("<1>Goodbye cruel world\n"); }
―---

gcc -c -D__KERNEL__ hello.c

compiled and loaded fine on my system

I think linux/module.h defines
the kernel version. Make sure that you have the kernel source headers installed under /usr/include
which is a link to /usr/src/linux/include.

you oughta put the above include/module.h at the begining of your source.



Also there has been a macro lately to
delate which routines will be init_module, cleanup_module22

>>> Michael Zhu <apiggyjj@yahoo.ca> 12/04/01 10:06AM >>>
I've define these two when I compile the module. The
command line is:

gcc -D_KERNEL_ -DMODULE -c hello.c


--- Tyler BIRD <BIRDTY@uvsc.edu> wrote:
> You need to define the __KERNEL__ and MODULE symbols
> 
> #define __KERNEL__
> #define MODULE
> 
> 
> >>> Nav Mundi <nmundi@karthika.com> 12/04/01 09:33AM
> >>>
> What are we doing wrong? - Nav & Michael
> **************************************************
> 
> hello.c Source:
> 
> #include "/home/mzhu/linux/include/linux/config.h" 
> /*retrieve the CONFIG_* macros */
> #if defined(CONFIG_MODVERSIONS) &&
> !defined(MODVERSIONS)
> #define MODVERSIONS  /* force it on */
> #endif
> 
> #ifdef MODVERSIONS
> #include
> "/home/mzhu/linux/include/linux/modversions.h"
> #endif
> 
> #include "/home/mzhu/linux/include/linux/module.h"
> 
> int init_module(void)  { printk("<1>Hello,
> world\n");  return 0; }
> void cleanup_module(void) { printk("<1>Goodbye cruel
> world\n"); }
> 
> Output:
> 
> #>gcc -D_KERNEL_ -DMODULE -c hello.c
> 
> [This builds the hello.o file. ]
> 
> #>insmod hello.o
> 
> hello.o : unresolved symbol printk
> hello.o : Note: modules without a GPL compatible
> license cannot use 
> GPONLY_symbols
> 
> 
> 
> 
> -
> To unsubscribe from this list: send the line
> "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org 
> More majordomo info at 
> http://vger.kernel.org/majordomo-info.html 
> Please read the FAQ at  http://www.tux.org/lkml/ 
> 


______________________________________________________ 
Send your holiday cheer with http://greetings.yahoo.ca


^ permalink raw reply	[flat|nested] 11+ messages in thread
[parent not found: <sc0c9a91.036@mail-smtp.uvsc.edu>]
* Re: Insmod problems
@ 2001-12-04 16:42 Tyler BIRD
  0 siblings, 0 replies; 11+ messages in thread
From: Tyler BIRD @ 2001-12-04 16:42 UTC (permalink / raw)
  To: nmundi, linux-kernel; +Cc: apiggyjj

You need to define the __KERNEL__ and MODULE symbols

#define __KERNEL__
#define MODULE


>>> Nav Mundi <nmundi@karthika.com> 12/04/01 09:33AM >>>
What are we doing wrong? - Nav & Michael
**************************************************

hello.c Source:

#include "/home/mzhu/linux/include/linux/config.h" 
/*retrieve the CONFIG_* macros */
#if defined(CONFIG_MODVERSIONS) && !defined(MODVERSIONS)
#define MODVERSIONS  /* force it on */
#endif

#ifdef MODVERSIONS
#include "/home/mzhu/linux/include/linux/modversions.h"
#endif

#include "/home/mzhu/linux/include/linux/module.h"

int init_module(void)  { printk("<1>Hello, world\n");  return 0; }
void cleanup_module(void) { printk("<1>Goodbye cruel world\n"); }

Output:

#>gcc -D_KERNEL_ -DMODULE -c hello.c

[This builds the hello.o file. ]

#>insmod hello.o

hello.o : unresolved symbol printk
hello.o : Note: modules without a GPL compatible license cannot use 
GPONLY_symbols




-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org 
More majordomo info at  http://vger.kernel.org/majordomo-info.html 
Please read the FAQ at  http://www.tux.org/lkml/


^ permalink raw reply	[flat|nested] 11+ messages in thread
* Insmod problems
@ 2001-12-04 16:33 Nav Mundi
  0 siblings, 0 replies; 11+ messages in thread
From: Nav Mundi @ 2001-12-04 16:33 UTC (permalink / raw)
  To: linux-kernel; +Cc: Michael Zhu

What are we doing wrong? - Nav & Michael
**************************************************

hello.c Source:

#include "/home/mzhu/linux/include/linux/config.h" 
/*retrieve the CONFIG_* macros */
#if defined(CONFIG_MODVERSIONS) && !defined(MODVERSIONS)
#define MODVERSIONS  /* force it on */
#endif

#ifdef MODVERSIONS
#include "/home/mzhu/linux/include/linux/modversions.h"
#endif

#include "/home/mzhu/linux/include/linux/module.h"

int init_module(void)  { printk("<1>Hello, world\n");  return 0; }
void cleanup_module(void) { printk("<1>Goodbye cruel world\n"); }

Output:

#>gcc -D_KERNEL_ -DMODULE -c hello.c

[This builds the hello.o file. ]

#>insmod hello.o

hello.o : unresolved symbol printk
hello.o : Note: modules without a GPL compatible license cannot use 
GPONLY_symbols





^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2001-12-04 19:04 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-12-04 18:24 Insmod problems Tyler BIRD
     [not found] <sc0ca5e8.017@mail-smtp.uvsc.edu>
2001-12-04 18:20 ` Michael Zhu
2001-12-04 18:33   ` Tommy Reynolds
2001-12-04 19:10   ` Alan Cox
     [not found] <81C25B579A82D31192BE00105A812084028931E9@AUGUSTA>
2001-12-04 18:13 ` Michael Zhu
  -- strict thread matches above, loose matches on Subject: below --
2001-12-04 17:30 Tyler BIRD
     [not found] <sc0c9a91.036@mail-smtp.uvsc.edu>
2001-12-04 17:06 ` Michael Zhu
2001-12-04 16:55   ` Thiago Rondon
2001-12-04 17:47   ` rddunlap
2001-12-04 16:42 Tyler BIRD
2001-12-04 16:33 Nav Mundi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox